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