Как я могу исключить конкретных авторов из wp_list_authors

wordpress.stackexchange https://wordpress.stackexchange.com/questions/2686

  •  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();

Я также нашел плагин, который может сделать это для вас:Список авторов плюс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top