От автора: приветствую вас в последней статье на тему «Изучение WP_Query». Наше путешествие было довольно долгим. Rachel и я горды тем, что именно мы авторы этой серии. Надеемся, вам понравился круиз. В этой заключительной части мы вспомним все, что было изучено и, наконец, завершим серию
Часть 1: Вступление
Эта статья от Rachel была вступительной. В ней мы узнали:
Что из себя представляет WP_Query простыми словами и в примерах
Зачем следует использовать WP_Query, и почему лучше использовать этот, а не другие методы для создания пользовательских запросов
О предостережениях при использовании WP_Query
Часть 2: Циклы в WP_Query
Вторая часть рассказывала о создании циклов в классе WP_Query, также была написана Rachel. Из этой статьи мы узнали:
Что такое цикл в WordPress и когда он используется
Способы структурирования циклов (с детальными примерами)
Как запускать экстра циклы
Часть 3: Функции работающие с WP_Query
В этой статье, написанной вашим покорным слугой, мы рассмотрели 13 функций, которые взаимодействуют с WP_Query, облегчая работу с этим классом. Собственно, сами функции:
get_query_var(), получает публичные переменные запросов
query_posts(), изменяет основной цикл, очень плохая функция
get_post(), получает пост
get_posts(), получает посты и сохраняет их в массив
get_pages(), таким же образом вытягивает страницы
have_posts(), условный комментарий. Возвращает TRUE, если запрос возвращает посты
the_post(), вспомогательная функция для цикла
setup_postdata(), устанавливает глобальную переменную $post
rewind_posts(), очищает текущий цикл
wp_reset_postdata(), сбрасывает глобальную переменную $post
wp_reset_query(), сбрасывает весь запрос
is_main_query(), проверяет, является ли текущий запрос основным (еще один условный комментарий)
in_the_loop(), проверяет, находимся ли мы в цикле (еще один условный комментарий)
Часть 4: Фильтры и Экшены работающие с WP_Query
Эта часть была одновременна и скучной, и важной. Раздражало то, что слишком много информации нужно было исследовать, а это занимало много времени. Но оно того стоило, мы много чего узнали. (Советы от про: создайте парочку заданий на тему, о которой хоть что-то знаете!)
Каждый фильтр, связанный с WP_Query, это SQL-команда, запускающая запрос – большинство из них обрабатывают различные условия LIMIT, WHERE или DISTINCT. А 3 экшена ниже служат совершенно для других целей:
pre_get_posts встраивается в запрос перед его выполнением.
parse_query парсит запрос.
the_post модифицирует объект поста.
Часть 5: Свойства и методы
В этой статье я описал свойства и методы класса WP_Query. («Свойства» и «методы» это те же самые переменные и функции, но внутри PHP класса) Изученные нами свойства:
$query
$query_vars
$queried_object
$queried_object_id
$posts
$post_count
$found_posts
$max_num_pages
$current_post
$post
25 свойств, начинающихся на $is_, работающих как условные комментарии
И методы:
init()
parse_query()
parse_query_vars()
get()
set()
&get_posts()
next_post()
the_post()
have_posts()
rewind_posts()
&query()
get_queried_object()
get_queried_object_id()
Часть 6-12: Аргументы класса WP_Query
В следующих семи статьях Rachel проделала грандиозную работу и объяснила принципы работы всех аргументов, которые можно использовать в классе WP_Query с примерами:
Часть 6: Аргументы – Страницы, посты и типы постов
Часть 7: Аргументы – Категории и Теги
Часть 8: Аргументы — Классификации
Часть 9: Аргументы – Пользовательские поля
Часть 10: Аргументы – Дата и время
Часть 11: Аргументы – Статус поста, постраничная навигация и сортировка
Часть 12: Аргументы – Поля Author, Search, Password, Permissions, Caching и Return
Часть 13: 10 полезных примеров использования WP_Query
В этой статье я взял на себя смелость опробовать пару примеров различного применения класса WP_Query и его функций. (Также быстренько напомнил вам, как создаются циклы в WP_Query) Сами примеры:
Получение списка постов автора за определенный год
Создание раздела «Последние посты из этой категории» с исключением текущего поста
Создание раздела «Самые популярные посты», отсортированного по количеству комментариев в статьях
Создание простого слайдера
Отображение случайной цитаты в сайдбаре
Отображение товаров в определенном ценовом диапазоне
Как показать пост внутри поста
Создание списка запланированные постов (с аннотациями)
Создание раздела «Пост год назад»
Как показать «детей» текущей страницы
Это была самая веселая статья из серии!
Часть 14: Объединение WP_Query и основных запросов
Статью написала Rachel, в ней она рассказала, как скомбинировать WP_Query с основным запросом. Тут не обойтись без спойлеров, Rachel привела 3 замечательных примера:
Первый пример показывал, как отобразить посты одного типа из архива категорий.
Как вытянуть посты (через главный запрос) по определенному типу и отобразить посты каждого типа отдельно в одном списке.
Как разделить один основной запрос в два пользовательских.
Часть 15-17: Родственные классы WP_Query
А вы знали, что существуют родственные WP_Query классы, помогающие ему? В этой статье я и Rachel рассказали о:
Изучении WP_User_Query в части 15
Изучении WP_Comment_Query в части 16
Изучении WP_Meta_Query и WP_Date_Query в части 17
Часть 18: Улучшения в запросах в WordPress 4.1
В этой части Rachel рассказала об улучшениях в системе запросов в WordPress v.4.1 – таких как вложенные запросы, параметры комментариев и фиксы основных багов. Легкая статья перед завершением всей серии.
Часть 19: Заключительная
Как сказала Оракул из Матрицы Революции: «Все, что имеет начало, имеет и конец.»
Это было длинное путешествие, и как я говорил в начале этой статьи, эта серия получилось одной из самых длинных в истории Tuts+. Свои усилия я объединил с Rachel McCollin, одной из лучших инструкторов на Tuts+. Мы с гордостью можем сказать, что написали самую всеобъемлющую, самую длинную серию уроков по классу WP_Query.
Мы тяжело потрудились над созданием этой серии и надеемся, вам была полезна каждая строчка. Если вы за эти 19 уроков узнали хоть что-то новое для себя, значит, мы старались не зря.
Если у вас есть любые замечания, советы и предложения, оставляйте их в комментариях. И как всегда, если вам понравилась данная серия статей, поделитесь ей со своими друзьями.
Автор: Barış Ünver
Источник: //code.tutsplus.com/
Редакция: Команда webformyself.