Тэги и новые переменные в WordPress 2.3

В который уже раз напомню (а то вдруг есть такие, кто не знают), но в WordPress 2.3 появилась встроенная поддержка тэгов. Не бог весть как реализованная, но тем не менее.

Как же ими пользоваться грамотно?
Для начала стоит понять, что для получения списка постов по определенному тэгу достаточно указать его в УРЛ после /tag/, т.е. название_блога.ру/tag/тэг_который_ищем.

С этим всё просто. Теперь более сложные варианты:
а) логическое «ИЛИ»
Если нужно выбрать все посты, которые содержат один из указанных тэгов, то перечисляем их через запятую, например:
название_блога.ру/tag/тэг1,тэг2,тэг3

б) логическое «И»
Если нужно выбрать посты, отмеченные несколькими тэгами, то делаем это через «+»:
название_блога.ру/tag/тэг1+тэг2+тэг3

К сожалению более сложные комбинации фильтров не работают, а жаль. Вполне могли бы добавить работу со скобками, а главное отсутствует возможность исключить какой-либо тэг из выборки.

Ну и, чтобы пост не был столько мелким, небольшое добавление для людей, пишущих плагины и/или темы для WordPress.
Если есть необходимость в фильтрации постов, то добавляем обработчик на parse_request (при помощи add_action) и уже в теле обработчика устанавливаем фильтры при помощи $wp->set_query_var().

Список доступных переменных:
category__in — передаётся массив с ID категорий. На выходе — посты, из любой из переданных категорий.
category__not_in — передаётся массив с ID категорий. На выходе — посты, находящиеся вне перечисленных категорий.
category__and — передаётся массив с ID категорий. На выходе — посты, находящиеся сразу во всех перечисленных категориях.
tag__in — передаётся массив с ID тэгов. На выходе — посты, с любым из переданных тэгов.
tag__not_in — передаётся массив с ID тэгов. На выходе — посты, без отметки переданными тэгами.
tag__and — передаётся массив с ID тэгов. На выходе — посты, отмеченные сразу всеми переданными тэгами.
tag_slug__in — передаётся текстовый массив имен тэгов. На выходе — посты, с любым из переданных тэгов.
tag_slug__and — передаётся текстовый массив имен тэгов. На выходе — посты, отмеченные сразу всеми переданными тэгами.

Удачи всем в плагино-писательстве.

Тэги и новые переменные в WordPress 2.3: 7 комментариев

  1. спасибо 🙂

    из другой оперы- — попробовала опставить аяксовое появление комментариев — кодировка в них полностью слетела, равно как и чередование выделения каментов (пока стоит дефолтная ВР-схема)

  2. гм.
    тегов в интерфейсе создания поста все же не предусмотрено, и эта возможность доступна только тем, кто свободно, без риска для жизни, может залезть в код? или я не там смотрю…

  3. Елена, какая версия у вас WP и кодировка блога? Потому что все AJAX приложения работают только в UTF, я писал об этом тут.
    тэги в создании поста или комментария? Разъясните что вы имеете ввиду под тэгами — тэги (термины в 2.3) или тэги разметки?

Добавить комментарий