Продолжаем серию уроков по работе с запросами в базу данных 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
для получения нужных публикаций и/или страниц (включая их тип).
В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…
Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…
Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…
В 2025 году конкуренция в e-commerce стала жесткой как никогда. Клиенты выбирают не только по…
Веб-дизайнеры и разработчики всегда ищут что-то новое и креативное, чтобы сделать свой сайт уникальным и…
Представьте ситуацию, когда вы пытаетесь обновить свой веб-сайт, но по какой-то причине у вас нет…