✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Samouczek motywu WordPress dla początkujących – część 4: Pętla postu

49

W tej lekcji samouczka motywu WordPress dla początkujących omówimy szczegółowo „pętlę postów" w WordPress; co to jest, jak wygląda, dlaczego jej używamy i jak uzyskać dostęp do postów. Następnie zajmiemy się implementacją pętla w naszym motywie.

Pętla postu

Jeśli znasz PHP, możesz rozpoznać, że „pętla” to technika przechodzenia przez każdy element tablicy lub obiektu za pomocą forlub. Pętla w WordPressie działa właśnie tak. Ale użyjemy własnych funkcji WordPressa do zapętlenia, aby uzyskać dodatkowe korzyści i uproszczenia.foreach``while

Przez cały czas WordPress już pytał o posty – w zależności od tego, na której stronie się znajdujesz. Jeśli jesteś na stronie kategorii, WordPress sprawdził już wszystkie posty związane z tą kategorią, a jeśli jesteś na stronie z jednym postem, WordPress już pobrał dla Ciebie ten jeden post.

Kiedy chcemy uzyskać dostęp do postów, które WordPress pytał w naszych szablonach, dodajemy pętlę. Wewnątrz pętli mamy dostęp do każdego posta. A dla każdego posta decydujemy, co pokazać lub zrobić.

Uwaga: Nawet w szablonach pojedynczego posta lub pojedynczej strony dodasz pętlę, mimo że wiemy, że zawiera tylko jeden post! Pętla po prostu działa tylko raz.

Oto pętla WordPressa w całej okazałości:

while (have_posts()): the_post();
    // Access to each post here
endwhile;

Ten fragment kodu robi dwie rzeczy. Część while(w tym endwhile) to część zapętlona, ​​która będzie się zapętlać bez względu na to, jak długo pozostaną jakiekolwiek posty. Druga część to ustawienie the_post()uproszczonego i intuicyjnego dostępu do obiektu postu wewnątrz pętli. Więcej o tym dowiemy się później.

Dobrą praktyką jest zawijanie pętli wewnątrz ifsprawdzania, które sprawdza, czy rzeczywiście są jakieś posty, przez które można przejść. Wtedy możemy również opcjonalnie pokazać komunikat, jeśli ich nie było. Zapytanie o post może być puste, jeśli przejdziesz do pustego archiwum kategorii lub spróbujesz wyszukać coś, co nie ma trafień. To jest lepsza wersja pętli:

if (have_posts()) {
    while (have_posts()): the_post();
        // Access to each post here
    endwhile;
} else {
    ?><p>No posts, sorry.</p><?php
}

Zapoznaj się z tym fragmentem kodu, ponieważ będziesz go powtarzać za każdym razem, gdy będziesz chciał uzyskać dostęp do postów! Zaimplementujmy pętlę w naszym motywie.

Implementacja pętli w naszym motywie

Dodajmy pętlę do naszego index.php, zastępując fikcyjny tekst.

<?php get_header(); ?>
<?php 
if (have_posts()) {
    while (have_posts()): the_post();
        the_title();
    endwhile;
} else {
    ?><p>No posts, sorry.</p><?php
}
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Dodałem funkcję wywoływaną the_title()wewnątrz pętli, która odzwierciedla tytuł posta. To tylko po to, żeby zobaczyć pętlę w praktyce. Nie martw się, w następnym kroku dowiemy się wszystkiego o dostępie do wszystkich aktualnych informacji o wpisie.

Zobaczmy teraz, co dzieje się w WordPressie. Odśwież stronę główną. W zależności od ustawień i zawartości powinieneś zobaczyć niektóre tytuły. W moim WordPressie mam domyślny post „Witaj świecie!” oraz kolejny wpis, który utworzyłem zatytułowany „To kolejny post”. Oto, co dostaję na pierwszej stronie:

Samouczek motywu WordPress dla początkujących – część 4: Pętla postu

Jeśli spróbujesz odwiedzić stronę z pojedynczym postem, powinieneś zobaczyć tylko jeden tytuł, tytuł oglądanego posta. Miły!

Dla ciekawskich…

Jeśli jesteś ciekawy, przez co przechodzi pętla i jakie parametry WordPress używał do tego zapytania, możesz to sprawdzić. Zmienna globalna, do której odwołuje się pętla, nazywa się $wp_query. Musisz zdefiniować go globalnie, aby uzyskać do niego dostęp. Spróbuj użyć var_dump(), aby wydrukować jego pełną zawartość. Pętla przechodzi przez $wp_query->postswłaściwość.

global $wp_query;
var_dump($wp_query);

Dodajmy jeden ważny szczegół do naszej pętli w index.php; sposób, w jaki użytkownik może przejść do następnej i poprzedniej strony postów.

Dodawanie nawigacji po pętli

Pamiętaj, że pętla pobierze liczbę postów zdefiniowaną w ustawieniach WordPressa > Czytanie, za każdym razem, gdy znajdziesz się na stronie, która pokazuje wiele postów. Jeśli w pętli dostępnych jest więcej postów niż zdefiniowana tutaj liczba, potrzebujemy sposobu na poruszanie się między stronami. Do tego możemy użyć funkcji the_posts_pagination().

Ta funkcja akceptuje pewne parametry w celu dostosowania swoich danych wyjściowych. Możesz zdefiniować liczbę stron między elipsami (gdy stron jest dużo). Możesz również określić, jakie teksty powinny mieć linki „Poprzednia” i „Następna” strony. Dodam go bez żadnych parametrów, aby wykonać ustawienia domyślne, ale możesz to dostosować, jeśli chcesz.

...
    while (have_posts()): the_post();
        the_title();
    endwhile;
    the_posts_pagination();
} else {
...

Ta funkcja nie generuje absolutnie nic, jeśli liczba postów na stronie jest mniejsza lub równa. Więc nie martw się, jeśli uważasz, że się pomyliłeś, ponieważ nie widzisz żadnych danych wyjściowych. Gdy na stronie jest więcej postów niż postów, ta funkcja wyświetla div, nagłówek do czytników ekranu (które zwykle ukrywasz za pomocą CSS) i pewną liczbę linków do stronicowania.

Teraz, gdy wiemy, jak uzyskać dostęp do każdego posta, który znalazł dla nas WordPress, następnym krokiem jest nauczenie się, jak pokazać, czego chcemy od każdego postu; wewnątrz pętli.

Dokumentacja dotycząca zastosowanych metod

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów