Как я могу исключить конкретных авторов из списка авторов wp
Я хочу, чтобы авторы были перечислены, как обычно, из wp_list_authors()
, но я знаю, что есть несколько авторов, которых я также хотел бы исключить из списка. Есть ли способ сделать это?
Спасибо
4 answers
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();
Я также нашел плагин, который может сделать это за вас: Список Авторов Плюс