Pętla WordPress: co to jest i co musisz o niej wiedzieć
Opublikowany: 2023-10-25Jeśli jesteś twórcą motywów WordPress, programistą lub po prostu entuzjastą chcącym dowiedzieć się, czym jest pętla WordPress, ten artykuł jest dla Ciebie! Bez zbędnych ceregieli zacznijmy od podstaw: Co to jest pętla?
Pętla WordPress to kod PHP, który pokazuje posty WordPress lub po prostu; jest używany w różnych motywach do wyświetlania postów na dowolnej stronie internetowej. Nie tylko działa na większości stron, które widzisz, ale także pozwala modyfikować i dostosowywać go do własnych upodobań.
Te pętle witryny mogą być używane do wyświetlania postów według liczby komentarzy, pokazywania postów ze zdjęciami i tak dalej.
Kiedy spojrzysz na pętlę, zobaczysz, że niektóre funkcje działają domyślnie, aby pokazać posty. Twórcy motywów mogą używać tych funkcji i znaczników szablonów, aby dostosować sposób wyświetlania każdego wpisu w pętli.
Te znaczniki szablonów działają tylko w domyślnej pętli WordPress i służą do formatowania, porządkowania i publikowania danych postów.
Pętla WordPress jest bez wątpienia najważniejszą częścią kodu WordPressa i przyjrzyjmy się bliżej, jak działa pętla Twojej witryny.
Pętla strony WordPress dla początkujących
Jak już wspomnieliśmy, pętla postów to kod, który wyświetla wszystkie informacje, jakie WordPress posiada na temat wpisu lub postów. Przechodzi w tle przez każdy post i przeszukuje bazę danych jeden po drugim, co pozwala mu dostarczyć informacji o wszystkich znalezionych postach.
Oto przykład działania WordPressa polegającego na przeglądaniu postów w pętli:
- uruchamiasz pętlę,
- podejmuj działania w związku z każdym znalezionym postem lub stroną,
- zamknąć pętlę.
Te trzy kroki reprezentują podstawową logikę pętli. Od tego momentu możesz wykazać się kreatywnością i filtrować znalezione posty za pomocą zapytania. Zapytanie mówi pętli, czego szukamy. W naszym przykładzie wyglądałoby to tak:
- zdefiniuj czego szukamy,
- rozpocznij pętlę,
- podejmuj działania w przypadku każdego znalezionego postu lub strony,
- zamknąć pętlę.
Jeśli masz doświadczenie z kodem PHP, być może znasz funkcję „while”, która jest używana w pętlach do wykonywania zapytań do bazy danych i dynamicznego wyświetlania informacji bez konieczności ręcznego wpisywania każdego wiersza bazy danych.
Pętla while w WordPressie działa w ten sam sposób.
Przykład standardowej pętli WordPress
Poniżej znajduje się przykład standardowej pętli WordPress, której można użyć na dowolnej stronie.
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>
Przyjrzyj się funkcjom Have_posts() i the_post() . Pierwsza określa, czy są jakieś posty do pokazania, a druga konfiguruje dane i wewnętrzne punkty, co pomaga funkcji have_posts() .
Jeśli nie ma nic do pokazania, funkcja powinna wyświetlić komunikat informujący użytkowników.
Jeśli są tam posty, których szukamy, to pętla będzie je wyświetlać jeden po drugim.
Tutaj masz blok kodu, który faktycznie będzie wyświetlał posty, to nasza wina!
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>
Wyświetlana tutaj treść zależy od zapytania, o którym już mówiliśmy, a sposób wyświetlania tej treści zależy od pętli. Ta ilość dostosowań jest niesamowita i to właśnie wyróżnia WordPress.
Dobra robota! Teraz już wiesz, czym jest pętla postów!
Użycie kodu do zmiany głównego zapytania
Zanim zaczniemy, musimy Cię ostrzec, że zmiana głównego zapytania może mieć niezamierzone konsekwencje, jeśli nie wiesz, co robisz. Zachowaj ostrożność podczas eksperymentowania!
Jeśli chcemy zmodyfikować podstawową funkcjonalność, musimy przyjrzeć się hakom. Haki umożliwiają nam zmianę długości tekstu, zmianę ekranu logowania, ponowne sformułowanie komunikatów o błędach, zmianę niestandardowych typów postów i wiele więcej.
add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}
Zauważ, że używamy haka pre_get_post do modyfikowania parametrów głównego zapytania przed jego uruchomieniem. Powyższy kod robi to samo, co poprzedni, ale tym razem wyklucza kategorię 92 z naszej strony głównej. W związku z tym główne zapytanie zostało zmodyfikowane
Przyjrzyj się funkcjom is_home() i is_main_query() . Są po to, aby upewnić się, że zapytanie jest modyfikowane tylko na stronie głównej i jeśli jest to zapytanie główne.
Oto kolejny kod, który może być przydatny w pętli blogowej WordPress.
Załóżmy, że autor w Twojej witrynie splagiatował część (lub całość) swojej treści i chcesz trwale usunąć wszystkie jego posty lub do czasu rozwiązania problemu.
Można to zrobić dodając taki kod:
add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}
Dzięki tej funkcji warunkowej usuwasz post autora zarówno ze swojej witryny, jak i backendu. Wszystkie tagi warunkowe można znaleźć w Kodeksie WordPress. Oto jak powinien wyglądać ostatni kod na końcu:
add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}
Często zadawane pytania dotyczące pętli WordPress
Jaka w ogóle jest pętla WordPressa?
O rany, to mnie przywraca! Zatem w swej istocie pętla WordPress jest silnikiem WP, który wyświetla zawartość bazy danych w Twojej witrynie.
Jest sercem wielu szablonów WP i informuje system, które posty lub strony mają być wyświetlane i w jakiej kolejności. Pomyśl o tym jak o DJ-u na Twojej imprezie WordPress, wybierającym odpowiednie utwory (lub posty) dla Twoich gości.
Dlaczego pętla jest tak istotna w tworzeniu motywów?
Ach, rozwój motywu , zabawna łamigłówka za każdym razem! Pętla jest jak szkielet motywu WordPress. Bez tego Twój temat byłby niemym filmem bez fabuły.
Pobiera treść w oparciu o parametry WP_Query , a poprzez tagi szablonów możesz dostosować, co i jak treść jest wyświetlana. Słyszałeś kiedyś o motywach ze specjalnymi stylami dla niektórych postów? Tak, na tym polega magia pętli.
Jak WP_Query odnosi się do pętli?
Dobra, zanurz się tutaj ze mną. WP_Query to klasa, która definiuje i pobiera zawartość. Następnie pętla przechodzi przez wyniki zwrócone przez WP_Query.
Pomyśl o WP_Query jak o szefie kuchni, który przygotowuje dania, a pętla serwuje je Twoim gościom. A dzięki niestandardowym typom postów i taksonomiom ten szef kuchni może ugotować imponującą gamę dań!
Jaka jest różnica między have_posts() a the_post()?
Klasyczne pytanie! Have_posts() sprawdza, czy w zapytaniu pozostały posty do przeglądania. To jakby zapytać: „Hej, czy są jeszcze jakieś utwory na tej liście odtwarzania?”
W międzyczasie the_post() konfiguruje bieżący post, więc możesz wyświetlić jego szczegóły. Przypomina to włączenie odtwarzania następnego utworu. Obydwa są niezwykle istotne w tańcu pętli.
Jak mogę dostosować, które posty będą wyświetlane w pętli?
Ach, siła personalizacji! Aby zmienić wyświetlane posty, dostosuj parametry WP_Query lub użyj filtru pre_get_posts .
Niezależnie od tego, czy jest to pętla kategorii , pętla tagów , czy inne niestandardowe zapytanie , możesz zrobić wiele. Chcesz wyświetlać posty z określonej kategorii? A może posortować je według niestandardowego pola ? Świat jest twoją ostrygą!
Czy mogę mieć wiele pętli na jednej stronie?
Pewnie! Wiele pętli jest rozwiązaniem, zwłaszcza gdy chcesz mieć różne sekcje, takie jak główna lista artykułów, po której następuje pasek boczny z najnowszymi postami.
Wystarczy zresetować pętlę za pomocą wp_reset_postdata()
po każdym niestandardowym WP_Query . A dzięki szablonom jest jeszcze lepiej zorganizowany. Pamiętaj tylko, żeby nie przesadzić – nikt nie lubi zagraconego przyjęcia!
Czym są znaczniki warunkowe w kontekście pętli?
Zatem znaczniki warunkowe są strażnikami pętli. Pozwalają kontrolować, gdzie i kiedy wyświetlana jest określona treść.
Możesz ich użyć, aby wyświetlić fragment treści tylko w pojedynczych postach lub być może tylko w określonej taksonomii . Działają jak bramkarze w Twoim klubie WP i decydują, kto wejdzie do klubu na podstawie listy gości.
Jak dodać paginację do pętli?
Ach, paginacja, sztuka nie przytłaczać odwiedzających! Korzystając z funkcji paginacji , możesz podzielić swoje posty na wiele stron.
Zamiast wyświetlać niekończącą się listę postów, daj użytkownikom chwilę wytchnienia. Pomocne są tu funkcje takie jak paginate_links()
czy klasyczne linki „następny i poprzedni”. Bo bądźmy szczerzy, nikt nie chce przewijać w nieskończoność.
Dlaczego miałbym kiedykolwiek modyfikować główne zapytanie?
Dobry! Czasami ustawienia domyślne po prostu tego nie wystarczą. Być może chcesz, aby Twoja strona główna wyświetlała tylko określony niestandardowy typ postu lub wykluczała określone kategorie.
Używając akcji pre_get_posts , możesz modyfikować główne zapytanie bez konieczności pisania nowego. To jak dostosowywanie głównych ustawień zestawu stereo w celu uzyskania doskonałego dźwięku.
Co się stanie, jeśli wystąpi problem z moją pętlą?
Uf, byłem tam! Jeśli wystąpią problemy z pętlą, Twoja witryna może nie wyświetlać treści lub, co gorsza, wyświetlać błędy. Zawsze wykonaj kopię zapasową przed majsterkowaniem. Sprawdź parametry WP_Query i hierarchię szablonów .
A jeśli wszystko inne zawiedzie, Kodeks WordPress i fora społeczności są kopalnią złota do rozwiązywania problemów. Pamiętaj, że każdy programista przynajmniej raz napotyka pętlę usterek. Masz to!
Kończąc przemyślenia na temat pętli WordPress
Korzystanie z pętli WordPress to świetny sposób na dostosowywanie swoich postów, stron lub po prostu – witryny internetowej. Pętla wymaga podstawowej wiedzy na temat działania WordPressa i logiki kodu.
Jeśli nie chcesz przeprowadzić szybkiego testu, nie zalecamy używania funkcji query_posts(). Możesz użyć różnych hooków na wypadek konieczności modyfikacji pierwotnego zapytania. Zawsze zachowaj ostrożność podczas zmiany kodu pętli WordPress.
Mamy nadzieję, że ten artykuł był dobrym pierwszym krokiem w kierunku opanowania pętli WordPress!
Jeśli podobał Ci się ten artykuł o pętli WordPress, powinieneś przeczytać także te:
- Błąd 504 w WordPressie: jak to naprawić
- 12 wskazówek, jak stworzyć udaną wtyczkę lub motyw WordPress Premium
- Jak wykorzystać buforowanie przeglądarki w WordPress? Kroki do naśladowania