paulsheldrake
  • 0
Учитель

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

  • 0

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

Спасибо

Share
  1. @Paul Sheldrake : Вы всегда хотите исключать этих пользователей или только в определенных контекстах? Если только в определенных контекстах, то в каких?

    • 0
  2. 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' ]);
    
    • 0
  3. Кажется wp_list_authors, у него нет ни фильтров, ни get_users_of_blog функции, которую он использует для получения списка пользователей. Таким образом, вам нужно либо самостоятельно выполнить регулярное выражение и заменить вывод, либо создать аналогичную функцию с дополнительным параметром, чтобы указать авторов, которых следует исключить. Он не слишком большой, и большая часть кода тратится на обработку параметров, так что дублирования не так много.

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

    • 0
  4. Я использовал следующий код для включения информации от авторов (пользователей 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>';
                    }
                  }
                }
                ?>
    
    • 0
  5. Поскольку кажется, что это невозможно сделать без пользовательской функции, вы можете использовать jQuery, чтобы найти их имена и скрыть их после создания списка. Что-то вроде этого:

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

    Я также нашел плагин, который может сделать это за вас: List Authors Plus

    • 0

Оставить ответ

You must login to add an answer.