Для кожної сторінки ядро WordPress формує запит до БД для отримання записів на основі параметрів GET запиту. Налаштування пошуку постів встановлюються в глобальному об'єкті $ wp_query. При необхідності, ви можете модифікувати цей базовий запит йди ж сформувати новий об'єкт запиту до БД - WP_Query.
SQL запит об'єкта WP_Query зберігається у властивості request:
Зміна базового запиту
Параметри GET запиту
Використання WP_Query для отримання записів
Відразу наведу приклад повного циклу виведення записів / постів:
Примітка
Ф-ція wp_reset_postdata () відновлює глобальну змінну $ post з глобального об'єкта $ wp_query:
Далі детально розглянемо деталі кожного етапу і додаткових можливостей.
Методи отримання записів
Отримання одного запису / поста по id або slug:
Примітка
Функція get_post () - це обгортка над WP_Post. вона вживає додаткових параметри $ output і $ filter:
Сформувати новий запит для отримання записів / постів WP_Query:
Примітка
фільтри записів
Основні фільтри і параметри запиту
Примітка
page (число) - Номер для статичної домашньої сторінки. Показує записи, які в звичайному режимі повинні були бути показані на сторінці пагінацію Х головною статичної сторінці (front page).
Примітка
Примітка до типам постів:
Фільтр по дереву (ієрархії)
Примітка
Фільтр по тегам (мітках)
meta_query - фільтр по мета даними
Параметр meta_query представляє масив вкладених параметрів фільтрації записів / постів по мета даними.
tax_query - фільтр по таксономиям
приклади запитів
Отримати дочірні сторінки для поточної сторінки:
Усього доступно постів:
Додати фільтр запиту "пости тільки з зображеннями":
висновок записів
Цикл виведення записів
Примітка
Використовуйте wp_reset_postdata () для "скидання" значення глобальної змінної $ post до стану основного запиту, після завершення будь-яких циклів обходу записів! Оскільки кожен the_post () замінює глобальні змінні, ви можете виявити, що на сторінці записи, наприклад, змінна $ post містить не основний пост, а якийсь інший. Який швидше за все буде останнім постом з якогось циклу.
Додаткові / мета поля
Отримати мета поля:
Отримати посилання на основне зображення поста:
WP_Query: query_vars
Отримати об'єкт (пост або таксономія) запиту для поточного маршруту / ЧПУ:
Отримати параметри запиту для поточної сторінки:
Отримати параметр запиту WP_Query поточної сторінки (поста або записів розділу):
setup_postdata ($ post)
Витягує дані поста і формує глобальні змінні поста. Використовує передану змінну $ post і глобальний об'єкт запиту $ wp_query. Створюються такі глобальні змінні: $ id, $ authordata, $ currentday, $ currentmonth, $ page, $ pages, $ multipage, $ more, $ numpages.
Функція працює тільки за умови, що ви передаєте їй глобальний об'єкт поста з ім'ям $ post. Якщо у вас об'єкт поста знаходиться в іншій змінній - встановіть $ post = $ myWpPost, після чого передайте $ post в цю ф-цію. Я не дуже розумію як працює ця ф-ція, якщо передавати їй ID поста замість $ post.
$ Query_vars - аргументи запиту
Отримання окремих полів поста (post_type, post_title, post_status, post_content ..):
#worspress, #search, #filter