Как мне перечислить в серверной части всех пользователей, которым была назначена пользовательская роль?
Из моего предыдущего вопроса Как создать и получить данные из специальной регистрационной формы? Я хотел бы знать, как мне перечислить в бэкэнде всех пользователей, которым была назначена пользовательская роль? Можно ли разместить их на отдельной странице администратора?
1 answers
Запросы пользователей
Существует WP_User_Query
, аналогично WP_Query
для сообщений:
$wp_user_search = new WP_User_Query( array( 'role' => 'editor' ) );
$editors = $wp_user_search->get_results();
Обычно это возвращает массив объектов строк из пользовательской таблицы:
echo '<ul>';
foreach ($editors as $editor):
echo '<li>'.$edtior->display_name.'</li>';
endforeach;
echo '</ul>';
Однако вы можете указать, чтобы вместо этого возвращался массив объектов WP_User, включив 'fields'=>'all_with_meta'
в массив, переданный WP_User_Query
.
Страница администратора регистрации
Чтобы зарегистрировать меню администратора, вам нужно подключить функцию к 'admin_menu'
, которая вызывает add_submenu_page
(или add_menu_page
, если вам нужна страница верхнего уровня). См. Кодекс.
В этом случае добавление страницы на вкладке "Пользователи" кажется подходящим, и крючок для этого 'users.php ".
add_action('admin_menu', 'register_my_custom_submenu_page');
function register_my_custom_submenu_page() {
//Register submenu page underneath users tab.
add_submenu_page('users.php','My Editors', 'My Editor','manage_options','my-editors', 'my_editor_page_callback',10);
}
//This is the callback function specified above
//This outputs the content of your page.
function my_editor_page_callback(){
?>
<div class="wrap">
<div class="icon32" id="icon-users"><br></div>
<h2>My Editors</h2>
<?php
}
?>
Если вы хотите иметь таблицу на этой странице, в которой перечислены только пользователи с определенной ролью, вы можете рассмотреть возможность просмотра подключаемого модуля WP_List_Table. На самом деле это не плагин, а пример того, как использовать класс WP_List_Table
. (Используя это, вы можете включить дополнительные столбцы для метаданных пользователя и т. Д.). (Обратите внимание, однако, на таблицу пользователей по умолчанию уже позволяет фильтровать по пользователю).