✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Сортування публікацій WordPress за датою

37

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 );

Потім додайте таку функцію:

Ось як це працює:

  1. Зверніть увагу на перші умовні перевірки, якщо ми не в області адміністрування або якщо ми не на edit.phpсторінці (яка є сторінкою зі списком публікацій), ми просто залишаємо функціональність. Це застереження або дострокове повернення.
  2. Якщо ми задовольняємо обидва ці критерії, тоді ми оновимо запит так, щоб він впорядковував публікації за датою в порядку спадання. Це означає, що останні дати завжди відображатимуться вгорі.

Це не враховує статус публікації (тому, якщо це draftабо публікація зі publishстатусом, це не матиме значення). Крім того, це не дозволить користувачам клацати заголовок стовпця «Дата», щоб сортувати результати за потреби, якщо це те, чого ви так бажаєте у своєму рішенні.

Список літератури

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

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі