WordPress – jak stworzyć stronę z autorami

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ć:

  1. pole po którym będziemy sortować
  2. w którą stronę będziemy sortować
  3. czy wyświetlać gravatara
  4. 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;
}
[zip href='http://iworks.pl/wp-content/uploads/2012/05/iworks-authors-shortcode.php-.zip']iworks-authors-shortcode.php.zip[/zip]

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu

Poprzedni

WordPress 3.4 RC 1

Następne

Wyczka upPrev na antyweb.pl

6 komentarzy

  1. Paweł

    Może nie na temat, ale jak zrobić aby dwóch autorów miało dostęp do tego samego postu. Innymi słowy aby twórców było dwóch, etc. Chodzi mi o fizyczny dostęp i rozpoznawanie tego przez WP niżli tylko podpis pod treścią.

  2. @Paweł: czyli takich, których rola jest ograniczona do własnych wpisów? Prawdę mówiąc nie wiem, bo wymagałoby to zmiany bazowych zapytań. Pewnie jest to możliwe, ale pracochłonne i potencjalnie niebezpieczniej. Zawsze możesz zmienić uprawnienia, tak żeby autorzy mogli edytować dowolne wpisy.

  3. Paweł

    @Marcin: tak mniej więcej o to chodzi. Prowadzę pewien projekt na maculatura.pl na którym pisze kilka osób i raz po raz będzie pojawiać się wspólna praca.

  4. @Paweł: zobacz tutaj (pierwszy wynik szukania: multi author wordpress) może znajdziesz coś, co pomoże rozwiązać Twoje zagadnienie. http://www.hongkiat.com/blog/35-tips-tricks-to-manage-and-handle-multi-author-blogs/

  5. ezin

    A czy jestes w stanie zmodyfikować kod i podać jego opcję – listy ale z wykluczeniem administratora serwisu lub jego ID.

Oparte na WordPress & Theme by Anders Norén