Lista autorów może przydać się na tych wszystkich serwisach, na które nie są prowadzone przez jedną osobę, a chcielibyśmy wyświetlić listę wszystkich piszących na danym blogu.
Sposobów na utworzenie strony zawierającej listę autorów jest co najmniej kilka, choć wszystkie mniej lub bardziej sprowadzą się do wykorzystania funkcji get_users, która pozwala na pobranie listy użytkowników.
Moim zdaniem najlepszą metodą na umieszczanie tego typu rzeczy jest użycie shortcode’a, ponieważ dzięki temu możemy wyświetlić naszą listę w dowolnym miejscu, a jak ktoś podepnie obsługę shortcode’ów do widgetów, to również tam.
Podany przykład ma cztery parametry, za pomocą których możemy wybrać:
pole po którym będziemy sortować
w którą stronę będziemy sortować
czy wyświetlać gravatara
wielkość wyświetlanego gravatara
Dwa pierwsze parametry przekazywane są do wcześniej wymienionej funkcji. Dodatkowo jest tam wysyłany również parametr „who” za pomocą którego, lista zostaje ograniczona do autorów.
add_shortcode( 'iworks-authors', 'iworks_authors_shortcode' );
function iworks_authors_shortcode( $atts )
{
extract( shortcode_atts( array(
'orderby' => 'name',
'order' => 'ASC',
'gravatar' => 1,
'gravatar_size' => 64
), $atts ) );
$args = array(
'orderby' => $orderby,
'order' => $order,
'who' => 'authors'
);
$authors = get_users( $args );
if ( empty( $authors ) ) {
return '';
}
$content = '<ol class="authors">';
$one = '<li class="name_%s">%s<a href="%s" class="author">%s</a></li>';
foreach ( $authors as $author ) {
$content .= sprintf(
$one,
apply_filters( 'sanitize_title', $author->user_login ),
$gravatar? get_avatar( $author->ID, $gravatar_size ).' ': '',
get_author_posts_url( $author->ID ),
$author->display_name
);
}
$content .= '</ol>';
return $content;
}
pobierz plik: iworks-authors-shortcode.php.zip
Jak użyć podany kod?
Masz 3 rozwiązania:
wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
wrzuć załączony plik do folderu wp-content/mu-plugins
dołącz kod do pliku functions.php aktualnie używanego motywu
Comments