Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 20.02.2025)
863580
солдат
370
самолетов
331
вертолетов
10134
танков
21112
ББМ
23410
артиллерия
1078
ПВО
1291
РСЗО
37961
машин
28
корабли и катера
Использование запросов WP_Query в WordPress – часть 5 (методы и свойства)
Опубликовано Обновлено: 19.02.2025

Использование запросов 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 для получения нужных публикаций и/или страниц (включая их тип).

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Быстрый доступ по сайту SebWeo
Угости меня кофе