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


Я хочу, чтобы авторы были перечислены, как обычно, из wp_list_authors(), но я знаю, что есть несколько авторов, которых я также хотел бы исключить из списка. Есть ли способ сделать это?

Спасибо

Author: nobody, 2010-10-07

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' ]);
 3
Author: Kelvin Castelino, 2015-04-17 09:23:15

Кажется, wp_list_authors не имеет никаких фильтров, а также get_users_of_blog, функция, которую он использует для получения списка пользователей. Таким образом, вам придется либо самостоятельно выполнять регулярное выражение и заменять выходные данные, либо создавать аналогичную функцию с дополнительным параметром, чтобы указать авторов для исключения. Он не слишком велик, и большая часть кода тратится на обработку параметров, так что дублирование не так уж и велико.

Вы всегда можете проголосовать за существующий билет Trac, чтобы в будущем добавить параметр exclude версия!

 3
Author: Jan Fabry, 2010-10-07 15:11:05

Я использовал следующий код для включения информации от авторов (пользователей 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>';
                }
              }
            }
            ?>
 1
Author: eppand, 2012-07-13 15:06:22

Поскольку кажется, что это невозможно сделать без пользовательской функции, вы можете использовать jQuery, чтобы найти их имена и скрыть их после создания списка. Что-то вроде этого:

$('ul.author_list li:contains("John")').remove();

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

 0
Author: moettinger, 2012-07-13 14:41:48