Продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у ВордПрес. Сьогоднішній урок присвячений методам та властивостям, що пов’язані з класом WP_Query.
До цього ми вже познайомилися зі спеціальними функціями, додатковими хуками та фільтрами. А зараз перейдемо до розгляду наступного щаблю — властивості та методи класу, і почнемо з основ.
У мові програмування PHP є чудовий спосіб організації коду — ООП (об’єктно-орієнтоване програмування), коли ми використовуємо класи, що по своїй суті можна порівняти із проектом (генеральним кресленням) будинку. Класи визначають основні параметри об’єкту (в нашому прикладі будинку), що повинні чітко взаємодіяти між собою, скоординувати всі зв’язки між різними частинами будинку, навіть якщо його зараз й не існує. А методи — це функції, що визначають взаємодію з будинком, а властивості — це його «змінні» компоненти. Тож, повертаючись до мови програмування PHP, можемо визначити властивості як змінні класу, а методи визначити в якості функцій класу. А оскільки двигун CMS WordPress побудований на PHP, тому і використовує його ООП підхід. Отже, і тут є властивості та методи, до огляду яких ми зараз і перейдемо.
WP_Query
у ВордПресТепер від загального PHP перейдемо до PHP, що використовується в системі керування контентом ВордПрес, зокрема до властивостей (іншими словами, змінних) класу WP_Query
.
$query
У цій властивості зберігається рядок запиту, що переданий об’єкту $wp_query
.
$query_vars
Ця властивість зберігає асоціативний масив змінних $query
(та їхніх значень).
$queried_object
Ця властивість зберігає поточний об’єкт запиту, наприклад об’єкт $post
, якщо це запит публікації, або об’єкт $author
, якщо це запит автора.
$queried_object_id
Ця властивість зберігає ідентифікатор поточного об’єкта в запиті.
$posts
Ця властивість зберігає публікації, що повернув поточний запит.
$post_count
Ця властивість зберігає кількість публікацій для поточного запиту.
$found_posts
У даній властивості зберігається значення кількості отриманих з запиту публікацій.
$max_num_pages
Ця властивість зберігає загальну кількість отриманих сторінок — вона обчислюється шляхом ділення $found_posts
на $posts_per_page
.
$current_post
Ця властивість зберігає номер індексу поточного елемента в циклі. Наприклад, значення -1
вказує, що цикл знаходиться на самому початку. Даний індекс в подальшому збільшується за допомогою методу next_post()
.
$post
Ця властивість містить дані поточної публікації.
$is_{умова}
Давайте розглянемо основні та найбільш часто використовувані властивості, що при зазначенні в умовному тегові надають нам інформацію про поточний статус публікації:
$is_home
: перевіряє, чи є дана сторінка головною сторінкою блогу (визначеною в налаштуваннях як головна сторінка публікацій)$is_admin
: перевіряє, чи знаходиться поточний користувач у адміністративній панелі (Консоль, Майстерня) чи ні$is_single
: перевіряє, чи є дана публікація окремою чи ні (але без врахування постів типу “вкладення” та “сторінка”). А для всіх типів постів використовуйте умовний тег $is_singular
$is_page
: перевіряє, чи тип даного посту є сторінка (page
) чи ні$is_archive
: перевіряє, чи є дана сторінка сторінкою із типом «архів» чи ні$is_date
: умова перевіряє, чи є дана сторінка сторінкою із типом архіву на основі дати. Додатково: умовні теги $is_year
— для перевірки архівів по рокам, $is_month
— для перевірки архівів по місяцям, $is_time
— для перевірки архівів на основі часу (погодинно, похвилинно чи посекундно).$is_author
: перевіряє, чи є дана сторінка архівною сторінкою публікацій певного автора чи ні$is_category
: перевіряє, чи є дана сторінка архівною сторінкою публікацій на основні категорії чи ні$is_tag
: перевіряє, чи є дана сторінка архівною сторінкою публікацій на основні тегів, чи ні$is_tax
: перевіряє, чи є дана сторінка архівною сторінкою публікацій на основні таксономії, чи ні. Дефолтні таксономії у ВордПрес: рубрики, мітки, меню, формати постів$is_search
: перевіряє, чи являється поточна сторінка сторінкою «результатів пошуку»
WP_Query
у ВордПресТепер від властивостей класу WP_Query
давайте перейдемо до його методів (іншими словами, функцій).
init()
Цей метод просто ініціалізує об’єкт, встановлюючи для всіх властивостей дефолтно значення NULL
, 0
або FALSE
.
parse_query( $query )
Цей метод використовує властивість $query
, щоб проаналізувати запит і на основі цього заповнити всі інші властивості (окрім $posts
, $post_count
, $post
і $current_post
).
parse_query_vars()
Цей метод повторно аналізує змінні запиту.
get( $query_var )
Цей метод отримує задану змінну запиту.
set( $query_var, $value )
Цей метод встановлює значення вказаної змінної запиту ($query_var
) на певне значення ($value
).
&get_posts()
Цей метод повертає публікації, що були ініційовані запитом, та заповнює значеннями властивості $posts
і $post_count
.
next_post()
Цей метод збільшує індекс $current_post
і переходить до наступної публікації в $posts
, повертаючи поточний об’єкт публікації (обов’язково всередині циклу).
the_post()
Цей метод встановлює глобальну змінну $post
включно з даними наступної публікації (обов’язково всередині циклу).
have_posts()
Цей метод перевіряє, чи залишилися публікації в циклі для обробки, і повертає FALSE
, якщо їх немає (обов’язково перед циклом).
rewind_posts()
Цей метод просто робить скидання властивостей $current_post
і $post
.
&query( $query )
Цей метод викликає два пов’язаних методи parse_query()
і get_posts()
, і повертає результат методу get_posts()
.
get_queried_object()
Цей метод повертає об’єкт, що був у запиті. Додатково метод встановлює значення $queried_object
, якщо його ще не було встановлено.
get_queried_object_id()
Цей метод просто повертає ідентифікатор поточного запитуваного об’єкта (властивість $queried_object_id
).
ПРИМІТКА: якщо ви бачите перед методом амперсанд (&), не лякайтеся — це просто означає, що метод повертає властивість не напряму, а за посиланням. Тобто, ми працюємо не з копією властивості, а посиланням на неї, що була оброблена методом.
На сьогодні все. В даному уроці ми розглянули важливі поняття «властивості» (змінні) та «методи» (функції) у класі WP_Query
, який ми використовуємо для запиту контенту з бази даних. Зустрінемось в наступній частині серії, в якій ми перейдемо до закріплення теоретичної частини серії на практиці. Будемо практикувати створення кастомних запитів з WP_Query
для отримання потрібних публікацій та/або сторінок (включно з урахуванням їх типу).
Цей практичний урок буде присвячений розгляду аргументів, які можна використовувати для отримання публікацій певних категорій…
Сьогоднішній урок є практичним і слугує ціллю закріпити отримані теоретичні знання з попередніх уроків по…
Цим уроком ми продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у…
У сучасному цифровому світі питання безпеки, анонімності та швидкого доступу до інтернет-ресурсів стає дедалі актуальнішим.…
Цей урок є продовженням серії про роботу з запитами до бази даних WP_Query у ВордПрес.…