Изучаем WP_Query: Свойства и методы

Вы читаете очередную статью из серии, посвященной изучению 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 , значит, моя цель достигнута.

Поделитесь мыслями в комментариях. И если вам понравилась наша сегодняшняя статья, не забудьте поделиться ею с друзьями!

Увидимся в следующих частях данной серии!

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

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