it-swarm.dev

Jak mohu vyloučit konkrétní autory z wp_list_authors

Chci mít autory uvedené jako obvykle od wp_list_authors(), ale vím, že existuje několik těch, které bych rád ze seznamu vyloučil. Existuje způsob, jak to udělat?

Dík

1
Paul Sheldrake

wp_list_authors() má nyní parametr exclude. Můžete tak vyloučit autory, které chcete podle svého ID uživatele.

Přijímá:

Pole ID, čárky nebo mezery oddělené seznam ID autorů zahrnout. Výchozí prázdný.

Příklady:

// 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
Kelvin Castelino

Zdá se, že wp_list_authors nemá žádné filtry ani get_users_of_blog , funkce, kterou používá k získání seznamu uživatelů. Takže buď musíte regex-a-nahradit výstup sami, nebo vytvořit podobnou funkci s extra parametrem pro určení autorů, které mají být vyloučeny. Není to příliš velké a většina kódu je věnována možnostem manipulace, takže to není tak moc duplikace.

Vždy byste mohli hlasovat pro existující tiket Trac, aby se v budoucí verzi přidal parametr exclude !

3
Jan Fabry

Použil jsem následující kód zahrnout informace z autorů (WordPress uživatelé) v šabloně stránky. To by mohlo být obráceno, aby se vyloučili autoři.

<?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
eppand

Vzhledem k tomu, že se zdá, že neexistuje žádný způsob, jak to udělat bez vlastní funkce, můžete použít jQuery najít jejich jména a skrýt po generování seznamu. Něco takového:

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

Našel jsem také plugin, který to může udělat pro vás: Seznam autorů Plus

0
moettinger