Ви читаєте чергову статтю із серії, присвяченої вивченню 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» був підготовлений дружною командою проекту Сайтостроение від А до Я.