Gdy wczorajszym popołudniem sączyłem sobie w ramach wytchnienia filiżankę zielonej herbaty, młody człowiek zwany Piotr San zadał mi pytanie (nie ważne w jaki sposób, dla klimatu chińskiej pustelni pominiemy technologię e-maili):
– Miszczu – rzekł – a gdyby chciał w pętlę swą kod własny wstawić, ale nie inaczej, jak po drugim i szóstym wpisie go tylko wyświetlić, cóż mam czynić?
I choć rzecz prosta w istocie, to dla tych co nie zaznajomieni są z techniką Pe-Ha-Pe o Poranku, zadanie to wydawać może się niepomiernie trudne do zrealizowania.
– Siądź młodzieńcze i posłuchaj uważnie, a wnet zrozumiesz, co czynić masz!
Kroki, które podjąć musisz
Wpierw na stronę index.php
zerknąć powinieneś, bowiem to na niej wszystko Ci przedstawię. Zlokalizuj początek pętli,
<?php if (have_posts()) : ?>
Zaraz za tą linią, swój własny kod musisz wpisać:
<?php
// Zmienna, która posłuży do liczenia
$i = 0; ?>
$i
symbolizuje tutaj zmienną, której wartość liczbowa wynosi 0. Zmienna ta będzie służyć do liczenia kolejnych zapętleń (na prosty rozum – do kolejnych wyświetlanych wpisów). Teraz musimy przejść dalej, zlokalizuj więc kolejną część pętli:
<?php while (have_posts()) : the_post(); ?>
I zaraz za fragmentem tym umieść kod własny:
<?php
// Podwójny symbol plusa przy każdej pętli zwiększa wartość zmiennej o jeden
$i++; ?>
W technice Pe-Ha-Pe podwójny symbol plusa zwiększa wartość liczbową zmiennej o jeden (lecz nie mów tego innym miszczom, bowiem moje tłumaczenie nie reprezentuje całości istoty zagadnienia). Wystarczy Ci wiedzieć, iż przy każdym wpisie wartość zmiennej $i
będzie rosnąć.
A teraz zlokalizuj funkcję zamykającą pętlę:
<?php endwhile; ?>
I tuż przed nią umieść kod własny:
<?php if ($i == 2 || $i == 4) : ?>
<!-- TUTAJ UMIESZCZAMY KOD, CO MA SIĘ POWTARZAĆ -->
<?php endif; ?>
Podwójny znak równości określa równość, bowiem wiedz, że w technice Pe-Ha-Pe pojedynczy znak równości służy jedynie do przypisywania wartości dla zmiennej. Podwójna kreska zaś może zostać przetłumaczona na „LUB”. W powyższym przypadku nasz kod, co ma się powtarzać, wyświetlony zostanie po drugim i po czwartym wpisie. Aby łatwiej było Ci zrozumieć zasadę powtarzania, zerknij na kod poniżej:
<?php if ($i == 2 || $i == 4 || $i == 7 || $i == 11) : ?>
<!-- TUTAJ UMIESZCZAMY KOD, CO MA SIĘ POWTARZAĆ -->
<?php endif; ?>
Tenże kod wyświetli to, co ma się powtarzać po drugim, czwartym, siódmym i jedenastym wpisie w naszej pętli. Znasz już teraz zasadę, którą to możesz ot choćby dla wyświetlania reklamy używać. Jak widzisz, prosta to zasada rzecz, młodzieńcze, idź więc kroczyć drogą Wu-Pe-Chi w pokoju, bogatszy w wiedzę.
A droga ta nigdy się nie kończy
Jeśli opowieść ta przydatną dla Ciebie była, nie omieszkaj wrzucić czegoś do mieszka, a jeśli Ty, wędrowcze, co opowieści tej się przysłuchujesz, pytania masz z drogą Wu-Pe-Chi związane, nie omieszkaj ich na tablicy przypiąć (tłumaczenie: zadać pytania w komentarzach, heh), a ja Ci na nie odpowiem w kolejnych opowieściach z Doliny Mat Ta Sana*.
* Twórca WordPressa ma na imię Matt :P
Komentarze
Wdzięcznim Ci mistrzu, za tą opowieść.
odpowiedzPowiało według mnie Star Wars ;-)
odpowiedzMiszczu, wielkość Twą doceniać nam również i po tym, iż w nauce Twej zawarty jest haczyk, który testować czujność adeptów winien. Jam początkujący, jednak me sokole oko podpowiada mi, że haczyk znajduje się w zdaniu „Zmienna, ktora poslozy do liczenia” a jest nim 5 litera 3 wyrazu ;-) .
Pozdrawiam,
Marian
odpowiedzPoprawione :-).
odpowiedzOż w mor… ee, znaczy – na Mat Ta Sana, rację przyznać Ci muszę, zapewne w mej herbacie zielonej podejrzane środki swe miejsce znalazły, lecz miszcz Si Mon San już poprawki swe nakreślił :)
odpowiedzPrzydatne, przydatne :) Dzięki wielkie :)
odpowiedzTeraz ludzie zaczną postrzegać wordpressowców, jako co najmniej dziwnych :P
Niemniej jednak tutorial bardzo przydatny :)
odpowiedzCzegoś podobnego używam do wstawiania reklam na liście wpisów.
odpowiedzTutorial mistrzowsko zaspokaja brak mojego obycia z WP.
odpowiedzA gdyby mistrz swym piórem wykrzesał jeszcze równie idiotoodporny poradnik, jak to zrobićby , po po zapodaniu jakiegoś linka, pojawiały mi się jedynie odnośniki do artykułów w danej kategorii lub z danym tagiem. Będzie lud wdzięczny.
Ot popieram prośbę ucznia Piotra, gdyż sam prosić mistrza o taką przypowieść chciałem!
odpowiedzPiotrze, jeżeli za pomocą php wiesz jak przekazywać zmienną i połączysz to z tym co zawarte na http://vivee.info/2009/03/25/query_posts-czyli-jak-ujarzmic-loopa-czesc-1/ to nie powinieneś mieć problemów.
Mając wiedzę o loopie i podstawy php możesz filtrować wpisy jak tylko zachcesz.
odpowiedzUzupełnieniem może być również kilka przykładów z Smashing Magazine: http://www.smashingmagazine.com/2009/06/10/10-useful-wordpress-loop-hacks/
odpowiedzGenialny tutorial :) Klimatycznie się zrobiło :P
odpowiedzA ja kieruję się z pytaniem – nie wiem czy w kategorii Wu-Pe-Chi.
odpowiedzCzy istnieje jakiś kod/wtyczka do recenzji i ocen filmów/gier/książek?
Byłbym wdzięczny za jakąkolwiek informację.
Coś w deseń SP Reviews, WP Customer Reviews ?
odpowiedzDzięki. Właśnie tego szukałem od jakiegoś czasu. Blog wędruje to zakładki „Ulubione” ;-)
odpowiedzJa stosuję metodę http://vivee.info/2009/03/25/query_posts-czyli-jak-ujarzmic-loopa-czesc-1/ Nie dlatego, że lepsza czy skuteczniejsza ale, że pierwszą była, którą dopadłem :)
Zastosowanie podobne, ale która wersja według was jest przyjemniejsza (mniej zawiła, mniej roboczożerna, etc…)?
Idealnie się czytało :D Już sam tutorial mnie mniej interesował w porównaniu do wstępu :)
odpowiedzA propos mojego pytania kilka postów wyżej
odpowiedzJednej podstawowej rzeczy nie potrafię zrozumieć. Mianowicie, jeśli chcę mieć określony efekt spisu treści z jednej kategorii wyłącznie na jednej stronie lub w jednym poście, to który plik mam edytować, by nie zburzyć strony głównej.
Dzięki za wcześniejsze podpowiedzi.
Najlepiej nieinwazyjnie, np. stworzyć sobie szorta w pliku functions.php >> https://codex.wordpress.org/Shortcode_API
odpowiedzA ja mam pytanie nie na temat :P
Co z forum WPNinja? Powstanie czy nie?
odpowiedzJakby ktoś chciał jakąś treść powtarzać powiedzmy co drugi post lub co trzeci to przyda się modulo zmiennej iteracyjnej
odpowiedz// najwyrazniej w komentarzach zablokowane sa tagi php ;)
$co_ile = 3;
if ($i % $co_ile == 0) :
odpowiedz@Karol,
A można było napisać „ew. użyć czegoś takiego [i tutaj kod]”, tymczasem wyszedłeś na zgreda chwalącego się wiedzą poprzez używanie skomplikowanego słownictwa :P.
Niby mała rzecz, ale tutaj raczej fachowego słownictwa się nie używa, bo nikt nie potrzebuje mądrych terminów, to po prostu ma działać :).
odpowiedzjeśli to jest dla Ciebie skomplikowane słownictwo … :)
odpowiedznie wiem czy ktoś zauważył ale ten blog umiera, powoli ale nieustannie.
polecam zaglądniecie do sekcji archiwum
na początku było fajno
dawet 18 wpisów na miesiac , obecnie 3-5
odpowiedznie żebym się czepiał ale chyba czas poszukać czegoś innego
ostatni gasi swiatło
Oż, jak ja to uwielbiam :). Bracie, jak będziesz nam płacił za teksty, to my będziemy pisać. Póki co dzielimy się tutaj wiedzą za darmo, więc trochę nie masz podstaw, by się wypowiadać w tej kwestii.
odpowiedz@Nathan: Oż, jak ja to uwielbiam :) To twoje podejście :) Nie ma to jak marketing ;)
Nie chodzi o wasze etaty czy darmową wiedzę dla mnie – będę chciał to poradzę sobie inaczej – jak każdy :) Chodzi o to, że jakiś tam (swoją drogą ciekawy i imho przydatny) projekt powoli umiera. To jest tylko i wyłącznie wyraz zainteresowania i przejęcia się użytkowników – co wskazuje, że obecnie (i nadal) się tym blogiem interesują – a nie tylko treścią.
odpowiedzDokładnie tak jak Jacek pisał. Cały czas czekam aż mój czytnik RSS powiadomi mnie o nowym wpisie z WPNinja, ale jakoś nie chce tego zrobię. Ostatnio jedynym pewnem wpisem jest podsumowanie kolejnego miesiąca.
Mam nadzieję, że to tylko efekt końca roku/ sesji. Trzymam kciuki i pozdrawiam.
odpowiedzSesja to, przy mojej obecnej sytuacji, mały pikuś :-). Postaram się jutro napisać o tym osobny wpis coby niektórych uspokoić i wyjaśnić „to i owo”.
odpowiedzRewelacyjny klimat posta!
odpowiedzDopiero przeczytałem ten artykuł – super styl, a rozwiązanie naprawdę proste, ktoś, kto uczy się php od wczoraj, sam by do tego doszedł… ale właśnie dlatego ten artykuł mi się podoba! :D W prosty i przystępny sposób, bez wdawania się w szczegóły i używania skomplikowanej terminologi wyjaśniona jest sprawa, która dla nowicjusza jest praktycznie bez wyjścia… :)
odpowiedzA jak to zrobić, żeby dany kod (np. reklama) była wyświetlana np. po 3 wpisie, ale już nie powtarzała się po 6, 9 itd.?
odpowiedzWystarczy zmodyfikować trochę ten warunek – przeanalizuj trochę kod, na pewno zaraz do tego dojdziesz nawet, jesli nie znasz zupełnie php… ;)
odpowiedzWiesz co marsjaninzmarsa, gdy przeczytałem Twoją odpowiedź na moje pytanie, pomyślałem w pierwszej chwili – co za typ, zamiast podać mi linijke kodu, to się wymądrza że sam do tego dojdę. Ale rzeczywiście masz rację – nie doczytałem artykułu do końca, gdzie przecież jest wyjaśnione to o co pytam. Natomiast gdyby nie Twój wpis, to nie zerknąłbym na to jeszcze raz, bardziej wnikliwie, i pewnie nadal bym żył w niewiedzy. A zatem dziękuję :-) jjjupi! zaraz zastosuję
odpowiedzSpoko – takich niemiłych zachowań nauczyłem się na forum http://forumweb.pl/ – tam po jednym z moich pierwszych, głupich pytań zostałem odprawiony krótkim „popatrz, poczytaj (z linkiem, chyba do manuala, nie pamiętam), zastanów się i wróć tutaj jak już znajdziesz rozwiązanie. Tu nikt za Ciebie gotowca nie zrobi”. Na poczatku naprawdę się wkurzyłem – przecież od czego są ludzie na forum?? Od pomagania, czy od odprawiania z kwitkiem?? Ale potem przeczytałem ten link. Z czystej ciekawości. Brzmiało to nawet sensownie, sprawdziłem jeszcze raz mój kod. Uruchomiłem myślenie, a reszta zadziała się sama – bez problemu znalazłem rozwiązanie, jak przerobić kod do pożądanego przeze mnie kształtu. I zacząłem w taki sam sposób pomagać innym, którzy przychodzili z podobnymi problemami… ;)
odpowiedzInformatyk z ludzką twarzą i w dodatku poczuciem humoru… Zdrowia życzę! :)
odpowiedzA czy ktoś z Was próbował osadzać w tym kodzie np. reklamy z AdTaily? Mi zamiast. np. co 2 i 4 wpis wszystko wywalił przed posty na samej górze… Jakieś sugestie jak to obejść?
odpowiedzTaka myśl na szybko – sprawdź, czy w AdTaily, w ustawieniach boxu reklamowego (w panelu wydawcy) nie masz zaznaczonej opcji „wyświetlaj jak najwyżej” – dokładnie nie pamiętam, jak i gdzie to było, ale jakiś rok temu taka opcja była do ustawienia, wtedy reklama właśnie wyskakiwała „zbyt wysoko” :).
odpowiedzDzięki Wojtek, pomogło :)). W końcu mam reklamy rozmieszczone tak jak chciałem ;). Chcę skorzystać z okazji, jako że jestem już przy głosie ^^. Wiem, że gdzieś padła odpowiedź na pytanie, które chcę zadać (i jest nieco offtopiciem), ale po prostu nigdzie nie mogę tego komentarza znaleźć :C.
Chcę utworzyć podstronę i chce by w niej były wyświetlane wpisy z konkretnej kategorii, wiem że w kodzie trzeba wstawić odpowiednią formułkę, lecz jak pisałem wyżej – nie mogę odnaleźć tego komentarza, a wiem, że ktoś tu podawał odpowiedź na identyczne zapytanie.
odpowiedzPrzecież WordPress sam z siebie generuje archiwa kategorii – po prostu dodaj tę kategorię do wybranego menu i tyle. :)
odpowiedzno tak, wiem że jest takie rozwiązanie tylko że w ten sposób to mogę dodać swoją treść (np. krótka zajawka), a potem by się wyświetlały odpowiednie wpisy z konkretnej kategorii, tak żeby wszystko ubierało się w jedną całość ^^. Jeżeli nie znajdę na to rozwiązania to zostanie tak jak piszesz :)
odpowiedzMożesz utworzyć nowy plik o nazwie category-$slug.php (oczywiście zastępując $slug slugiem danej kategorii), kopiując do niego treść z category.php, a następnie dowolnie dostosować wyświetlanie dla tej konkretnej kategorii.
Najlepiej by było oczywiście dodać w odpowiadającym Ci miejscu wywołanie funkcji category_description() (jej opis w Kodeksie), ale w sumie możesz również zahardkodować odpowiedni HTML z treścią bezpośrednio w szablonie, jeśli wolisz…
W ogóle, jeśli znasz angielski chociaż trochę, to polecam samodzielną lekturę Kodeksu. Naprawdę genialna dokumentacja, nie spotkałem jeszcze programu, który mógłby się poszczycić lepszą… :)
odpowiedzW ogóle – masz tutaj obrazek z hierarchią plików szablonów w WP, kiedy pracuję nad szablonami cały czas mam go otwartego w karcie przeglądarki…
odpowiedzŚwietne, proste i elastyczne. 10/10
odpowiedzwrzucę Cię do credits jak skończę przebudowę projektu.
Dodaj własny komentarz