Как я могу исключить конкретных авторов из wp_list_authors
-
16-10-2019 - |
Вопрос
Я хочу, чтобы авторы перечислены как обычно из wp_list_authors()
Но я знаю, что есть несколько из них, которые я хотел бы исключить из списка. Есть ли способ сделать это?
Спасибо
Решение
wp_list_authors()
теперь есть exclude
параметр. Таким образом, вы можете исключить нужных авторов с помощью их идентификатора пользователя.
Он принимает:
Массив, запятая или разделенный на космос списка идентификаторов автора, чтобы включить. По умолчанию пусто.
Примеры:
// exclude just the author with the ID 4
wp_list_authors([ 'exclude' => 4 ]);
// exclude the authors with the IDs 4 and 7
wp_list_authors([ 'exclude' => [ 4, 7 ] ]);
// or
wp_list_authors([ 'exclude' => '4, 7' ]);
Другие советы
Кажется wp_list_authors
нет фильтров, не делает get_users_of_blog
, функция, которую он использует для получения списка пользователей. Таким образом, вы должны либо переоценить и заменить вывод самостоятельно, либо создать аналогичную функцию с дополнительным параметром, чтобы указать авторов исключить. Он не слишком большой, и большая часть кода тратится на варианты обработки, так что это не так много дублирования.
Вы всегда можете проголосовать за существующий билет Trac, чтобы получить exclude
параметр добавлен В будущей версии!
Я использовал следующий код, чтобы включить информацию от авторов (пользователей WordPress) в шаблон страницы. Это может быть изменено, чтобы исключить авторов.
<?php
//display selected users
$userids_to_display = array(4,221,22,3,5,9,235,236,250); // wordpress user IDs to include
$blogusers = get_users_of_blog();
if ($blogusers) {
foreach ($blogusers as $bloguser) {
if ( in_array($bloguser->user_id, $userids_to_display) ) {
$user = get_userdata($bloguser->user_id);
echo '<div>';
echo '<div class="alignleft">'.get_avatar($user->ID).'</div>';
echo '<div class="user-data"><h3>' . $user->user_firstname . ' ' . $user->user_lastname . '</h3>';
echo '<div class="author-description">'.$user->description.'</div>';
echo '</div>';
}
}
}
?>
Поскольку кажется, что нет возможности сделать это без пользовательской функции, вы можете использовать jQuery, чтобы найти их имена и скрыть их после того, как список генерируется. Что-то вроде этого:
$('ul.author_list li:contains("John")').remove();
Я также нашел плагин, который может сделать это для вас:Список авторов плюс