Jak zorganizować posty WordPress w dowolnej kolejności

Czy kiedykolwiek próbowałeś zmienić standardową kolejność postów na stronie bloga swojej witryny? Domyślnie posty są uporządkowane na podstawie daty opublikowania każdego postu i nie ma wbudowanego sposobu na zmianę kolejności wyświetlania postów.

Jeśli chcesz zmienić kolejność postów, masz trzy opcje: Zmień datę publikacji postów, napisz kod do sortowania postów za pomocą parametru innego niż data publikacji lub znajdź wtyczkę, która wykona za ciebie zadanie.

Zmiana daty publikacji nie jest realną opcją dla wielu blogów. W tym artykule przyjrzymy się drugim i trzecim opcjom na liście. Najpierw pokażę Ci, jak zbudować niestandardową wtyczkę do realizacji niestandardowego zamówienia pocztowego. Po drugie, przyjrzymy się dwóm wtyczkom dostępnym w katalogu wtyczek WordPress, które można wykorzystać do utworzenia niestandardowego zamówienia pocztowego.

Wymagana Wiedza

Ten post zakłada pewien poziom wiedzy programistycznej WordPress. Jeśli nigdy wcześniej nie stworzyłeś prostej wtyczki lub szablonu strony, będziesz miał trudności z podążaniem za tym. Jeśli masz trudności z podążaniem za nimi, poniższe posty pomogą Ci dowiedzieć się, co musisz wiedzieć, aby zrozumieć materiał z tego samouczka:

Jeśli nie jesteś zainteresowany budowaniem niestandardowej wtyczki, możesz przejść do listy wtyczek dostępnych w katalogu wtyczek WordPress, które znacznie ułatwiają ten proces.

Ponadto wyciągnąłem cały kod z tego samouczka do repozytorium GitHub. Jeśli chcesz zobaczyć, jak powinien wyglądać gotowy produkt, możesz wyświetlić i pobrać cały kod z GitHub.

Zbuduj Własną Niestandardową Wtyczkę Zamówienia Pocztowego

Istnieją dwa główne kroki do wykonania niestandardowego zamówienia pocztowego:

  1. Dodaj niestandardowe pole do postów, które może być używane jako podstawa do sortowania postów.
  2. Zaimplementuj niestandardową kolejność sortowania, modyfikując główną pętlę WordPress lub budując niestandardową pętlę i dodając ją do widżetu paska bocznego lub niestandardowego szablonu strony.

Zacznijmy od dodania niestandardowego pola do ekranu edycji postów WordPress. Zanim jednak to zrobisz, musisz uruchomić środowisko programistyczne WordPress, utworzyć nowy folder wtyczek i utworzyć plik wtyczki w tym folderze. Jeśli chcesz zobaczyć jak wygląda struktura mojej wtyczki, możesz zobaczyć gotowy produkt na GitHub.

Skonfiguruj Pole niestandardowe

Chociaż możesz po prostu użyć niestandardowego pola meta na ekranie edycji postu, aby dodać niestandardowe dane meta do każdego postu, wolę dodać niestandardowe pole meta i pole bezpośrednio do zaplecza. W ten sposób nie można przypadkowo przypisać metadanych do niewłaściwego pola.

Pierwszym krokiem w dodaniu niestandardowego pola meta do zaplecza jest utworzenie pola meta i dodanie go do ekranu edycji postu.

Ten kawałek kodu, dodany do pliku wtyczki utworzy niestandardowe pole meta.

Zauważysz, że funkcja zwrotna w powyższym bitie kodu to ‘jpen_custom_post_order’. Stwórzmy tę funkcję dalej i dodajmy ją do naszego pliku wtyczki. Spowoduje to dodanie pola do utworzonego właśnie pola meta.

Ten bit kodu zaczyna się od ustawienia nonce. Następnie kod tworzy zmienną o nazwie $current_pos i przypisuje do tej zmiennej wartość bieżącego porządku sortowania postów. Następnie dwa elementy akapitowe tworzą widoczną zawartość pola meta box, a bieżąca wartość jest wyświetlana w polu, jeśli bieżąca wartość istnieje. Oto co Bwół będzie wyglądał jak:

screenshot of custom sort order box on post edit screen

Na koniec musimy przechowywać dane wejściowe użytkownika w bazie danych. Możemy to zrobić, dodając ten bit kodu do naszej wtyczki:

Ten kod najpierw sprawdza, czy nonce został ustawiony i czy użytkownik ma uprawnienia do wprowadzania zmian w poście. Jeśli wszystko się sprawdzi, metadane post są aktualizowane o nową niestandardową wartość zamówienia post.

Wyświetl Pole niestandardowe w Panelu Administracyjnym

W ostatniej sekcji dodaliśmy niestandardowe pole meta do ekranu edycji postu i zaprogramowaliśmy go tak, aby przechowywał wartość liczbową. Nieco później użyjemy tej wartości liczbowej do utworzenia niestandardowego zamówienia pocztowego. Zanim jednak do tego dojdziemy, mamy inny problem do rozwiązania.

W obecnej sytuacji, aby zobaczyć aktualną wartość kolejności sortowania postów, musimy otworzyć każdy post i spojrzeć na niestandardowe pole meta, które właśnie dodaliśmy do ekranu edycji postu. To niezbyt wygodne. Dodajmy niestandardową wartość sortowania do listy postów administratora, abyśmy mogli szybko zobaczyć bieżącą wartość zamówienia postu przypisaną do każdego postu.

Najpierw musimy dodać niestandardową kolumnę do listy postów w obszarze administratora. Możemy to zrobić, dodając ten bit kodu do naszej wtyczki:

Następnie musimy wyciągnąć niestandardową wartość zamówienia post dla każdego postu i wymienić ją w nowej kolumnie. To nie jest zbyt trudne i możemy to zrobić, dodając tę funkcję do naszego pliku wtyczki:

Świetnie. Teraz, kiedy odwiedzamy listę postów na blogu w panelu administracyjnym, możemy łatwo zobaczyć, które posty zostały przypisane do niestandardowej wartości kolejności sortowania.

Oto jak wygląda sytuacja, gdy przeglądamy listę postów na blogu w obszarze administracyjnym:

list of posts with position added

Umieść niestandardowe zamówienie pocztowe w dobrym użyciu

Teraz, gdy umożliwiliśmy przypisanie niestandardowego zamówienia do postów, nadszedł czas, aby dobrze wykorzystać to niestandardowe zamówienie. Zanim jednak będziemy mogli to zrobić, musimy odpowiedzieć na to pytanie: “jak chcemy korzystać z niestandardowej kolejności sortowania?”

Istnieje kilka różnych sposobów implementacji sortowania niestandardowego. Oto kilka pomysłów:

  • Posortuj wszystkie swoje posty w niestandardową kolejność i wyświetl niestandardową posortowaną listę na stronie postów na blogu. Prawdopodobnie nie chciałbyś tego robić na ruchliwym blogu, ale jeśli używasz WordPressa do hostowania serii postów instruktażowych i nie dodajesz często nowych postów, może to być cenny sposób sortowania postów w dowolnej kolejności.
  • Utwórz wyselekcjonowaną listę postów i wyświetl je w wybranej kolejności za pomocą niestandardowego szablonu strony. Na przykład możesz ustawić listę tak, aby zawierała tylko posty, które również należą do określonej kategorii, a następnie posortować je w dowolnej kolejności.
  • Utwórz listę postów na blogu, która zaczyna się od kilku niestandardowych posortowanych postów, a następnie zawiera wszystkie pozostałe posty w standardowej kolejności.

Naprawdę, niebo jest granicą. Jeśli możesz wymyślić zastosowanie Dla Niestandardowej kolejności sortowania i dowiedzieć się, jak wdrożyć swój pomysł, to jest to realny pomysł. Przejdźmy szybko przez trzy powyższe pomysły, abyś mógł zobaczyć, jak każdy z nich zostanie zrealizowany.

Zastąp posty na stronie bloga niestandardową listą posortowaną

Najprostszym sposobem użycia niestandardowej kolejności sortowania jest zastąpienie standardowej listy postów na strona bloga Twojej witryny z niestandardową posortowaną listą postów. Aby to zrobić, wszystko, co musisz zrobić, to upuścić następującą funkcję do wtyczki:

Należy pamiętać, że ta funkcja będzie wyświetlać tylko posty, którym przypisano niestandardową wartość kolejności sortowania. Wszelkie posty, którym nie przypisano niestandardowej wartości kolejności sortowania, nie będą wyświetlane na stronie bloga. Innymi słowy, jeśli to zrobisz, będziesz musiał przypisać niestandardową wartość kolejności sortowania do każdego postu, który chcesz wyświetlić.

Utwórz wyselekcjonowaną listę niestandardowych posortowanych postów

Utworzenie wyselekcjonowanej listy niestandardowych posortowanych postów będzie wymagało użycia klasy WP_Query. To, co musisz zrobić, to utworzyć zapytanie, które zawiera parametr, którego chcesz użyć do utworzenia listy, a następnie dodać niestandardową kolejność sortowania do zapytania. Oto jak to może wyglądać:

W tym zapytaniu najpierw wyszukamy posty należące do kategorii o ID 94. Następnie wybierze tylko te posty, którym przypisano niestandardową wartość zamówienia pocztowego. Na koniec posortuje posty według niestandardowej wartości zamówienia pocztowego.

To zapytanie można wrzucić do niestandardowego szablonu strony lub dodać do niestandardowego widżetu paska bocznego, aby wyświetlić zapytane posty.

Dodaj posortowane posty na górze listy postów na blogu

Inną opcją byłoby dodanie niestandardowych posortowanych postów na górze listy postów na blogu, a następnie śledzenie niestandardowych posortowanych postów z resztą postów na blogu posortowanych w zwykły sposób. Jest to nieco skomplikowane i wymaga utworzenia dwóch niestandardowych zapytań przy użyciu klasy WP_Query.

Pierwsze zapytanie otrzyma niestandardowe posortowane posty i wyświetli je zgodnie z ich niestandardową wartością zamówienia. Chcemy jednak, aby lista niestandardowych posortowanych postów pojawiła się na pierwszej stronie bloga, więc będziemy musieli zawinąć całe pierwsze zapytanie w instrukcję if, która sprawdza, czy jesteśmy na pierwszej stronie postów na blogu.

Drugie zapytanie pobierze wszystkie posty i posortuje je w zwykły sposób, ale pominie wszystkie posty, którym przypisano niestandardową wartość kolejności sortowania. Ponadto, aby umożliwić stronicowanie postów pobranych przez drugie zapytanie, będziemy musieli wykonać pewne sztuczki z globalną zmienną $ wp_query .

Oto jeden ze sposobów, w jaki możemy połączyć dwa zapytania, aby uzyskać pożądany rezultat:

Możesz użyć tego zestawu zapytań, aby zastąpić standardowe zapytanie na stronie bloga w trzech krokach:

  1. Utwórz do domu.php plik jako kopia motywu nadrzędnego indeks.php.
  2. Upuść te zapytania, aby zastąpić pętlę zawartości.
  3. Wgraj nowy do domu.php do katalogu głównego motywu dziecka.

Wykonaj te kroki, a gdy strona bloga zostanie wyświetlona, nowa do domu.php będzie używany jako szablon strony.

Wtyczki do wykonania zadania

Jeśli nie jesteś programistą lub nie potrzebujesz elastyczności niestandardowego rozwiązania, istnieje kilka wtyczek dostępnych w katalogu wtyczek WordPress, które ułatwiają sortowanie postów. Jednak wiele z dostępnych opcji jest słabo wspieranych i nieregularnie aktualizowanych. Spójrzmy na dwie opcje, które są aktywnie wspierane przez ich programistów i otrzymują częste aktualizacje.

  • screenshot of post types order plugin from wp.org

    Zlecenia typu Post jest aktywny na ponad 400.000 witryn, regularnie aktualizowane, and deweloper jest aktywny w rozwiązywaniu wniosków o wsparcie opublikowane w katalogu wtyczek WordPress. Wszystko to oznacza, że wtyczka zdołała utrzymać ocenę 4.6 z Gwiazdek 5 na sile ponad 150 recenzji użytkowników.

    Wtyczka może być używana do tworzenia niestandardowego rodzaju postów i niestandardowych typów postów. Aby skorzystać z wtyczki, zainstaluj ją i aktywuj, a następnie odwiedź stronę Ustawienia, którą można znaleźć w Ustawienia > kolejność typów postów. Następnie odwiedź listę administratorów postów, które chcesz posortować,i po prostu przeciągnij i upuść posty w kolejności, w jakiej chcesz je wyświetlić na stronie front end. Następnym razem, gdy odwiedzisz dowolną listę postów w interfejsie witryny, zobaczysz, że kolejność postów została zaktualizowana, aby pasowała do kolejności na liście administratora.

  • screenshot of order your posts manually plugin from wp.org

    Zamów swoje posty ręcznie jest aktywny na mniej niż stronach internetowych 1,000 WordPress. Jednak ma solidną ocenę użytkowników 4.6 z Gwiazdek 5, a deweloper pracuje nad rozwiązaniem każdego wniosku o wsparcie zamieszczonego w katalogu wtyczek WordPress. Razem wzięte, to sprawia, że wtyczka warta rozważenia.

    Aby skorzystać z wtyczki, zainstaluj ją, Aktywuj, a następnie przejdź do Ustawienia > Zamów swoje posty ręcznie. Skonfiguruj kilka opcji i kliknij Zamów moje posty. Kliknięcie tego przycisku przeniesie Cię do Narzędzia > Zamów Post ręcznie i wygeneruj listę wszystkich swoich postów. Po prostu przeciągnij i upuść swoje posty w kolejności, w której chcesz je wyświetlić, i kliknij Zapisz zmiany.

Wniosek

Jeśli chcesz wyświetlać posty w określonej kolejności, masz kilka różnych opcji. Najbardziej elastyczną opcją jest zbudowanie własnej wtyczki, a następnie ręczne wdrożenie niestandardowego sortowania. Jeśli jednak opracowanie niestandardowego rozwiązania nie jest możliwe, możesz wykonać zadanie za pomocą łatwej w użyciu wtyczki z katalogu WordPress.

Tagi: