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

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

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

В первой части мы познакомились с самим понятием «Условные теги«, и узнали насколько они важны при разработке тем и плагинов для 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

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

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

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«.

В заключении

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *