Как вывести список всех пользователей, учитывая их роли

Как вывести список всех пользователей, учитывая их роли | n-wp.ru

Если в блоге собралась неплохая компания, то почему бы ей не похвалиться? Давайте создадим функцию, которая может выводить список зарегистрированных пользователей, но не простой, а такой, чтобы можно было выводить отдельным списком администраторов, редакторов, авторов, участников и подписчиков.

Как вывести список всех пользователей, учитывая их роли

Можете этот код, вставив его в файл functions.php используемой темы:

function tp_list_authors($userlevel = 'all', $show_fullname = true) {
	global $wpdb;

if ( $userlevel == 'all' ) {
	$author_subscriper = $wpdb->get_results("SELECT * from $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value = 'a:1:{s:10:"subscriber";b:1;}'");
	foreach ( (array) $author_subscriper as $author ) {
		$author    = get_userdata( $author->user_id );
		$userlevel = $author->wp2_user_level;
		$name      = $author->nickname;
		if ( $show_fullname && ($author->first_name != '' && $author->last_name != '') ) {
			$name = "$author->first_name $author->last_name";
		}
		$link = '
  • ' . $name . '
  • '; echo $link; } $i = 0; while ( $i get_results("SELECT * from $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value = '$userlevel'"); foreach ( (array) $authors as $author ) { $author = get_userdata( $author->user_id ); $userlevel = $author->wp2_user_level; $name = $author->nickname; if ( $show_fullname && ($author->first_name != '' && $author->last_name != '') ) { $name = "$author->first_name $author->last_name"; } $link = '
  • ' . $name . '
  • '; echo $link; } $i++; } } else { if ($userlevel == 1) { $authors = $wpdb->get_results("SELECT * from $wpdb->usermeta WHERE meta_key = 'wp_capabilities' AND meta_value = 'a:1:{s:10:"subscriber";b:1;}'"); } else { $authors = $wpdb->get_results("SELECT * from $wpdb->usermeta WHERE meta_value = '$userlevel'"); } foreach ( (array) $authors as $author ) { $author = get_userdata( $author->user_id ); $userlevel = $author->wp2_user_level; $name = $author->nickname; if ( $show_fullname && ($author->first_name != '' && $author->last_name != '') ) { $name = "$author->first_name $author->last_name"; } $link = '
  • ' . $userlevelname[$userlevel] . '
  • '; $link .= '
  • ' . $name . '
  • '; echo $link; } } }

    Чтобы вывести список пользователей, нужно вставить в шаблон:

    Функция может ограничивать вывод пользователей с определенной ролью. Для этого в ней предусмотрен параметр [codei_php]$userlevel = ‘all'[_php] – изменяя его, вы можете выводить только пользователей с определенной ролью.

    all = показывать всех пользователей
      1 = показывать подписчиков
      2 = показывать редакторов
      3 = показывать авторов
     10 = показывать администров
    

    Например, чтобы вывести всех авторов, нужно вставить в шаблон:

    Так же в функции предусмотрен параметр [codei_php]$show_fullname = true[_php], ограничивающий представление пользователей. С его помощью можно показывать имя и фамилию, либо только ник. Чтобы вывести администраторов с именем и фамилией, используйте в шаблоне:

    Чтобы вывести подписчиков только с никами, используйте:

    Использование параметров дает гибкость при выводе пользователей – можно настроить несколько списков с разным представлением пользователей.

    Автор tiaurus 2182 Articles
    Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

    1 Kомментарий

    1. Можете сделать урок как вывести онлайн пользователей на опр.странице. Например http://www.example.com/page1 и показывать список пользователей только которые находятся в данный момент на этой странице. Как только кто-то вышел он исключается из списка без перезагрузки страницы. А если кто-то вошел то список обновляется. В сети нет такой инфы для ворд пресс. Буду благодарен.

    Оставить комментарий

    Ваш электронный адрес не будет опубликован.


    *