Добро пожаловать в еще одну часть нашей серии «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 , я могу сказать, что я проделал достойную работу!
У вас есть что добавить в эту статью? Поделитесь своими мыслями с нами в разделе комментариев ниже. И если вам понравилась статья, не забудьте поделиться ею с друзьями.
Увидимся в следующей части серии!