Использование запросов 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