publikacja: 13 czerwca 2009, autor: , komentarze 44 http://wpninja.pl/artykuly/wu-pe-chi-triki-1-wstawiamy-wlasny-kod-po-okreslonej-ilosci-wpisow/

Wu-Pe-Chi Triki #1: Wstawiamy własny kod po określonej ilości wpisów

Wu-Pe-Chi Triki #1: Wstawiamy własny kod po określonej ilości wpisów

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

  1. aniec2 7 lat temu:

    Wdzięcznim Ci mistrzu, za tą opowieść.

    odpowiedz
  2. elgo 7 lat temu:

    Powiało według mnie Star Wars ;-)

    odpowiedz
  3. Marian 7 lat temu:

    Miszczu, 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

    odpowiedz
  4. Szymon Skulimowski 7 lat temu:

    Zmienna, ktora poslozy do liczenia” a jest nim 5 litera 3 wyrazu…

    Poprawione :-).

    odpowiedz
  5. Nathan Usarzewicz 7 lat temu:

    Oż 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ł :)

    odpowiedz
  6. ludwik 7 lat temu:

    Przydatne, przydatne :) Dzięki wielkie :)

    odpowiedz
  7. Damian 7 lat temu:

    Teraz ludzie zaczną postrzegać wordpressowców, jako co najmniej dziwnych :P

    Niemniej jednak tutorial bardzo przydatny :)

    odpowiedz
  8. Krzysztof Lis 7 lat temu:

    Czegoś podobnego używam do wstawiania reklam na liście wpisów.

    odpowiedz
  9. Piotr 7 lat temu:

    Tutorial mistrzowsko zaspokaja brak mojego obycia z WP.
    A 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.

    odpowiedz
  10. aniec2 7 lat temu:

    Ot popieram prośbę ucznia Piotra, gdyż sam prosić mistrza o taką przypowieść chciałem!

    odpowiedz
  11. palmiak 7 lat temu:

    Piotrze, 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.

    odpowiedz
  12. agresor 7 lat temu:

    Uzupeł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/

    odpowiedz
  13. Czekaj Jakub 7 lat temu:

    Genialny tutorial :) Klimatycznie się zrobiło :P

    odpowiedz
  14. Lemony. 7 lat temu:

    A ja kieruję się z pytaniem – nie wiem czy w kategorii Wu-Pe-Chi.
    Czy istnieje jakiś kod/wtyczka do recenzji i ocen filmów/gier/książek?
    Byłbym wdzięczny za jakąkolwiek informację.

    odpowiedz
    1. Paweł Knapek 3 lata temu:

      Coś w deseń SP Reviews, WP Customer Reviews ?

      odpowiedz
  15. Michał 7 lat temu:

    Dzięki. Właśnie tego szukałem od jakiegoś czasu. Blog wędruje to zakładki „Ulubione” ;-)

    odpowiedz
  16. Jacek Krużycki 7 lat temu:

    Ja 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 :)

    odpowiedz
  17. Piotr 7 lat temu:

    A propos mojego pytania kilka postów wyżej
    Jednej 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.

    odpowiedz
    1. Paweł Knapek 3 lata temu:

      Najlepiej nieinwazyjnie, np. stworzyć sobie szorta w pliku functions.php >> http://codex.wordpress.org/Shortcode_API

      odpowiedz
  18. albatros 7 lat temu:

    A ja mam pytanie nie na temat :P

    Co z forum WPNinja? Powstanie czy nie?

    odpowiedz
  19. Karol Sójko 7 lat temu:

    Jakby ktoś chciał jakąś treść powtarzać powiedzmy co drugi post lub co trzeci to przyda się modulo zmiennej iteracyjnej

    odpowiedz
  20. Karol Sójko 7 lat temu:

    // najwyrazniej w komentarzach zablokowane sa tagi php ;)
    $co_ile = 3;

    if ($i % $co_ile == 0) :

    odpowiedz
  21. Nathan Usarzewicz 7 lat temu:

    @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ć :).

    odpowiedz
  22. Karol Sójko 7 lat temu:

    jeśli to jest dla Ciebie skomplikowane słownictwo … :)

    odpowiedz
  23. o90 7 lat temu:

    nie 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
    nie żebym się czepiał ale chyba czas poszukać czegoś innego
    ostatni gasi swiatło

    odpowiedz
  24. Nathan Usarzewicz 7 lat temu:

    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
  25. Jacek Krużycki 7 lat temu:

    @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ą.

    odpowiedz
  26. Zacol 7 lat temu:

    Dokł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.

    odpowiedz
  27. Szymon Skulimowski 7 lat temu:

    Sesja 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”.

    odpowiedz
  28. Paweł Błach 7 lat temu:

    Rewelacyjny klimat posta!

    odpowiedz
  29. marsjaninzmarsa 7 lat temu:

    Dopiero 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… :)

    odpowiedz
  30. Rafał 7 lat temu:

    A 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.?

    odpowiedz
  31. marsjaninzmarsa 7 lat temu:

    Wystarczy zmodyfikować trochę ten warunek – przeanalizuj trochę kod, na pewno zaraz do tego dojdziesz nawet, jesli nie znasz zupełnie php… ;)

    odpowiedz
  32. Rafał 7 lat temu:

    Wiesz 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ę

    odpowiedz
  33. marsjaninzmarsa 7 lat temu:

    Spoko – 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… ;)

    odpowiedz
  34. Adam 6 lat temu:

    Informatyk z ludzką twarzą i w dodatku poczuciem humoru… Zdrowia życzę! :)

    odpowiedz
  35. Mateusz 4 lata temu:

    A 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ść?

    odpowiedz
    1. Wojtek 4 lata temu:

      Taka 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” :).

      odpowiedz
    2. Mateusz 4 lata temu:

      Dzię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.

      odpowiedz
    3. marsjaninzmarsa 4 lata temu:

      Przecież WordPress sam z siebie generuje archiwa kategorii – po prostu dodaj tę kategorię do wybranego menu i tyle. :)

      odpowiedz
    4. Mateusz 4 lata temu:

      no 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 :)

      odpowiedz
    5. marsjaninzmarsa 4 lata temu:

      Moż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ą… :)

      odpowiedz
    6. marsjaninzmarsa 4 lata temu:

      W 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
  36. ZacnyUser 4 lata temu:

    Świetne, proste i elastyczne. 10/10
    wrzucę Cię do credits jak skończę przebudowę projektu.

    odpowiedz

Dodaj własny komentarz