Сортування публікацій WordPress за датою
TL;DR: якщо ви шукаєте простий спосіб сортувати публікації WordPress за датою (за спаданням або зростанням) в області адміністрування, не змушуючи користувачів натискати заголовок стовпця «Дата», ви можете зробити це за допомогою pre_get_posts
фільтра який надає посилання на екземпляр WP_Query
, запущений на сторінці.
Щоб отримати приклади в коді того, як це зробити, перегляньте решту статті.
Сортування публікацій WordPress
Ця стаття написана таким чином, що передбачає, що ви налаштовані на основі класу. Це означає, що налаштування для фільтра визначено у такій функції, як init
і він викликає public
назву функції в класі, наприклад sort_articles_by_recent_time
.
Нарешті, він визначає пріоритет 10
і вказує, що функція прийматиме один аргумент (який є екземпляром WP_Query
.
Спочатку додайте такий фільтр:
add_action( 'pre_get_posts', [ $this, 'sort_articles_by_recent_time' ], 10, 1 );
Потім додайте таку функцію:
Ось як це працює:
- Зверніть увагу на перші умовні перевірки, якщо ми не в області адміністрування або якщо ми не на
edit.php
сторінці (яка є сторінкою зі списком публікацій), ми просто залишаємо функціональність. Це застереження або дострокове повернення. - Якщо ми задовольняємо обидва ці критерії, тоді ми оновимо запит так, щоб він впорядковував публікації за датою в порядку спадання. Це означає, що останні дати завжди відображатимуться вгорі.
Це не враховує статус публікації (тому, якщо це draft
або публікація зі publish
статусом, це не матиме значення). Крім того, це не дозволить користувачам клацати заголовок стовпця «Дата», щоб сортувати результати за потреби, якщо це те, чого ви так бажаєте у своєму рішенні.
Список літератури
[pre_get_posts](https://developer.wordpress.org/reference/hooks/pre_get_posts/)
[WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)