Nasz WordPress wykrywa już nowy styl w katalogu, zapewne również wyświetla już piękny nagłówek, pora więc zabrać się do pracy i zmusić go do wyświetlenia konkretnej zawartości w postaci wpisów i stron statycznych – wbrew pozorom nie jest to takie trudne, o czym już wkrótce się przekonacie.
Zerknijmy może na naszą pętlę, którą wykonaliśmy w poprzednim artykule – interesuje nas konkretny jej fragment:
<?php while ( have_posts() ) : the_post(); ?>
// Tresc
<?php endwhile; ?>
W miejsce 'Treści’ wstawimy kod odpowiedzialny za wyświetlanie konkretnej zawartości – WordPress (w trybie standardowym) wyświetla całą zawartość wpisu za pomocą jednego zapytania (nie liczymy w tym miejscu dodatkowych zapytań tyczących się relacji wpisów do kategorii i tagów), poszczególne elementy wpisu zaś wyświetlane są za pomocą prostych funkcji – oto ich lista:
the_ID()
– wyświetla ID wpisu;the_title()
– wyświetla tytuł wpisu;the_permalink()
– wyświetla link do wpisu;the_content()
– wyświetla treść wpisu;the_excerpt()
– wyświetla podsumowanie wpisu;the_time()
– wyświetla datę wpisu;edit_post_link()
– tworzy link do strony edycji wpisu;
Dodatkowo, aby nasz wpis był nieco bardziej kompletny, możemy wykorzystać następujące funkcje, które określą relacje występujące pomiędzy wpisem a tagami, kategoriami i autorami, a następnie wyświetlą odpowiednie wartości:
the_tags()
– wyświetla tagi przypisane do wpisu;the_category()
– wyświetla kategorie wpisu;the_author()
– wyświetla nazwę autora wpisu;
Znajomość powyższych funkcji pozwala nam już wyświetlić wpisy, tworząc dla przykładu coś takiego:
<div class="post" id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<p class="meta">Napisał: <?php the_author(); ?> w dniu: <?php the_time('F jS, Y') ?>, w kategorii: <?php the_category(', ') ?></p>
<?php the_content('Czytaj więcej...'); ?>
<?php the_tags( '<p>Otagowano ', ', ', '</p>'); ?>
</div>
</div>
Wnikliwi zauważą zapewne, że the_content()
oraz the_time()
posiadają treść między nawiasami – są to tak zwane parametry bądź atrybuty funkcji. W przypadku the_time()
np. pozwalają na sformatowanie wyświetlanie daty i czasu. Możemy je pominąć, wtedy data i czas będą formatowane zgodnie z ustawieniami WordPressa (które ustawiamy z panelu zarządzania). Zaś treść w the_content()
będzie wyświetlana w momencie, gdy we wpisie umieścimy znacznik <!--more-->
– atrybutami jednak zajmiemy się innym razem.
Pętla i strony statyczne
Nazwa „pętla” wzięła się z tego, że powyższy kod będzie powielany tak długo, aż w bazie danych nie skończą się wpisy (bądź nie określimy inaczej przy tworzeniu własnych zapytań do bazy – o tym kiedy indziej).
Ktoś jeszcze zapyta „no dobra, mamy wpisy, ale co ze stronami statycznimi?” – otóż to samo – powyższy kod może byż zastosowany zarówno do wpisów, jak i do stron statycznych – wyjątkiem będą tagi i kategorie, które nie zostaną wyświetlone (bo nie można ich dodać do stron statycznych) – jak więc WordPress rozróżnia co jest stroną statyczną, a co wpisem i skąd wie jak co wyświetlić? O tym już w kolejnej części, cierpliwości.
Komentarze
Bardzo ciekawe. Mam jednak takie małe pytanie.
odpowiedzCzy jeśli wstawię między
# the_content() –
# the_excerpt()
np. kod do reklam google to będą one wyświetlane w środku wpisu?
Pozdrawiam
Przyjęło się, że the_content i the_excerpt nie są wyświetlane razem – choć można ich używać np. do wstepu i treści właściwej, w tym wypadku excerpt pojawia się pierwszy – bo wstęp lepiej wygląda na początku :P.
Wstawiając wtedy między dwie funkcje dowolny kod, pojawi się on między wstępem a treścią właściwą. Nie ma jednak możliwości „ręcznego” umieszczenia kodu w środku treści właściwej (w środku the_content), trzeba się posłużyć odpowiednimi wtyczkami, czego osobiście nie polecam.
odpowiedzSuper, czekam na następną część ;)
odpowiedz[…] Rozwiązanie tego problemu sprowadza się do napisania własnej funkcji i wpięciu jej w odpowiednie miejsce w pętlę WordPressa. […]
odpowiedz[…] początek gorąco polecam wpis Szymona Skulimowskiego (Pliki szablonów WordPressa – część 3 – Głębsze spojrzenie na pętlę) opisującego samą pętlę WordPress, której znajomość będzie potrzebna by wykonać zadanie. […]
odpowiedzPrzepraszam za niedopatrzenie Wojtek – autor w oryginale poprawiony :).
odpowiedzPanowie a powiedzcie mi, jaki będzie kod na link do Zaloguj/ Zarejestruj
tzn ze jak jestem Zalogowany to mnie jako adminowi Pisze panel Admina a jak nie jestem zalogowany to Zarejestruj Bądź zaloguj..
Bo brakuje mi tego w stylu moim :P
odpowiedzBodajże 'wp_loginout();’ będzie odpowiednią funkcją do wyświetlenia 'zaloguj/wyloguj’, natomiast 'wp_register(’before’, 'after’);’ będzie używane do wyświetlenia linku rejestracji, bądź panelu admina (jesli rejestracja jest oczywiście włączona).
odpowiedzWojciech Usarzewicz dzięki bardzo, działa tak jak mowiłes :)
odpowiedzCzyli jak dobrze rozumiem to:
(); ?>
// Tresc
// Jakieś podpisy i np reklama czy podobne wpisy.
Nie znam się na PHP a chcę wiedzieć gdzie wciskać np. skrypt (JS) który wyświetli się pod postem. Szablon mam ten
odpowiedzhttps://wordpress.org/extend/themes/carrington-blog
i za nic nie wiem gdzie to wkleić.
Hmmm… coś mi ucięło. Chodzi o to czy jeżeli wcisnę w tym kawałku pętli to czy wyświetli mi pod wpisem?
odpowiedzObawiam się, że zbyt chaotycznie opisałeś o co Ci chodzi. Możesz to jakoś inaczej wyjaśnić?
odpowiedzChyba już wiem o co Ci chodzi ;) Jeśli dobrze kombinuję to chcesz pod wpisami wyświetlić reklamę lub rubrykę z podobnymi wpisami tak jak na tym blogu. Specem w PHP nie jestem, ale chyba dobrze myślisz. Spróbuj to wrzucić za skryptem PHP czyli po ?>. Wtedy powinno się wyświetlać za każdym razem, ale to tak tylko na chłopski rozum. Najlepiej sprawdź sam. Jak nie dojdziesz do ładu to Wojciech pewnie pomoże.
odpowiedz[…] małą miniaturkę na stronie głównej naszego blogu. W tym celu otwieramy plik index.php i w pętli lokalizujemy miejsce, gdzie chcemy wyświetlić nasz […]
odpowiedz[…] Pliki szablonów WordPressa – część 3 – Głębsze spojrzenie na pętlę – wpninja.pl […]
odpowiedzu mnie rzuca bledem w tej linii the_post>(), nie powinno byc the_post() ?
odpowiedzTak, masz rację. Błędny zapis poprawiłem, dzięki za informację!
odpowiedzA czy da się zrobić tak, żeby wyświetliło i tag i jego opis? Ale żeby wyświetliło tylko jeden konkretny tag – kiedy w mojej stronie szukam sobie tagu, to żeby wyświetliło tylko ten jeden konkretny tag, jego opis i posty, w którym ten tag jest zawarty? Da się coś takiego zrobić?
odpowiedzChodzi Ci o taką stronę? :-)
odpowiedzhttp://www.songlish.com.pl/tag/shame/
Dodaj własny komentarz
Odnośniki z innych stron
Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:
[…] Rozwiązanie tego problemu sprowadza się do napisania własnej funkcji i wpięciu jej w odpowiednie miejsce w pętlę WordPressa. […]
[…] początek gorąco polecam wpis Szymona Skulimowskiego (Pliki szablonów WordPressa – część 3 – Głębsze spojrzenie na pętlę) opisującego samą pętlę WordPress, której znajomość będzie potrzebna by wykonać zadanie. […]
[…] małą miniaturkę na stronie głównej naszego blogu. W tym celu otwieramy plik index.php i w pętli lokalizujemy miejsce, gdzie chcemy wyświetlić nasz […]
[…] Pliki szablonów WordPressa – część 3 – Głębsze spojrzenie na pętlę – wpninja.pl […]