Изучение WP_Meta_Query и WP_Date_Query

Изучение WP_Meta_Query и WP_Date_Query

От автора: в этом уроке мы рассмотрим два родственных класса WP_Meta_Query и WP_Date_Query в WordPress. Меньше слов, перейдем сразу к делу!

Работа со всеми типами мета данных в классе WP_Meta_Query

Класс WP_Meta_Query – класс хелпер, помогает классу WP_Query создавать запросы по мета данным. Как вам известно, в базе данных WordPress хранится три типа мета данных: мета данные постов, пользовательские мета данные и данные комментариев. В предыдущих уроках мы убедились в том, что внутри запросов в классах WP_Query, WP_User_Query и WP_Comment_Query можно создавать мета запросы (с помощью параметра ‘meta_query’). На самом деле класс WP_Meta_Query как раз и запускается, когда мы выполняем эти запросы.

Выходит, с помощью WP_Meta_Query можно получить SQL-запросы. В данный класс не возвращается результат выполнения запросов, он подготавливает SQL команды, которые вы можете использовать в других местах.

Примеры использования WP_Meta_Query

Без примеров эту статью нельзя назвать уроком, ведь так? На простом примере ниже я покажу, как использовать класс WP_Meta_Query в реальных ситуациях. (Получение SQL запроса из мета запроса очень специфичная вещь, но я постараюсь подобрать понятный пример).

Скажем, вы хотите создать плагин «похожие посты» на своем сайте. Плагин будет отображать список постов с одинаковыми мета данными по определенному ключу. И вместо создания мета запроса в объекте WP_Query, вы вытягиваете SQL запрос, чтобы потом динамически его использовать в отдельных кусках кода. Ниже показано, как это сделать:

Вот и все, в переменной $my_meta_sql хранится наш SQL запрос, который можно теперь использовать где угодно.

date запросы и класс WP_Date_Query

Как и WP_Meta_Query, класс WP_Date_Query является хелпером для WP_Query, WP_User_Query и WP_Comment_Query. Этот класс впервые появился в WordPress v.3.7. На тот момент данный класс не поддерживал WP_User_Query. И только начиная с версии 4.1 стало возможным создавать запросы внутри пользовательских таблиц (поле user_registered).

Подобно классу WP_Meta_Query и его способности запрашивать ключи и значения, с помощью класса WP_Date_Query можно получить данные из поста, комментария и таблицы пользователей. И также, как и с WP_Meta_Query, данный класс позволяет подготовить SQL-запрос.

Пример использования WP_Date_Query

Чтобы полностью понять принципа работы данного класса, разберем пример. Пример будет довольно специфичным, но без него не обойтись. Представим, что по какой-то причине нам необходимо вытащить все комментарии за прошедший месяц, добавленные до 12 дня. Ниже показан код этого странного запроса:

Не забывайте, что можно использовать относительный формат даты в PHP, очень полезная вещь. Совет: у Christian Bruckner написана замечательная статья о принципе работы WP_Date_Query на сайте great post on MarketPress.com. Она немного устарела (написана до выхода WordPress 4.1), но она написана понятным языком и легко читается.

Заключение

Два наших класса хелпера завершают долгое путешествие по классу WP_Query. Эта серия уроков была одной из самых длинных на сайте Tuts+. Спасибо, что дошли с нами до конца! В следующей (и последней) части вы закрепим пройденные навыки. Хотите что-нибудь добавить? Если так, не стесняйтесь оставлять свои мысли в комментариях. Если понравилась статья, не забудьте поделиться ей со своими друзьями!

Автор: Barış Ünver

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

Метки: ,

Похожие статьи:

Комментарии Вконтакте: