Если в блоге собралась неплохая компания, то почему бы ей не похвалиться? Давайте создадим функцию, которая может выводить список зарегистрированных пользователей, но не простой, а такой, чтобы можно было выводить отдельным списком администраторов, редакторов, авторов, участников и подписчиков.
Можете этот код, вставив его в файл 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 = ' <ul> <li>' . $name . '</li> </ul> '; 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 = ' <ul> <li>' . $name . '</li> </ul> '; 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 = ' <ul> <li><b>' . $userlevelname[$userlevel] . '</b></li> </ul> '; $link .= ' <ul> <li>' . $name . '</li> </ul> '; echo $link; } } }
Чтобы вывести список пользователей, нужно вставить в шаблон:
Функция может ограничивать вывод пользователей с определенной ролью. Для этого в ней предусмотрен параметр [codei_php]$userlevel = 'all'[_php]
– изменяя его, вы можете выводить только пользователей с определенной ролью:
all = показывать всех пользователей
1 = показывать подписчиков
2 = показывать редакторов
3 = показывать авторов
10 = показывать администров
Например, чтобы вывести всех авторов, нужно вставить в шаблон:
Так же в функции предусмотрен параметр [codei_php]$show_fullname = true[_php]
, ограничивающий представление пользователей. С его помощью можно показывать имя и фамилию, либо только ник. Чтобы вывести администраторов с именем и фамилией, используйте в шаблоне:
Чтобы вывести подписчиков только с никами, используйте:
Использование параметров дает гибкость при выводе пользователей – можно настроить несколько списков с разным представлением пользователей.
Можете сделать урок как вывести онлайн пользователей на опр.странице. Например http://www.example.com/page1 и показывать список пользователей только которые находятся в данный момент на этой странице. Как только кто-то вышел он исключается из списка без перезагрузки страницы. А если кто-то вошел то список обновляется. В сети нет такой инфы для ворд пресс. Буду благодарен.