Вопрос или проблема
Я использовал это, чтобы получить имена столбцов таблицы пользователей.
add_filter( 'manage_users_columns', array($this , 'new_modify_user_table'));
public function new_modify_user_table( $column ) {
$column // массив имен столбцов, ищем этот массив вне страницы пользователей
}
Но хук manage_users_columns не срабатывает вне “/wp-admin/users.php”, это значит, что он работает только на странице “/wp-admin/users.php”, но не работает вне страницы пользователей.
Так как же мне получить имена столбцов таблицы пользователей в моем плагине? Или вне “/wp-admin/users.php”
Спасибо.
Да! Я решил эту проблему.
require_once( ABSPATH . 'wp-admin/includes/class-wp-users-list-table.php' );
$hmm = new WP_Users_List_Table( array( 'screen' => 'users' ) );
$hmm->get_column_info()[0]
Ответ или решение
Чтобы получить имена столбцов таблицы пользователей WordPress в вашем плагине, вы действительно можете использовать класс WP_Users_List_Table
, который предоставляется в административной части WordPress. Ваше решение, использующее WP_Users_List_Table
, является правильным, и я расскажу о необходимости этого подхода более подробно.
Шаги для получения имен столбцов таблицы пользователей в плагине:
-
Подключите необходимый файл
Первым делом вам нужно подключить файл, который содержит классWP_Users_List_Table
. Это делается с помощью следующей строки кода:require_once( ABSPATH . 'wp-admin/includes/class-wp-users-list-table.php' );
-
Создайте экземпляр класса
Далее, создайте экземпляр классаWP_Users_List_Table
, передав ему необходимые параметры, в данном случае этоarray( 'screen' => 'users' )
:$user_list_table = new WP_Users_List_Table( array( 'screen' => 'users' ) );
-
Получите информацию о столбцах
После создания экземпляра класса вы можете получить информацию о столбцах, вызвав методget_column_info()
. Этот метод возвращает массив, содержащий информацию о столбцах. Находясь в контексте плагина, вы можете использовать следующий код:$columns_info = $user_list_table->get_column_info();
В данном случае первый элемент массива
$columns_info[0]
будет содержать имена столбцов, которые вы ищете.
Полный пример кода
Теперь, когда все шаги ясны, вы можете использовать следующий полный пример кода для вашего плагина:
function get_user_table_columns() {
require_once( ABSPATH . 'wp-admin/includes/class-wp-users-list-table.php' );
// Создаем экземпляр списка пользователей
$user_list_table = new WP_Users_List_Table( array( 'screen' => 'users' ) );
// Получаем информацию о столбцах
$columns_info = $user_list_table->get_column_info();
// Извлекаем названия столбцов
if ( isset( $columns_info[0] ) ) {
return $columns_info[0]; // массив с именами столбцов
}
return array(); // Если по какой-то причине столбцы не найдены
}
// Используйте эту функцию, где вам нужно получить имена столбцов
$columns = get_user_table_columns();
foreach ($columns as $column_name) {
echo $column_name . '<br />';
}
Заключение
С помощью приведенного выше метода вы сможете получить имена столбцов таблицы пользователей в вашем плагине вне контекста страницы /wp-admin/users.php
. Этот подход помогает избежать ограничений, связанных с хуками, обеспечивая доступ к необходимым данным напрямую через класс WP_Users_List_Table
.
Если у вас возникнут еще вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!