Добро пожаловать в еще одну часть нашей серии «Mastering WP_Query». Как у нас дела? Я надеюсь, что вам нравятся эти уроки так же, как мы наслаждаемся их написанием.
В этом руководстве вы узнаете о свойствах и методах класса WP_Query
. Но сначала, я думаю, уместно поговорить о том, что такое «свойства» и «методы» в классе.
А не ___ ли нам?
Каковы свойства и методы, точно?
В PHP есть способ написать код более понятным способом: объектно-ориентированное программирование или ООП. В ООП мы используем «классы» в качестве чертежей — я взял термин из одной из классических публикаций Code Tuts + « Объектно-ориентированный PHP для начинающих » Джейсона Ленгсторфа:
Например, класс похож на план дома . Он определяет форму дома на бумаге, с четко определенными и спланированными отношениями между различными частями дома, хотя дома не существует.
(И помните, что WP_Query
— это необходимый класс ядра WordPress.)
Когда вы понимаете понятие классов PHP, «свойства» и «методы» становятся чрезвычайно простыми для понимания, поскольку слова являются просто синонимами «переменных» и «функций». Да, свойства — это переменные класса PHP, а методы — функции класса PHP.
Теперь мы рассмотрели, что это такое, давайте познакомимся с каждым из этих свойств и методов.
Предупреждение: было бы неразумно менять свойства напрямую. Как говорится в Кодексе , вы должны взаимодействовать с ними, используя методы WP_Query
.
Свойства класса WP_Query
Давайте начнем со свойств или переменных класса WP_Query
.
Строка запроса: $query
Это свойство хранит запрос, переданный объекту $wp_query
.
Массив переменных запроса: $query_vars
Это свойство хранит ассоциативный массив переменных (и их значений) из $query
.
Запрашиваемый объект: $queried_object
Это свойство хранит запрашиваемый в данный момент объект, например объект $post
если это запрос post, или объект $author
если это запрос автора.
Идентификатор запрашиваемого объекта: $queried_object_id
В этом свойстве хранится идентификатор запрашиваемого объекта.
Сообщения, возвращенные из запроса: $posts
В этом свойстве хранятся сообщения, возвращаемые по запросу.
Количество отображаемых сообщений: $post_count
Это свойство хранит количество сообщений для текущего запроса.
Количество сообщений, возвращенных из запроса: $found_posts
Это свойство хранит количество постов без предложения LIMIT
SQL-запроса.
Количество страниц: $max_num_pages
Это свойство хранит количество страниц — оно рассчитывается путем деления $found_posts
на $posts_per_page
.
Индекс текущей записи: $current_post
Это свойство хранит порядковый номер текущего элемента в цикле. Например, это -1
если цикл только что начался, и он увеличивается методом next_post()
.
Текущее сообщение: $post
Это свойство хранит, ну, текущее сообщение.
$is_{conditional}
: $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
: проверяет, является ли это фидом или нет. -
$is_comment_feed
: проверяет, является ли это комментарием или нет. -
$is_trackback
: проверяет, является ли это трекбэком или нет. -
$is_home
: проверяет, является ли это главной страницей блога или нет. -
$is_404
: проверяет, является ли страница 404 ошибкой или нет. -
$is_comments_popup
: проверяет, всплывающее окно с комментариями или нет. -
$is_admin
: проверяет, является ли это административной панелью или нет. -
$is_attachment
: проверяет, является ли это вложение или нет. -
$is_singular
: проверяет, является ли это одно сообщение любого типа (включая типы сообщений «вложение» и «страница») или нет. -
$is_robots
: проверяет, является ли это запросrobots.txt
или нет. -
$is_posts_page
: проверяет, является ли это «страницей сообщений» (установленной на странице «Настройки чтения» в панели администратора) или нет. -
$is_paged
: проверяет, является ли запрос$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()
Этот метод устанавливает глобальную переменную $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
, я могу сказать, что я проделал достойную работу!
У вас есть что добавить в эту статью? Поделитесь своими мыслями с нами в разделе комментариев ниже. И если вам понравилась статья, не забудьте поделиться ею с друзьями.
Увидимся в следующей части серии!