Jak stworzyć motyw WordPress #010 – Wyświetlanie autora, kategorii oraz daty dodania wpisu

WordPress 8 minut czytania

Nie da się ukryć, że większość witryn postawionych na WordPressie to wszelkiego rodzaju blogi. 🙂 Składają się zawsze z kilku wspólnych elementów – jednym z nich są wpisy. Ponownie artykuły złożone są z kilku składników: tytułu, treści oraz meta danych.

To właśnie o tych ostatnich chciałbym dziś troszkę pomówić, a dokładnie pokazać w jaki sposób dodać do naszych wpisów informacje o dacie umieszczenia artykułu, autorze oraz kategoriach, do których dany post został przypisany.

Wyświetlenie daty i godziny, o jakiej został dodany artykuł.

Jest to chyba najprostszy kod PHP, który dziś poznamy, a wygląda dokładnie w ten sposób:

<?php the_time( $d ); ?>

Pokazuje on czas. W zależności od tego co wpiszemy jako parametr, to zostanie wyświetlona data lub godzina dodania wpisu.

Godzina w formacie 12 godzinnym.

Jest to najprostsza opcja, bo nie wymaga żadnych parametrów. Wystarczy taki prosty kod:

<?php the_time(); ?>

Godzina w formacie 24 godzinnym.

Tu trzeba już dodać parametr. Cała funkcja będzie prezentować się w ten sposób:

<?php the_time( 'G:i' ); ?>

Data w postaci samych liczb.

Jeśli chcemy pokazać na przykład taką, prostą datę:

01.01.17

…to w tym celu użyjemy tego oto kodu:

<?php the_time( 'd.m.y' ); ?>

Data z miesiącem w postaci słownej.

Z kolei jeśli chcemy aby data z poprzedniego podtytułu wyglądała w ten oto sposób:

Styczeń 1, 2017

…to jej kod będzie prezentować się dokładnie tak:

<?php the_time( 'F j, Y' ); ?>

Łączenie daty i godziny.

Jak mogliśmy się spodziewać po prostu wpisujemy 2 funkcje, które mogą wyglądać np. w ten sposób:

<p>Wpis dodany: <?php the_time( 'F j, Y' ); ?> o godzinie <?php the_time( 'g:i a' ); ?></p>

I tak oto prezentują się wszystkie kombinacje funkcji the_time, które ukazują nam twórcy WordPressa.

Wyświetlenie autora wpisu wraz z odnośnikiem do jego artykułów.

W tym celu WordPress posiada kolejną, bardzo intuicyjną funkcję, która wygląda w ten sposób:

<?php the_author(); ?>

Można zapytać: Co jeśli chcielibyśmy ustawić odnośnik do strony zawierającej wpisy danego autora? Wtedy wystarczy wstawić tę funkcję:

<?php echo get_author_posts_url(); ?>

…z takim parametrem:

( get_the_author_meta( 'ID’ ) )

Wszystko powinno układać się w taki oto kod:

<a href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"><?php the_author(); ?></a>

Za jego pomocą w źródle odnośnika znajdzie się ID autora artykułu, a całość będzie prowadzić do strony o np. takim linku:

Link podstrony autora

Wyświetlenie wszystkich kategorii przypisanych do danego artykułu.

Ostatnia i zarazem wymagająca największej ilości kodu część tego artykułu. Może na początku pokażę jak wygląda całość, a później przejdziemy przez to linia po linii:

<?php
    $categories = get_the_category();
    $output = '';

    if ( $categories ) {
        foreach( $categories as $category ){
            $output .= '<a href=“' . get_category_link( $category->term_id ) . '”>' . $category->cat_name . '</a>, ';
        }
        echo trim( $output, ', ' );
    }
?>

Tak jak wszystkie skrypty PHP całość rozpoczynamy otwierając tagi <?php ?>. Zaraz po tym wpisujemy 2 bardzo podobne linie kodu:

$categories = get_the_category(); 
$output = ‘’;

Za ich pomocą deklarujemy 2 zmienne. Pierwsza pobiera kategorie danego postu, a druga będzie zawierać cały kod, który powstanie w późniejszym etapie.

Teraz wpisujemy instrukcję warunkową IF:

if ($categories) {}

Oczywiście zadziała ona tylko wtedy gdy warunek w nawiasie zostanie spełniony, a tym samym będą istniały jakiekolwiek kategorie.

Kolejnym etapem jest utworzenie specyficznej pętli, która prezentuje się w ten sposób:

foreach( $categories as $category ){}

Działa ona przez wszystkie elementy tablicy, na którą składają się kategorie. Z kolei w parametrze zostaje wpisana zmienna $categories, której każdy element zostaje umieszczony w zmiennej $category za pomocą parametru as.

W pętli umieszczamy ten kod:

$output .= '<a href="' . get_category_link($category->term_id) . '">' . $category->cat_name . '</a>, ';

Za jego pomocą do zmiennej $output przypisujemy odnośnik (dzięki operatorowi .=). Otwieramy apostrof, w którym znajdzie się kod HTML. Łączymy go za pomocą kropki z elementami napisanymi w PHP, a dokładnie funkcją get_category_link zawierającą taki zapis w parametrze:

$category->term_id

Całość oznacza pobranie linku do kategorii przez którą obecnie przechodzi iterator naszej pętli.

Później możemy zauważyć kolejny, bardzo podobny element:

$category->cat_name

Analogicznie do poprzedniego pobiera on nazwę kategorii, do której posiadamy już odnośnik.

Z kolei tak prezentuje się ostatnia linia kodu. Dzięki niej na ekranie pokazują się kategorie:

echo trim($output, ', ');

Za jej pomocą wyświetlamy zawartość zmiennej $output bez znaku na końcu i początku (funkcja trim();). Musimy zrobić to w ten sposób po to, aby po ostatniej kategorii nie było niepotrzebnego przecinka.

Po wszystkim wystarczy pozamykać wszystkie klamry oraz skrypt PHP.

Podsumowanie.

Tym oto sposobem za pomocą funkcji zdefiniowanych w WordPressie wypisaliśmy meta dane dla każdego artykułu. W przypadku mojego kodu, który w całości wygląda tak:

<?php
    $categories = get_the_category();
    $output = '';

    if ( $categories ) {
        foreach( $categories as $category ){
            $output .= '<a href="' . get_category_link($category->term_id) . '">' . $category->cat_name . '</a>, ';
        }
        echo trim( $output, ', ' );
    }
?>
| Written by: 
<a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">
    <?php the_author(); ?>
</a> in
<?php the_time( 'F j, Y' ); ?>

…wyświetlone meta dane prezentują się w ten sposób:

Efekt finalny

Oczywiście w razie jakichkolwiek pytań lub sugestii zapraszam do komentowania, a jeśli ten artykuł okazał się dla Ciebie wartościowy, to będę bardzo wdzięczny za jego udostępnienie. 🙂

Komentarze

Może dodasz coś od siebie?