Використання запитів WP_Query у WordPress — частина 5 (методи та властивості)

Продовжуємо серію уроків по роботі з запитами до бази даних 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 для отримання потрібних публікацій та/або сторінок (включно з урахуванням їх типу).

 

Recent Posts

Використання запитів WP_Query у WordPress — частина 7 (аргументи для отримання категорій, тегів)

Цей практичний урок буде присвячений розгляду аргументів, які можна використовувати для отримання публікацій певних категорій…

2 години ago

Використання запитів WP_Query у WordPress — частина 6 (аргументи для отримання постів, сторінок)

Сьогоднішній урок є практичним і слугує ціллю закріпити отримані теоретичні знання з попередніх уроків по…

1 день ago

Використання запитів WP_Query у WordPress — частина 4 (хуки та фільтри)

Цим уроком ми продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у…

5 днів ago

Проксі: основи, види та переваги використання

У сучасному цифровому світі питання безпеки, анонімності та швидкого доступу до інтернет-ресурсів стає дедалі актуальнішим.…

1 тиждень ago

Джекі Чан

Твоя жахлива робота — мрія кожного безробітного. Твоя неслухняна дитина — мрія кожного бездітного. Твій…

1 тиждень ago

Використання запитів WP_Query у WordPress — частина 3 (основні функції класу)

Цей урок є продовженням серії про роботу з запитами до бази даних WP_Query у ВордПрес.…

2 тижні ago