Цикл WordPress

Цикл WordPress

От автора: в обсуждениях WP и, в частности, в разговорах по разработке тем (или при создании новых шаблонов страниц в теме) вы неизбежно столкнетесь с понятием «цикл WordPress». Цикл (loop) – это фреймворк, внутри которого WP строит контент для страниц, на которые заходит пользователь. Будь-то статичная домашняя страница или страница последних постов в блоге, или что-то другое. Возможно, звучит сложно, но на деле это просто механизм зацикливания.

В простейшем случае цикл – это зацикленная структура, как и любая другая структура в программировании. Она проходится по контенту на сайте, циклически перемещаясь по постам и страницам, и вытягивает запрошенный контент. В самом сложном случае цикл можно запускать несколько раз, выбирая только определенные элементы из заданных категорий, элементы, не относящиеся к заданным категориям, опубликованные в пределах дат, а также элементы, идентифицированные по другим признакам.

Во всех шаблонах тем для WP есть цикл. Это один из способов, с помощью которого шаблон может искать и вытягивать контент из страниц и постов, хранящихся в базе данных. Разберем несколько примеров:

Базовый пример цикла

В примере выше видно, что настройка очень простая. Все начинается с условия наличия постов have_posts. Далее следует цикл while, задающий условие. Пока есть посты (опять с помощью have_posts), проходимся в цикле по следующему посту и вызываем the_post – конкретный пост.

Конкретные запросы

Если нужно что-то большее, чем просто возврат всех постов, то нужно ограничить запросы. Здесь нам поможет WP_Query.

Фильтрация по категориям

Пример ниже – модифицированная версия кода с Codex, в котором мы запрашиваем посты из категории с id, равным 4. Далее можно посмотреть образец содержимого самого цикла. Мы ищем посты из категории с ID 4, в div .post отображаем заголовок поста (со ссылкой на пост), дату, контент и метаданные поста.

С помощью WP_Query можно настраивать результат. Можно включить посты только из одной категории или нескольких, или включить все посты кроме определенной категории или нескольких. Можно искать и возвращать посты по ключевым словам, находить посты по ID, показывать только данные со страниц с помощью post_type и т.д. Более подробно с WP_Query можно ознакомиться в документации WP_Query.

«Совет: получить ID категории можно разными способами. Простой – перейти в «Posts» и далее в «Categories» в WP-Admin, нажать правую кнопку мыши на имени категории из списка и сохранить URL. Далее необходимо вставить ссылку в текстовый редактор. Ссылка будет выглядеть примерно так: //example.com/wp-admin/term.php?taxonomy=category&tag_ID=4&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory. Нам нужен tag_ID!»

Фильтрация по значениям пользовательских полей

Пользовательские поля в WP могут быть очень полезными, и время от времени вам, возможно, понадобится фильтровать посты по значениям этих полей. Простая задача, но ее нужно показать новичкам в разработке WP (и тем, кто не углублялся в кастомные шаблоны и циклы), чтобы понять масштаб настроек. Скажем, у вас есть пользовательское поле department, и вы ищите посты по значению marketing:

Понятие цикла

Самый лучший способ понять цикл – использовать его. Вытягивайте с его помощью контент из шаблонов, которые вы создаете для тем, или используйте его в коде существующих шаблонов тем. Если нужно что-то сделать, отфильтровать по определенным критериям, снова запускайте цикл. Посмотрите документацию The Loop в Codex или ищите идеи в Google. Ограничений нет!

Автор: Jeff Smith

Источник: //www.sitepoint.com/

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

Метки:

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

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