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.

ocena: 4,80 / 5 | głosów: 5
Bardzo ciekawe. Mam jednak takie małe pytanie.
Czy 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.
Super, czekam na następną część ;)
Przepraszam za niedopatrzenie Wojtek – autor w oryginale poprawiony :).
Panowie 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
@NoVi,
Bodajż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).
Wojciech Usarzewicz dzięki bardzo, działa tak jak mowiłes :)
Czyli 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
http://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?
@Kazislav: Obawiam się, że zbyt chaotycznie opisałeś o co Ci chodzi. Możesz to jakoś inaczej wyjaśnić?
@Kazislav: Chyba 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.