Ви читаєте чергову статтю із серії, присвяченої вивченню WP_Query. Сьогодні ми познайомимо вас з властивостями і методами цього класу.

Що таке властивості і методи?

У PHP існує метод написання більш структурованого коду, який називають об’єктно-орієнтованим програмуванням або ООП.

В ООП класи можна зіставити з кресленням для будівництва будинку. У ньому зазначена форма будинку, описується співвідношення різних компонентів будинку один з одним, хоча сам будинок ще навіть не почали будувати.

Також важливо пам’ятати, що WP_Query і сам є найважливішим класом ядра WordPress.

Коли ви з’ясуєте поняття PHP-класів, буде нескладно навчитися розуміти і використовувати «властивості» і «методи», тому що вони є синонімами «змінних» і «функцій». Властивості є «змінними» класу PHP, а методи – його «функціями».

Тепер давайте перейдемо до вивчення самих властивостей і методів. Відразу хочу попередити: змінювати властивості безпосередньо буде не дуже правильно. У кодексі зазначено, що потрібно взаємодіяти з ними через методи WP_Query.

Властивості класу WP_Query

Рядок запиту: $query

Властивість зберігає запит, переданий об’єкту $wp_query.

Масив змінних запиту: $query_vars

Властивість зберігає асоціативний масив змінних (і їхніх значень) запиту $query.

Опитуваний об’єкт: $queried_object

Це властивість зберігає поточний опитуваний об’єкт типу $post, якщо це запит до запису. Або об’єкт $author, якщо запит стосується автору запису.

ID опитуваного об’єкта: $queried_object_id

Властивість зберігає ID опитуваного об’єкта.

Записи, отримані у відповідь на запит: $posts

Властивість зберігає записи, отримані у відповідь на запит.

Кількість записів для відображення: $post_count

Властивість зберігає кількість записів для поточного запиту.

Кількість записів, отриманих за запитом: $found_posts

Властивість зберігає кількість записів без урахування умови SQL-запиту LIMIT.

Кількість сторінок: $max_num_pages

Властивість зберігає кількість сторінок, яке виходить шляхом ділення $found_posts на $posts_per_page.

Індекс поточного запису: $current_post

Властивість зберігає індексне значення поточного об’єкта в циклі. Наприклад, значення -1, якщо цикл щойно розпочався, і буде підвищуватися з допомогою методу next_post().

Поточна запис: $post

Це властивість зберігає поточну запис.

Логічні вирази умовного тега: $is_{conditional}

Такі властивості зберігаються у вигляді логічних виразів, надаючи інформацію про статус поточної записи:

  • $is_single: перевіряє, чи відноситься цей пост до стандартного типу запису (крім типів записів «вкладення» і «сторінка») чи ні;
  • $is_page: перевіряє, чи є даний елемент пагинации сторінкою чи ні;
  • $is_archive: перевіряє, чи є сторінка архівом;
  • $is_preview: перевіряє, чи є запис попереднім переглядом оригінальної запису;
  • $is_date: перевіряє, чи відноситься запис до архівів по даті чи ні;
  • $is_year: перевіряє, чи відноситься запис до архівів по році чи ні;
  • $is_month: перевіряє, чи відноситься запис до архівів по місяцю або ні;
  • $is_time: перевіряє, чи відноситься запис до архівів по часу (години, хвилини або секунди) чи ні;
  • $is_author: перевіряє, чи є сторінка архівом автора чи ні;
  • $is_category: перевіряє, чи є сторінка архівом категорії чи ні;
  • $is_tag: перевіряє, чи є сторінка архівом тега чи ні;
  • $is_tax: перевіряє, чи є сторінка архівом по таксономії чи ні;
  • $is_search: перевіряє, чи є сторінка результатом пошуку чи ні;
  • $is_feed: перевіряє, чи відноситься сторінка стрічці новин (feed) чи ні;
  • $is_comment_feed: перевіряє, чи відноситься сторінка стрічці новин для коментарів (feed) чи ні;
  • $is_trackback: перевіряє, чи є сторінка трекбэком чи ні;
  • $is_home: перевіряє, чи є сторінка основною сторінкою блогу чи ні;
  • $is_404: перевіряє, чи є сторінка помилки 404 чи ні;
  • $is_comments_popup: перевіряє, чи є сторінка спливаючим вікном коментарів чи ні;
  • $is_admin: перевіряє, чи є сторінка панеллю адміністратора чи ні;
  • $is_attachment: перевіряє, чи є елемент сторінки вкладення чи ні;
  • $is_singular: перевіряє, чи пост єдиною сторінкою цього типу (включаючи типи записів «вкладення» і «сторінка») чи ні;
  • $is_robots: перевіряє, чи є сторінка запитом до файлу robots.txt або ні;
  • $is_posts_page: перевіряє, чи є сторінка сторінкою для записів встановлюється налаштуваннями читання в панелі адміністрування WordPress) чи ні;
  • $is_paged: перевіряє, чи є це запитом з посторінковим висновком, і знаходимося ми на першій сторінці чи ні.

Методи класу 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 )

Метод встановлює зазначену змінну запиту в конкретне значення.

&get_posts()

Метод повертає необхідні записи, і заповнює властивості $posts і $post_count.

next_post()

Цей метод підвищує індекс $current_post і переходить до наступного запису в $posts, повертаючи об’єкт поточного запису. Для правильної роботи метод потрібно використовувати всередині циклу.

the_post()

Метод заповнює глобальну змінну the_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()

Цей метод схожий на наведений вище, повертає ID запитуваного об’єкта ($queried_object_id).

Порада: якщо перед методом використовується знак &, значить, метод повертається посиланням.

На завершення

Сподіваюся, мені вдалося пояснити вам, що таке властивості і методи класу. Якщо ви зрозуміли їх призначення для класу WP_Query, значить, моя мета досягнута.

Поділіться своїми думками в коментарях. І якщо вам сподобалася наша сьогоднішня стаття-не забудьте поділитися з друзями!

Побачимося в наступних частинах цієї серії!

Переклад статті «Mastering WP_Query: Properties and Methods» був підготовлений дружною командою проекту Сайтостроение від А до Я.