Możliwość edycji pętli WordPress daje dużą kontrolę nad projektem i treścią witryny WordPress.

Często tworzę niestandardowe pętle, czasami edytując standardową pętlę, a czasami używając WP_Query aby utworzyć zupełnie nowe pętle.

Ale w niektórych przypadkach chcę pójść dalej. Chcę wyświetlić pierwszy post w mojej pętli inaczej niż kolejne posty. Może to być poprzez dodanie niestandardowej stylizacji lub może to być spowodowane tym, że chcę wyświetlić inną zawartość.

Na przykład mogę wyświetlić zawartość postu dla pierwszego postu, ale tylko fragment dla kolejnych postów. Mogę też użyć wyróżnionego obrazu o innej wielkości lub zastosować różne klasy CSS do pierwszego postu.

W ten sposób możesz wyróżnić swój ostatni post, zwracając na niego uwagę i zachęcając odwiedzających do przeczytania go lub kliknięcia. Może również poprawić układ witryny, zrywając rzeczy i tworząc bardziej zróżnicowany projekt.

W tym poście pokażę Ci, jak korzystać z WP_Query Klasa do tego. Pokażę Ci, jak skonfigurować niestandardowe zapytanie dla wszystkich postów za pomocą WP_Query a potem pokażę Ci, jak utworzyć drugie zapytanie, które dotyczy tylko pierwszego postu.

W opracowanym przykładzie pokażę Ci, jak to zrobić na niestandardowym szablonie strony, używając WP_Query aby uruchomić dwa oddzielne zapytania. A potem pokażę Ci jak zastosować tę technikę do Standardowej pętli, edytując standardowy szablon archiwum i używając pre_get_posts do zmiany standardowej pętli.

Uwaga: Jeśli nie znasz WP_Query i jego niesamowitą moc, a następnie sprawdź nasz dogłębny Przewodnik po zdobywaniu WP_Query.

Czego potrzebujesz

Aby śledzić ten post, potrzebujesz kilku rzeczy:

  • Instalacja rozwojowa WordPress – nie próbuj tego na swojej stronie NA ŻYWO, dopóki nie zaczniesz działać!
  • Edytor kodu

Pierwsze kroki: Tworzenie zapytania

Moja osobista strona ma niestandardowy szablon strony dla mojej strony „książki”. Ta strona wyświetla zawartość dodaną do strony „książki”, a następnie uruchamia pętlę, aby wyświetlić wszystkie moje książki. Odbywa się to za pomocą niestandardowego typu post.

Twoja pętla może być bardzo inna-możesz używać zwykłych postów, może to być plik szablonu archiwum, plik szablonu dla niestandardowego typu postu lub cokolwiek, nad czym nie chcesz pracować. Nie musisz więc pracować z niestandardowym szablonem strony, aby użyć tej techniki. Jeśli skupisz się tylko na samej pętli, to pokaże Ci, jak działa technika i możesz zastosować ją do własnej witryny.

Oto moja strona z jedną pętlą wyprowadzającą wszystkie moje książki w siatce 2x 2:

Book page running one loop

Użyłem jakiegoś obiektowego CSS, który jest w moim motywie, aby utworzyć siatkę 2×2 wyświetlającą każdą z moich książek. W pętli mam tytuł, fragment i polecany obraz.

Oto pętla, która działa dla wszystkich moich postów:

Ładowanie gist 30718a0ddb43635c2879db6c1b6f50fd

Zobaczysz, że moja pętla ma tylko jeden argument: Typ posta. Wyświetla wszystkie posty tego typu, najnowsze pierwsze.

Ale to, co chcemy zrobić, to wyświetlić pierwszy post inaczej. Zróbmy to.

Tworzenie osobnej pętli dla pierwszego posta

Aby wyświetlić pierwszy post w inny sposób, musimy utworzyć osobną pętlę, która po prostu uruchamia ten post.

Aby to zrobić, potrzebujesz dwóch argumentów: jednego dla typu postu i jednego dla liczby postów, która jest posts_per_page kłótnia. Ustaw to na 1.

Zacznij od powielenia oryginalnej pętli, aby mieć dwie pętle w pliku szablonu, obie za pomocą WP_Query. Teraz edytuj argumenty dla pierwszego tak, aby brzmiały następująco:

Ładowanie gist 30718a0ddb43635c2879db6c1b6f50fd

To pobierze tylko najnowszy post. Ale nie ma sensu tego robić, chyba że chcesz coś zmienić w pierwszej pętli.

Chcę wydrukować fragment oraz treść. Chcę również dodać trochę stylizacji dla układu, aby wyróżniony obraz i fragment pojawił się nad treścią.

Oto nowa wersja części pętli, która wyświetla sam post, tylko dla pierwszego postu:

Ładowanie gist 30718a0ddb43635c2879db6c1b6f50fd

Zobaczysz, że jest tam dodatkowy kod dla zawartości, i że dodałem dodatkowe załączenie div elementy do stylizacji układu-ponownie wykorzystuje to stylizację, która jest już obecna w moim motywie.

Oto pierwszy post na mojej stronie:

the first post with content as well as the excerpt

Wygląda dobrze. Być może zauważyłeś, że usunąłem również link do odkrywania książki (ponieważ cała treść jest tutaj na głównej stronie książek), a zamiast tego jest przycisk do zakupu książki, który jest pobierany z treści postu.

Zmiana pętli dla kolejnych postów

Ale jest problem.

Oto zrzut ekranu pokazujący pierwszy post i posty po nim:

page with first post duplicated

Pierwszy post jest obecnie powielany. Jest pobierany przez pętlę, która była tam pierwotnie, a także jest pobierany przez nową pętlę tylko dla pierwszego postu.

Jest to naprawione przez dodanie dodatkowego argumentu do drugiej pętli – the offset kłótnia. To mówi WordPress, aby pominąć określoną liczbę postów przed pobraniem postów do wyjścia. Ponieważ wyświetliliśmy jeden post w pierwszej pętli trasy, musimy go zrównoważyć.

Uwaga: Jeśli kiedykolwiek używasz tej techniki, posts_per_page argument za pierwszą pętlą i offset argument dla drugiej pętli powinien być taki sam, nie zawsze może to być 1.

W drugiej pętli Zmień argumenty, aby wyglądały tak:

Ładowanie gist 30718a0ddb43635c2879db6c1b6f50fd

Teraz, gdy odświeżysz stronę, zobaczysz, że pierwszy post nie jest duplikowany:

each post is displayed once and the first post is different

Tak lepiej! To koniec. Utworzono niestandardową stronę z dwiema pętlami, z których jedna wyświetla dodatkową zawartość dla ostatniego postu.

Zastosowanie tej techniki do Standardowej pętli

Ale co, jeśli na twojej stronie działa standardowa pętla? W takim przypadku możesz edytować plik szablonu, na którym działa ta strona, dodając tylko jedno dodatkowe zapytanie za pomocą WP_Query. Nie musisz pisać dwóch nowych zapytań.

Istnieją dwa etapy tej techniki:

  1. Dodaj dodatkowe zapytanie do pliku szablonu, używając WP_Query.
  2. W pliku funkcji motywu użyj pre_get_posts aby zmienić standardową pętlę w tym typie archiwum, aby pominąć pierwszy post.

Dodawanie dodatkowego zapytania

Najpierw otwórz plik szablonu, który chcesz edytować. Będzie to dowolny plik szablonu archiwum. W moim przypadku, gdybym używał standardowego pliku szablonu do wyprowadzania mojego niestandardowego typu postu, plik zostanie wywołany archiwum-rmcc_book.php.

Przed pętlą główną dodaj dodatkową pętlę za pomocą WP_Query. Zrobisz to w podobny sposób jak w powyższej metodzie, kopiując i edytując zawartość pętli głównej, ale umieszczając ją w zapytaniu zasilanym przez WP_Query. Nie zapominaj, że nadal potrzebujesz post_type argument pomimo faktu, że jesteś w szablonie archiwum dla tego typu postu.

Zapisz plik szablonu,a twój pierwszy post pojawi się dwa razy, tak jak w moim przykładzie.

Pomijanie pierwszego postu w głównym zapytaniu

Nie można bezpośrednio edytować argumentów głównego zapytania w pliku archiwum. Zamiast tego musisz użyć pre_get_posts hak do tego. Otwórz swój funkcje.php plik (lub utwórz go, jeśli jeszcze go nie masz) i dodaj coś takiego:

Ładowanie gist 30718a0ddb43635c2879db6c1b6f50fd

Zobaczysz tutaj, że używane są trzy tagi warunkowe: jeden do sprawdzenia, czy nie jesteśmy na ekranach administratora, drugi do sprawdzenia, czy jest to główne zapytanie uruchomione i trzeci do sprawdzenia, czy jesteśmy na stronie Archiwum dla tego typu postu. Tag warunkowy, którego używasz dla swojego typu postu (lub kategorii lub czegokolwiek innego), można znaleźć w Kodeksie WordPress.

Zapisz swój plik funkcji, a przekonasz się, że pierwszy post jest wyprowadzany za pomocą niestandardowej pętli, a następnie kolejne posty są wyprowadzane za pośrednictwem standardowej pętli.

Uwaga: ta metoda może czasami przerwać paginację. Jeśli tak się stanie, postępuj zgodnie z poniższymi wskazówkami.

WP_Query Pozwala Wyróżnić Najnowszy Post

Korzystając z tej techniki, możesz użyć WP_Query klasy, aby wyświetlić dodatkową zawartość do ostatniego postu, lub stylizować go inaczej. Jak widać na moim przykładzie, użyłem go, aby moja najnowsza Książka wyróżniała się na tle innych.

Można to zastosować do pętli utworzonej przy użyciu WP_Query Klasa do do Standardowej pętli w pliku szablonu motywu-w zależności od tego, którego używasz. Gdy to zrobisz, twój najnowszy post będzie się wyróżniał i przyciągał uwagę czytelników.

Jak wykorzystać tę technikę na własnej stronie internetowej? Podziel się swoimi przemyśleniami w komentarzach poniżej.
You May Also Like

Jak naprawić nieprawidłowy błąd JSON w WordPress (Przewodnik dla początkujących)

W artykule: Co powoduje błąd „nieprawidłowa odpowiedź JSON” w WordPress?1. Sprawdź adresy…

Jak zmienić kolor linku w WordPress (poradnik dla początkujących)

W artykule: Dlaczego Linki Są Ważne?Jak dodawać linki w postach i stronach…

Jak naprawić błąd krytyczny w WordPress (krok po kroku)

W artykule: Co To jest błąd krytyczny w WordPress?Co powoduje krytyczny błąd…

Jak zainstalować WordPress lokalnie na komputerze Mac za pomocą MAMP

W artykule: Jak zainstalować MAMP na komputerze MacInstalacja WordPress na komputerze MacWypróbowanie…