WordPress

Sortowanie wpisów w WordPress

Mężczyzna pracujący na laptopie
(Mężczyzna pracujący na laptopie : envato, bernardbodo)

Zmiana kolejności publikowania wpisów na platformie WordPress może być wykonana na wiele sposobów. Niestandardowe sortowanie artykułów, nie po dacie publikacji, możemy potrzebować z wielu powodów. Przykładowo możemy chcieć, żeby wpisy układały się po dacie modyfikacji, bo bardzo często aktualizujemy stare artykuły i chcemy, aby czytelnicy ponownie na nie trafili. Możemy też chcieć ukryć na indeksach niektóre kategorie, albo wpisu z wybranymi tagami, czy nawet słowami kluczowymi w tytułach, to już bardziej filtrowanie wpisów, ale da się wykonać za pomocą tych samych koncepcji co sortowanie wpisów. 

Na początku pokażę Ci jak wykonać sortowanie wpisów za  pomocą programowania w szablonie. Poniżej polecę, dla osób będących z kodem na bakier, kilka wtyczek, które pomogą osiągnąć podobne rezultaty.

Chcąc zmienić sortowanie wszystkich indeksów naszego WordPressa najlepiej wpiąć się bocznymi drzwiami do main_query WordPressa, za pomocą akcji 'pre_get_posts' i zmodyfikować co potrzebujemy. 

WordPress ma napisany bardzo sprytny i bardzo złożony interfejs do zapytań o posty w bazie danych, gdzie możemy wpisu sortować, filtrować i wyciągać co nam się podoba, w skrajnych przypadkach zapytać o wpisy za pomocą czystego SQL, które przekazujemy za pomocą interfejsu query.

Akcja 'pre_get_posts' pozwala nam wpiąć się do miejsca, gdzie budowane jest zapytanie SQL, jeszcze przed wykonaniem requestu do bazy i zmodyfikować go według naszych potrzeb. 

Musisz pamiętac, ze pre_get_posts jest wywoływany we wszystkich zapytaniach o wpisy i jeśli chcesz posortować tylko konkretne indeksy(działy, taxonomie, tagi, widgety) to musisz użyć tagów warunkowych. Warto również wykluczyć sotrtowanie w panelu admina !is_admin(). Dzięki natywnym tagą warunkowym WordPress możlwiości logiki masz wiele. Jeżeli nie znasz jeszcze tagów warunkowych, to odsyłam Cię do podlinkowanego źródła, ale też prosto zrozuieć ich działanie na podstawie tagu is_front_page(), które sprawdza czy aktualnie otwarta jest strona głowna, tak samo is_admin(), czy aktualnie jesteśmy w panelu itd. 

Przykładowy kod sortujący wpisy w WordPress

function customPostOrderby( $query ) {if ( ( $query->is_main_query() && !is_admin() ) &&  $query->is_feed()  ) {        $query->set( 'orderby', 'post_modified' );    }}add_action( 'pre_get_posts', ‘customPostOrderby’ );

Powyższa akcja wpina się w 'pre_get_posts', sprawdza czy modifikujemy główne query, czyli is_main_query, nie pozwala na zmianę w panelu admina !is_admin() oraz wpina się tylko przy wywołaniu indeksu RSS, kótry złapiemy tagiem warunkowym  is_feed().

Cały feed RSS sortujemy na koniec według nowego sposobu, akurat tutaj przyładowo po dacie modyfikacji postu 'orderby', 'post_modified'.

Jak szybko zmienić kolejność wpisów i stron w WordPress bez programowania?

Zainstaluj wtyczkę Simple Custom Post Order


Czy ten artykuł był Ci pomocny? Jesteśmy doświadczoną agencją SEO, skontakuj się z nami, jeśli potrzebujesz pomocy ze swoją stroną.

Spotkajmy się też w moich social media :
Zobacz moje wszystkie artykuły
Zaufali nam:
ElbudBis
Instytu cyfrowego obywatelstwa
Kinesso
Fundacja Orange
Rodzice.pl

Współpracuj z nami!

Naszą mocą jest technologia i doświadczony zespół

Przez lata zdobywaliśmy doświadczenie u największych wydawców w Polsce, a teraz zadbamy o rozwój Twojej firmy od strategii wzrostu po wdrożenia na stronach dzięki naszemu własnemu software house'owi. Zaufaj nam, aby osiągać dobre wyniki.

Porozmawiajmy o Twoich celach i potrzebach!

Przejrzyj najnowsze artykuły i wpisy na naszym blogu