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

Sortuj posty WordPress według daty

13

TL; DR: Jeśli szukasz łatwego sposobu sortowania postów WordPress według daty (malejąco lub rosnąco) w obszarze administracyjnym bez konieczności klikania przez użytkowników nagłówka kolumny Data, możesz to zrobić za pomocą pre_get_postsfiltra który zawiera odwołanie do instancji WP_Querydziałającej na stronie.

Aby zapoznać się z przykładami w kodzie, jak to zrobić, sprawdź resztę artykułu.

Sortuj posty WordPress

Ten artykuł jest napisany w taki sposób, że zakłada twoją konfigurację w oparciu o klasę. Oznacza to, że konfiguracja filtra jest zdefiniowana w funkcji takiej jak initi wywołuje publicnazwę funkcji w klasie, taką jak sort_articles_by_recent_time.

Na koniec definiuje priorytet 10i określa, że ​​funkcja będzie akceptować pojedyncze argumenty (co jest instancją WP_Query.

Najpierw dodaj następujący filtr:

add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );

Następnie dodaj następującą funkcję:

Oto jak to działa:

  1. Zwróć uwagę na pierwsze warunkowe sprawdzenia, jeśli nie jesteśmy w obszarze administracyjnym lub jeśli nie ma nas na edit.phpstronie (która jest stroną z listą postów), po prostu opuszczamy funkcjonalność. To jest klauzula ochronna lub wczesny powrót.
  2. Jeśli spełnimy oba te kryteria, zaktualizujemy zapytanie tak, aby wysyłało posty według daty w porządku malejącym. Oznacza to, że najnowsze daty będą zawsze wyświetlane na górze.

Nie uwzględnia to statusu posta (więc jeśli jest to draftpost lub post ze publishstatusem, nie ma to znaczenia). Ponadto uniemożliwi to użytkownikom klikanie nagłówka kolumny Data w celu posortowania wyników w razie potrzeby, jeśli jest to coś, czego pragniesz w swoim rozwiązaniu.

Bibliografia

  • [pre_get_posts](https://developer.wordpress.org/reference/hooks/pre_get_posts/)
  • [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)

Źródło nagrywania: tommcfarlin.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