Выводим список топ авторов
Если на вашем WordPress-сайте открыта регистрация для других авторов, которые имею возможность публиковать свои статьи, то в этом случае вам может пригодиться нижеследующая функция, которая позволяет вывести список, состоящий из топа авторов, отсортированных по количеству опубликованных ими статей.
Код функции:
function top_authors($number = 10) {
$uc = array();
$blogusers = get_users_of_blog();
if ($blogusers) {
echo '<ul>';
foreach ($blogusers as $bloguser) {
$post_count = get_usernumposts($bloguser->user_id);
$uc[$bloguser->user_id] = $post_count;
}
arsort($uc);
$i = 0;
foreach ($uc as $key => $value) {
$i++;
if ($i <= $number) {
$user = get_userdata($key);
$author_posts_url = get_author_posts_url($key);
$post_count = $value;
if ($post_count > 0) {
echo '<li><a href="' . $author_posts_url .'">' . $user->display_name . '</a> (' . $post_count . ')</li>';
}
}
}
echo '</ul>';
}
}
Его нужно поместить в файл functions.php своего шаблона.
А чтобы отобразить список, в нужное место шаблона своего сайта вставьте этот код:
<?php if (function_exists('top_authors')) top_authors(10); ?>
Как вы уже, наверняка, догадались, 10 – это количество отображаемых авторов.
В результате выведется список авторов. Имя будет ссылкой на страницу автора, а в скобках будет указано количество опубликованных им статей.
Не сработало, получаю пустую страницу(сайт перестает работать)
Версия WordPress 3.0.3
Во-первых, причина может быть в одном из установленных плагинов. Попробуйте их отключить.
Во-вторых, причина может быть в шаблоне. Попробуйте его поменять.
У меня работает без проблем.
Спасибо.
Ещё бы как-то сделать в WP страницу с топом…
Не могу сообразить, как такое провернуть. Может автор UDP сделает? :)
Нужно создать шаблон страницы и в него вставить код вывода списка.
Кодекс – это конечно круто, но по-ненашенскому всё.
К сожалению не понял ничего.
Шаблон страницы создал. А вот как создать страницу с этим шаблоном – непонятно.
Плохо я по-агглицки читаю.
Плагин неправильно конвертировал ссылку, которую я вставил. Исправил ее.
Разобрался, спасибо. :)