Руководство по условным тегам: финальная часть

Путь был не близок, но мы подошли к последней статье из этой серии. Надеюсь, путешествие было полезным, и вам понравились все уроки без исключения.

Что мы изучили

В первой части мы познакомились с самим понятием «Условные теги«, и узнали насколько они важны при разработке тем и плагинов для WordPress. Кроме того я привел пять практических примеров.

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

Во второй части мы изучили следующие условные теги:

  • Проверка, находимся ли мы на «Индексной странице записей блога«: is_home();
  • Проверка, является ли текущая тема дочерней: is_child_theme();
  • Проверка, принадлежит ли запись данной категории: in_category();
  • Проверка, используется ли «шаблон страницы«: is_page_template();
  • Проверка, является ли страница страницей архива: is_archive();
  • Проверка, является ли страница «Архивом по дате«: is_date();
  • Проверка, активен ли в данный момент заданный виджет: is_active_widget();
  • Проверка, является ли страница единственной записью в блоге: is_single();
  • Проверка существует ли заданный адрес электронной почты в таблице пользователей: email_exists();
  • Проверка, имеет ли данный тип записей иерархическую структуру: is_post_type_hierarchical();
  • Проверка, является ли запись «важной«: is_sticky();
  • Проверка, отображается ли в данный момент панель администрирования: is_admin();
  • Проверка, является ли страница страницей «архива категории«: is_category().

В третьей части мы изучили следующие условные теги:

  • Проверяем, является ли открытая страница главной: is_front_page();
  • Проверяем, есть ли миниатюры у записи: has_post_thumbnail();
  • Проверка использования темой всплывающих окон для комментариев: is_comments_popup();
  • Проверка, является ли страница сообщением ошибки 404: is_404();
  • Проверка, существует ли таксономия: taxonomy_exists();
  • Проверка, отображает ли текущая страница результаты поиска: is_search();
  • Проверка, является ли отображаемая страница архивной: is_tag();
  • Проверка записи на наличие короткого описания, заданного пользователем: has_excerpt();
  • Проверка, основной ли это запрос: is_main_query();
  • Проверка, имеет ли запись определенные теги: has_tag();
  • Проверка, установлена ли CMS: is_blog_installed();
  • Проверяем, есть ли у пользователя права супер администратора: is_super_admin();
  • Проверка на то, является ли страница «Страницей«: is_page().

В четвертой части были следующие условные теги:

  • Проверка, является ли страница «ежемесячным архивом»: is_month();
  • Проверка возможностей темы: current_theme_supports();
  • Проверяем, активен ли указанный плагин: is_plugin_active();
  • Проверяем, указывает ли URL на локальное вложение: is_local_attachment();
  • Проверка, осуществляется ли вывод поста по времени его публикации: is_time();
  • Проверяем текущую локаль на принадлежность к RTL: is_rtl();
  • Проверка, является ли страница архивной с пользовательской таксономией: is_tax();
  • Проверка, является ли данная страница вложением: is_attachment();
  • Проверяем, существует ли указанный элемент таксономии: term_exists();
  • Проверяем наличие меток у записи: has_term();
  • Проверяем, является ли комментарий трэкбэком: is_trackback();
  • Проверяем, использует ли WordPress мультисайтовую инсталляцию: is_multisite();
  • Проверяем, выводится ли на странице архива произвольный тип записи: is_post_type_archive().

В пятой части мы изучили нижеперечисленные условные теги:

  • Проверяем, является ли данный блог «Главным сайтом» в сети: is_main_site();
  • Проверяем, добавлено ли меню в указанную область темы: has_nav_menu();
  • Проверяем, активен ли определенный плагин в режиме работы «мультисайт»: is_plugin_active_for_network();
  • Проверяем, разрешены ли комментарии: comments_open();
  • Проверяем, содержит ли боковая панель виджеты: is_dynamic_sidebar();
  • Проверяем, есть ли в блоге более чем один автор: is_multi_author();
  • Проверяем, работает ли на сервере с WordPress сервис ping: pings_open();
  • Проверяем, отображается ли RSS лента: is_feed();
  • Проверяем запись на соответствие типу «Ежегодный архив«: is_year();
  • Проверяем, авторизовался ли пользователь в системе ресурса: is_user_logged_in();
  • Проверяем, является ли вложение изображением: wp_attachment_is_image();
  • Проверяем на наличие запрашиваемого типа записи: post_type_exists();
  • Проверяем, публикуется ли текущая запись на новый день (на завтра): is_new_day().

И в шестой части я рассказал о следующих условных тегах:

  • Проверка, отображается ли в данный момент страница указанного типа: is_singular();
  • Проверка, работает ли функция в «Цикле«: in_the_loop();
  • Проверка, является ли указанный плагин неактивным: is_plugin_inactive();
  • Проверка, отображается ли сейчас страница из «архива автора: is_author();
  • Проверяем, находимся ли мы на странице пагинации:is_paged();
  • Проверка, отображается ли в данный момент панель инструментов WordPress: is_admin_bar_showing();
  • Проверка, является ли текущая страница архивом постов за день:is_day();
  • Проверка, подключен ли в данный момент заданный сайдбар: is_active_sidebar();
  • Проверка, существует ли заданное имя пользователя в системе ресурса:username_exists();
  • Проверка, отображается ли в данный момент страница «предварительного просмотра записи»: is_preview();
  • Проверка состояния заданного скрипта: wp_script_is();
  • Проверка состояния заданного стиля: wp_style_is();
  • Проверка, является ли таксономия иерархической: is_taxonomy_hierarchical().

Небольшой бонус: три плагина, которые используют условные теги

Сейчас мы рассмотрим три плагина, которые используют в своей работе условные теги WordPress. Данные плагины могут быть полезны, если их правильно использовать!

Widget Logic

plugin-banner-widget-logic

Плагин Widget Logic скачанный около миллион раз, имеет рейтинг 4.3. Похоже, что это самый популярный плагин, использующий условные теги. Он «виртуально» спасает от создания отдельных сайдбаров для каждого случая.

Логика работы плагина проста: он размещает маленькое поле для ввода над каждым виджетом на странице «Widgets» в панели администрирования, чтобы мы могли просто вписать туда условные теги. Будьте внимательны: этот плагин использует функцию EVAL. Это значит что любой, кто имеет доступ, в Widget Logic сможет вписать в поле для ввода любой PHP-код. Будьте осторожны.

Script Logic

plugin-banner-script-logic

Плагин Script Logic работает с вашими JavaScript — файлами, которые вы ставите в очередь с помощью функции wp_enqueue_script(). Плагин берет все скрипты из очереди и позволяет добавлять условные теги для разделения скриптов и их загрузки по отдельности. Плагин также использует функцию EVAL, потому будьте внимательны!

Conditional Shortcodes

Вспомните пример, который я приводил для условного тега is_feed(). Этот плагин расширяет возможности тега is_feed() до 19 условных тегов, включая и наш пример. Ниже я привел список условных тегов, которые можно использовать с этим плагином:

  • comments_open();
  • is_archive();
  • is_author();
  • is_category();
  • is_day();
  • is_feed();
  • is_front_page();
  • is_home();
  • is_month();
  • is_page();
  • is_page();
  • is_search();
  • is_single();
  • is_singular();
  • is_sticky();
  • is_tag();
  • is_tax();
  • is_time();
  • is_year().

Используется, как и любой другой шорткод: поместите условный тег в квадратные скобки и передайте параметры тега в качестве параметров шорткода. Плагин также позволяет использовать внутри перечисленных тегов конструкцию «else«.

В заключении

Как я уже упомянул, эта серия была очень длинной, но не менее познавательной. Если у вас есть какие — либо вопросы, предложения или комментарии, оставляйте их в поле для комментариев. И не забудьте поделиться статьями из этой серии с друзьями! Удачи!

Перевод статьи «A Walkthrough on Conditional Tags in WordPress: Series Finale» был подготовлен дружной командой проекта Сайтостроение от А до Я.