Ta lekcja samouczka motywu WordPress dla początkujących będzie dotyczyć tego, jak możemy uzyskać dostęp do informacji, takich jak link, tytuł i inne, z każdego postu, gdy znajduje się w pętli postów. Robimy to za pomocą tagów szablonów. W procesie dodamy również szablony pojedynczego widoku do naszego motywu.
W poprzednim kroku dodaliśmy pętlę post zawierającą the_post()funkcję. Ta funkcja konfiguruje zmienne globalne i upewnia się, że możemy używać prostych i intuicyjnych wywołań funkcji, zwanych tagami szablonów, gdy jesteśmy wewnątrz whilepętli.
Najpopularniejsze tagi szablonów do użytku w pętli post
Oto lista najpopularniejszych tagów szablonów, których chcesz użyć, aby uzyskać dostęp do informacji o poście:
the_title()odzwierciedla tytuł posta.the_permalink()wyświetla permalink/URL posta.the_content()wyświetla treść posta (z edytora)the_excerpt()odbija się echem fragment postu. Jeśli pole fragmentu jest puste, spowoduje to wyświetlenie pierwszych 55 słów z treści postu wraz z „…"the_ID()wyświetla identyfikator posta.the_category()wyświetla wszystkie powiązane kategorie.the_tags()wyprowadza wszystkie powiązane tagi.the_date()odzwierciedla datę opublikowania posta.the_time()wyświetla czas publikacji posta.the_author()wyświetla wyświetlaną nazwę autora postathe_post_thumbnail()wyświetla wyróżniony obraz posta. W dalszej części tego samouczka dowiemy się, jak dodać obsługę polecanych miniatur.
Jest ich znacznie więcej. Jeśli jesteś zainteresowany, spójrz na dokumentację WordPress Codex wszystkich tagów postów. Spójrz poza nagłówek „tagów postów”, aby uzyskać więcej informacji – są one nieco rozrzucone na tej stronie.
Zacznijmy implementować niektóre z tych tagów w naszym index.php. Dodam również bardzo podstawowy kod HTML, aby lepiej sformatować wyjście. Zachęcam do dodania własnego kodu HTML! Dodawaj elementy div, span, sekcje, nagłówki itd. z dowolnymi klasami.
Ucieleśnienie pętli w index.php
Wewnątrz pętli w naszym index.phpchciałbym dodać link, który prowadzi do permalinka posta. Wewnątrz linku chciałbym powtórzyć tytuł posta. Następnie chciałbym również przywołać fragment postu i jego kategorie.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<?php the_excerpt(); ?>
<?php the_category(); ?>
</article>
endwhile;
the_posts_pagination();
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
To, co robi powyższy kod, to;
- Linia #5 dodaje
<article>tag HTML z wywołaniem,post_class()które generuje przydatne klasy postów – tak jakbody_class()w poprzednim kroku. - W linii #6-8 dodajemy
<h2>tag tytułu z linkiem prowadzącym do permalinka posta (widok pojedynczy). - Linia nr 9 jest echem fragmentu posta.
- W wierszu nr 10 powtarzamy kategorie posta. Ponieważ do tego wywołania nie przekazuję żadnych argumentów, domyślnie jest to
<ul>lista.
Skutkuje to następującymi danymi wyjściowymi podczas odświeżania strony głównej:
Dokądś zmierzamy! Zachęcam do zapoznania się z dokumentacją poszczególnych funkcji tagów, dla których parametrów akceptują. Możesz trochę zmodyfikować dane wyjściowe! I sam zdecyduj, których tagów szablonu użyć.
Spróbuj kliknąć link do posta i zobacz, że dotarłeś do tej strony z pojedynczym postem. Możesz teraz zobaczyć, że pętla pokazuje tylko ten jeden post. Ponieważ jednak obecnie mamy tylko jeden szablon index.php, pojedynczy widok również korzysta z tego szablonu. Tak więc pojedynczy widok nie ma większego sensu. Nie potrzebujemy linku do samego siebie i chcemy zobaczyć pełną treść posta! Naprawmy to, tworząc nasz drugi szablon w naszym motywie.
Tworzenie szablonów pojedynczego widoku
Jeśli pamiętasz w lekcji 1 samouczka motywu WordPress dla początkujących, przyjrzeliśmy się hierarchii szablonów? Kiedy jesteśmy na pojedynczym poście lub stronie, WordPress szuka single.phppostów i page.phpstron. Jeśli jeden z nich nie zostanie znaleziony, WordPress powraca do tego, singular.phpktóry jest udostępniany niezależnie od typu postu. Jednak motywy generalnie wdrażają single.phpi page.phpze względu na różnice między postami i stronami. Strony nie mają kategorii i tagów, a ponieważ strony są zwykle używane do treści statycznych, zwykle nie pokazują daty publikacji ani komentarzy. To zależy wyłącznie od Ciebie.
Stworzymy single.phpi page.phpdla naszego tematu. Zacznijmy od postów.
Szablon pojedynczego posta
W folderze motywu utwórz kopię index.phpi zmień jej nazwę na single.php. W single.phptym miejscu usuniemy permalink (który prowadzi do samego siebie) i zamienimy fragment na pełną treść posta. I na koniec nie potrzebujemy tutaj nawigacji do archiwum.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Dodajmy więcej przydatnych informacji; takie jak data postu i nazwisko autora. Ponownie zachęcam do dodania znaczników HTML, aby stworzyć znacznie ładniejszą strukturę HTML.
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
<?php the_category(); ?>
<p>Posted: <?php the_date(); ?> at <?php the_time(); ?></p>
<p>Author: <?php the_author(); ?></p>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Funkcje the_time()i the_date()będą wyświetlać datę i godzinę w formacie zdefiniowanym w panelu administracyjnym > Ustawienia. Można to jednak zastąpić, podając inny format daty jako parametr dla tych metod.
Funkcja the_author()odzwierciedla „wyświetlaną nazwę” autora. Jeśli użytkownik nie podał żadnej innej nazwy w swoim profilu, spowoduje to wyświetlenie nazwy użytkownika.
Gorąco zachęcam, aby nigdy nie drukować nazw użytkowników, ponieważ może to stanowić zagrożenie dla bezpieczeństwa. Zawsze upewnij się, że autorzy podali prawidłową nazwę lub nie używaj the_author().
Tak wygląda teraz dla mnie jeden post. Wspaniały! Zróbmy szablon pojedynczej strony.
Szablon pojedynczej strony
Zrób kopię swojego single.phpi zmień jego nazwę na page.php. Wszystko, co zrobiłem, page.phpto usunięcie wszystkiego, co nie dotyczy stron. Echowanie kategorii dla stron nie zadziała, a także usunąłem datę, godzinę i autora. Oto, co dostajemy page.php:
<?php get_header(); ?>
<?php
if (have_posts()) {
while (have_posts()): the_post();
<article <?php post_class(); ?>>
<h2><php the_title(); ?></h2>
<?php the_content(); ?>
</article>
endwhile;
} else {
?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
W końcu zaczynamy coś robić z naszymi szablonami! Jednak nie mogę tego wystarczająco powtórzyć; Zachęcam do modyfikowania szablonów i parametrów do funkcji według własnych upodobań. Zwłaszcza dodanie większej liczby opakowań HTML, aby ułatwić później stylizację.
W następnym kroku odchodzimy trochę od szablonów i zajmujemy się bardziej backendowym kodowaniem motywów WordPress.

