Условные теги в WordPress: Финал. Wordpress условные теги
Условные теги WordPress (Conditional Tags)
Используя Условные теги (Conditional Tags) в файлах-шаблонах вашей Темы можно указать какое содержание отображать на определенной странице в зависимости от того, выполнены ли какие-либо из заданных условий для данной страницы. Т.е. можно с легкостью настроить отображение записей на главной странице или подключить к определенной категории свой (уникальный) вывод записей. Например, можно отображать определенный текст только на главной странице посредством условного тега ‘is_home ()’.
Оригинал статьи Кодекса смотрите здесь.
Суть работы Условных тегов (Conditional Tags) в том, чтобы когда необходимо выполнить конкретное заданное условие, срабатывали определения TRUE или FALSE (т.е. срабатывало заданное условие). Ниже приведены все возможные условия.
Главная страница
is_home () - Тег используется для отображения чего-либо на главной странице. Если вы используете в качестве Главной страницы — Постоянную страницу (Админ панель > Параметры > Чтение), то данный тег будет считать главной — Главную страницу ваших записей.
The Front Page
is_front_page () - Этот тег появился в WordPress версии 2.5. Тег работает на главной странице сайта, вне зависимости от того, что на ней будет выводится: записи или Статическая страница.
welovewp.wordpress.com
is_404() | Проверяет показывается ли страница ошибки 404 (HTTP 404: страница не найдена). Условный тег. |
is_admin() | Проверяет находится ли пользователь в админ-панели сайта (консоль или любая другая страница админки). Условный тег. |
is_archive() | Условный тег. Срабатывает, когда показывается любая из архивных страниц (страница: категории, метки, автора, даты). |
is_attachment() | Проверяет является ли данная страница страницей вложения. Условный Тег. |
is_author() | Тег Шаблона, проверяет отображается ли страница с постами автора. Можно указать конкретного автора. |
is_blog_admin() | Проверяет является ли текущая страница, текущий запрос - страницей в разделе администрирования отдельного сайта сети в WordPress MU. Условный тег. |
is_category() | Условный тэг. Проверяет показывается ли страница категорий или нет. |
is_comment_feed() | Проверяет, является ли запрос, страницей фида комментариев. Условные тег. |
is_customize_preview() | Срабатывает когда находимся в кастомайзере WordPress (визуальная настройка темы). Условный тег. |
is_date() | Срабатывает когда отображается страница архива по дате. Условный тег. |
is_day() | Условный тег. Срабатывает, когда отображается страница архива по дню. |
is_embed() | Проверят является ли запрос запросом на страницу встраивания записи (embede). |
is_feed() | Проверяет запрашивается ли в текущий момент фид. |
is_front_page() | Проверяет отображается ли главная (домашняя) страница сайта. Условный тег. |
Условный тег, проверяет показывается ли страница с последними постами, обычно это главная страница сайта. | |
is_month() | Проверяет отображается ли страница архива по месяцам в данный момент или другая страница. Условный тег. |
is_network_admin() | Проверяет является ли текущая страница, текущий запрос - страницей в разделе администрирования сети сайтов в WordPress MU сборке. Например /wp-admin/network/. Условный тег. |
is_page() | Проверяет отображается ли страница "постоянной страницы". Можно указать ID, ярлык или заголовок страницы для проверки. Условный тег. |
is_page_template() | Проверяет используется ли для страницы файл шаблона. Можно указать название файла шаблона. |
is_paged() | Проверяет отображается ли страница пагинации (страница типа /page/2, /page/3). |
is_post_type_archive() | Проверяет находится ли пользователь на архивной странице записей произвольного типа. |
is_preview() | Проверят находится ли пользвоатель на странице предпросмотра записи. Условный тег |
is_robots() | Проверяет запрос ли это к файлу robots.txt. Условные тег. |
is_search() | Срабатывает, когда отображается страница результатов поиска. Условный тег. |
is_single() | Проверяет отображается ли страница записи любого типа записей кроме attachment и page. Условные тег. |
is_singular() | Проверяет просматривается ли страница записи (поста, страницы, вложения, произвольны тип записи). Условный тег. |
is_ssl() | Проверяет используется ли защищенный протокол HTTPS (SSL). Условный тег. |
is_sticky() | Условный тег. Проверяет прилеплен ли текущий пост к главной странице сайта. |
is_tag() | Проверят отображается ли страница архива по меткам. Условный тег. |
is_tax() | Срабатывает на архивной странице пользовательской таксономии. Условный тег. |
is_time() | Срабатывает на архивных страницах по времени. Условный тег. |
is_trackback() | Проверяет, является ли текущий запрос запросом на страницу пингов (trackback) |
is_user_admin() | Проверяет запрашиваемую страницу - является ли она страницей пользователя в админке, в сети мультисайт. Например: /wp-admin/user/ или /wp-admin/user/profile.php. Условный тег. |
is_year() | Срабатывает когда показывается страница с постами за указанный год. Условный тег. |
wp_doing_ajax() | Проверяет, является ли текущий запрос AJAX запросом WordPress. |
wp_doing_cron() | Определяет является ли текущий запрос, запросом к Крону. Условный тег. |
cat_is_ancestor_of() | Проверяет является ли указанная рубрика дочерней к другой указанной рубрике (проверяются все уровни вложенности). Условный тег. |
comments_open() | Проверяет открыто ли комментирование для указанного поста/записи. |
email_exists() | Проверяет существует ли указанный email адрес среди зарегистрированных пользователей. |
has_category() | Проверяет находится ли текущая (или указанная) запись хоть в одной из указанных категорий. |
has_custom_header() | Проверяет установлена ли картинка для шапки темы, или установлено ли видео и доступно для показа на текущей странице запроса. |
has_excerpt() | Проверяет есть ли у текущего поста цитата (короткое описание). Условный тег. |
has_nav_menu() | Проверяет, имеет ли зарегистрированная область для меню прикрепленное к ней меню. Условный тег. |
has_post_thumbnail() | Проверяет имеет ли указанная запись (пост) картинку миниатюру. Условный тег. |
has_shortcode() | Проверяет есть ли в переданном тексте указанный шоткод. |
has_tag() | Проверяет принадлежит ли пост к указанным меткам, т.е. есть ли у поста указанные метки. Условный тег. |
has_term() | Проверяет наличие у поста терминов, т.е. проверяет есть ли у поста метки/категорий/разделы (с учетом таксономии). |
have_comments() | Проверяет есть ли комментарии для вывода на текущей странице записи. Условный тег. |
have_posts() | Проверяет есть ли у текущего запроса WP результаты для вывода, т.е. есть ли в наличии посты, которые можно вывести для текущей страницы. Условный тег. |
in_category() | Проверяет принадлежит ли текущий (или указанный) пост к указанной категории (можно указать несколько категорий). Условный тег. |
in_the_loop() | Проверяет активен ли цикл перебора записей в момент вызова этой функции. Условный тег, чтобы делать что-либо находясь в цикле WordPress. |
is_active_sidebar() | Проверяет используется ли указанная панель виджетов (область для виджетов, сайдбар). Сработает если в области для виджетов есть хоть один виджет. Условный тег. |
is_admin_bar_showing() | Проверяет будет ли показан (или уже показан) «Админ бар» (тулбар). Т.е. будет ли выведена панель админки для текущего пользователя. Условный тег. |
is_blog_installed() | Проверяет установлен ли сайт. Проверяется наличие опции siteurl и таблиц в базе данных. Результат кэшируется. |
is_child_theme() | Проверяет используется ли дочерняя тема. Условные тег. |
Проверяет поддерживается ли темой функция сайдбаров (виджеты и панели для них) и установлен ли для панели хотя бы один виджет. Условный тег. | |
is_header_video_active() | Проверяет нужно ли показать имеющееся видео заголовка на текущей странице. Условный тег. |
is_local_attachment() | Проверяет переданный URL, является ли он страницей вложения (файла медиатеки WordPress) текущего сайта. |
is_main_query() | Проверяет в главном ли цикле WordPress выполняется действие. Условный тег. |
is_multi_author() | Проверяет количество авторов на сайте, если больше одного, то вернет true, иначе false. Условный тег. |
is_multisite() | Проверяет включена ли мультисайтовость на сайте. Условный тег. |
is_new_day() | Проверяющий отличие текущей даты от предыдущей (в цикле). Условный тег. |
is_plugin_active() | Проверяет, активен ли указанный плагин. Работает только в админ-панели. Условный тег. |
is_post_type_hierarchical() | Проверяет является ли указанный тип записи древовидным. |
is_taxonomy_hierarchical() | Проверяет древовидная ли указанная таксономия. Условный тег. |
is_textdomain_loaded() | Определяет загружен ли файл локализации для указанного домена (ключа перевода). |
is_user_logged_in() | Функция проверяет авторизован ли пользователь (вошел ли пользователь под своим логином). Возвращает true, если пользователь авторизован и false, если нет. Условный тег. |
pings_open() | Проверят разрешено ли текущему посту получать пинги. Условный тег. |
post_exists() | Проверяет существует ли уже запись (пост) с указанным заголовком (post_title). Для проверки, в дополнении к обязательному заголовку можно указать еще: post_content и post_date. |
post_password_required() | Проверяет защищен пост паролем или нет. Также проверяет правильность пароля, если пароль у поста установлен. |
shortcode_exists() | Проверяет зарегистрирован ли указанный шоткод. |
taxonomy_exists() | Проверяет существует ли указанная таксономия. |
term_exists() | Проверяет существует ли указанный элемент таксономии (раздел). Если существует, возвращает ID или массив идентификаторов этого элемента. |
term_is_ancestor_of() | Проверяет является ли второй термин дочерним к первому (проверяются все уровни вложенности). Условный тег. |
wp_attachment_is() | Проверяет является ли указанное вложение: картинкой, аудио или видео. Возвращает true/false. |
wp_attachment_is_image() | Проверяет является ли текущая запись вложением-картинкой. Условный тег. |
wp_is_mobile() | Проверяет не с мобильного ли устройства зашел пользователь. Условный тег. |
wp_is_post_autosave() | Определяет является ли указанная запись авто-сохранением. |
wp_script_is() | Определяет был ли скрипт зарегистрирован или добавлен в очередь на вывод, или выведен на экран, или ожидает вывода. |
wp-kama.ru
Полноценно используем условие if, условные теги WordPress
Довольно распространенный ступор при разработке темы для WordPress, как пользоваться конструктором условий if else, как правильно их задать и как их вообще использовать в WordPress. Чтобы миллионы пользователей не сходили с ума в поисках решений, WordPress, так сказать, создал условные теги о использовании которых сегодня пойдет речь.
Стандартная конструкция условия выглядит следующим образом:
<?php if(условие) : echo 'good'; else : echo 'bad'; endif; ?>С одной стороны все понятно, а с другой стоит вопрос как правильно сформулировать условие, чтобы WordPress понял, то чего мы от него хотим 🙂 поехали:
1. Главная страница
Часто хотим, чтобы определенная информация выводилась только на главной странице. Для решения можно создать в папке Вашей темы файл home.php или в файл index.php внести следующее условие:
<?php if(is_home()) { ?> <div> ....Здесь выводим информацию, которую мы хотим видеть на главной странице </div> <?php } ?>2. Проверяем рубрики
Зададим такое условие: Если мы находимся в рубрике WordPress, то выведем фразу «Вас приветствует, WordPress!», а если нет то фразу «Добро пожаловать, на наш сайт!»
<?php if(is_category('id')) : echo "Вас приветствует, WordPress!"; else : echo "Добро пожаловать, на наш сайт!"; endif; ?> /*Можно и такой схемой*/ <?php if(is_category('id')) { ?> <p>"Вас приветствует, WordPress!"</p> <?php } else { ?> <p>Добро пожаловать, на наш сайт!"</p> <?php } ?>Здесь и дальше в качестве идентификатора рубрики(метки) или записи(страницы) я буду использовать id — его можно узнать в панели управления сайтом. Если Вы пишете условия для рубрик(меток) то смотрите id на странице рубрик(меток), а если записей(страниц) — то на странице всех записей(страниц)… паника). Как все-таки узнать?, — смотрите иллюстрацию:
Идем далее по условиям связанных с рубриками и зададим следующее: «Если запись находится в рубрике WordPress, то вывести слова — Статья из рубрики WordPress»:
<?php if(in_category('id')) : echo 'Статья из рубрики WordPress'; endif; ?>И еще такой финт 🙂 допустим нам нужно условие для проверки нескольких рубрик, тогда условия будут иметь вид:
<?php if(is_category(array(1,2,34,48)) or in_category(array(1,2,33,50))) : ?> <p>выведем то, что нам нужно</p> <?php endif; ?>3. Проверяем метки
Метки — крутой классификатор внутри рубрик. Рассмотри несколько примеров, как их можно проверить.
Задача: Если запись имеет метку "plugin", то вывести фразу — WordPress Plugin
Решение:
<?php if(has_tag('plugin')) : echo 'WordPress Plugin'; endif; ?>Задача: Если находимся на странице метки "plugin", то вывести фразу — Коллекция плагинов WordPress.
Решение:
<?php if(is_tag('plugin')) : echo 'WordPress Plugin'; endif; ?>Примечание: в работе с условиями меток лучше пользоваться ярлыком метки, а не ее идентификатором.
Заключение
Я рассмотрел основные условные теги, если у Вас есть какие-то вопросы задавайте их в комментариях! Удачного использования!
www.howtomake.com.ua
Условные теги в WordPress: Финал
Это был долгий пути, но мы всё преодолели и подошли к концу. Я надеюсь, что информация предоставленная в данной серии уроков была увлекательна и полезна.
Что мы изучили
В первой части мы познакомились с понятием условных тегов, а так же узнали какую роль они играют в создании тем и плагинов для 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-а в таблице Users: 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()
- Проверка файла установки блога: is_blog_installed()
- Является ли текущий пользователь «супер администратором»: is_super_admin()
- Является ли текущая страница — отдельной “страницей”: is_page()
В четвёртой:
- Является ли страница, страницей архива по месяцам: is_month()
- Проверка фичи в теме: current_theme_supports()
- Проверка активности плагина: is_plugin_active()
- Является ли URL адресом вложения: is_local_attachment()
- Является ли страница архивом по промежутку времени: is_time()
- Проверка локали (справа-налево): is_rtl()
- Является ли страница, страницей архива таксономии: is_tax()
- Является ли страница, страницей вложений: is_attachment()
- Проверка существования термина: term_exists()
- Проверка наличия термина у поста: has_term()
- Проверка комментария trackback: is_trackback()
- Проверка активности опции Multisite: is_multisite()
- Является ли страница архивом типов постов: is_post_type_archive()
В пятой:
- Является ли блог основным в вашей WordPress сети: is_main_site()
- Проверка активности собственного меню: has_nav_menu()
- Проверка активности плагина в мультисайте: is_plugin_active_for_network()
- Проверка активности комментариев: comments_open()
- Проверка наличия виджетов в сайдбаре: is_dynamic_sidebar()
- Проверка наличия нескольких авторов: is_multi_author()
- Проверка активности пинга: pings_open()
- Проверка вывода фида: 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()
- Отображена ли панель инструментов: is_admin_bar_showing()
- Является ли страница дневным архивом: is_day()
- Используется ли сайдбар: is_active_sidebar()
- Проверка наличия пользователя в таблице Users по его имени: username_exists()
- Является ли страница анонсом поста: is_preview()
- Проверка состояния скрипта: wp_script_is()
- Проверка статуса стилей: wp_style_is()
- Проверка факта иерархичности таксономии: is_taxonomy_hierarchical()
Бонус: три плагина для удобной работы с условными тегами
А теперь небольшой бонус: описание трёх плагинов, который помогут в работе с уловными тегами!
Widget Logic
Рейтинг 4.3 и миллион загрузок сделали плагин Widget Logic одним из самых популярных дополнений. И это абсолютно понятно, ведь с его помощью можно легко и просто создавать отдельные сайдбары при различных условиях.
Логика данного плагина проста: под каждым виджетом в панели управления вставляется небольшое поле ввода в которое можно ввести условный тег так, как будто вы вводили его в условие if. Будьте осторожны: Данный плагин использует функцию EVAL. Это значит, что любой PHP код вставленный в этот блок может быть выполнен. Любой. Будьте бдительны.
Script Logic
Script Logic предназначен для управления вашими JavaScript файлами — а именно вызовом их подключения с помощью функции wp_enqueue_script(). Данный плагин позволяет подгружать различные скрипты в зависимости от того или иного условия. В нутре плагина так же используется функция EVAL, так что будьте осторожны.
Conditional Shortcodes
Помните пример, который мы рассматривали во время изучения условного тега 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()
Использование сводится к работе с шорткодом: поместите условный тег в квадратные скобки и укажите параметры.
Конец
Данная серия уроков была не проста, но очень познавательна. Надеюсь эти знания вам пригодятся.
golo.pro
Условные тэги в Wordpress | SEO 73: дневник вебмастера
Пока создавал и доводил до ума тему узнал много интересного. Сейчас расскажу про условные тэги.
Это такие функции, которые знает WordPress, возвращающие булево значение (thue и false). Кто знаком с PHP или хотя бы C++ следующий абзац могут пропустить.
Применяться условные тэги могут так: if (условние) { некоторые действия}. Можно применять операторы “и” ( && ) и “или” ( || ). И еще отрицание ( ! ), забыл совсем . Например так действия будут выполняться при обоих условиях: if (условие 1 && условие 2) {…}. С помощью круглых скобок можно составлять сложные конструкции. Например, tесли требуется, чтобы либо выполнилялось условия1 и не выполнялось условие 2, либо выполнилось условие 3 код должен выглядеть так: if ((условие 1 && (!условие 2)) || условие 3 ){…}.
Вернемся к самим условным тэгам. Самый известный из них, наверное, is_home(). Он возвращает true, если это страница где последние посты (по умолчанию главная страница).Похожий условный тэг is_front_page() выдает true, если страница главная и ему не важно, страница с постами это или статическая.
is_admin() – если админкаis_single() – если пост отображается отдельно. У этого тэга есть параметры. is_single(’76’) – если отображается пост с ID 76. is_single(‘Мой пост’) – если отображается пост с заголовком “Мой пост”. is_single(‘my-post’) – если пост с коротко ссылкой вида http://…/my-post . Если нужно, чтобы выполнилось хотя бы одно из условий, то используют массив: is_single(array(76,’my-post’,’Мой пост’)). Условий этих может быть сколько угодно.
comments_open() – если комментарии открыты. Полезно использовать с другими тэгами, т.к. у меня почему-то выдал true на главной.pings_open() – если разрешены пинги.
is_page() – если статическая страница. Параметры такие же, как у is_single().
is_category() – если есть категории. Параметры такие же как и в предыдущих двух случаях.
is_tag() – если отображается список постов с одним тэгом. is_tag (‘Мой тэг’) – если текст тэга соответствует заданному параметру. Так же и с самой ссылкой. Так же и как в других случаях в качестве параметра можно задать массив.has_tag() – если посту присвоены тэги. Параметры как в предыдущем случае.
is_author() – если отображается список постов одного автора. В качестве параметров ID, имя и ник. Можно использовать массив.
is_archive() – если архив.Если архив, основанный на дате, то для его определения используется is_date(). И is_year(), is_month(), is_day(), is_time(), если архив по годам, месяцам, дням и времени(по часам, минутам и секундам) соответственно.
is_search() – если страница поиска
is_404() – если ошибка 404 (нет такой страницы)
is_paged() – если все посты не умещаются на главную страницу
is_attachment() – если отдельная страница прикрепленного файла
is_preview() – если отображается неопубликованный пост в режиме предпросмотра.
JustFor вернулся и написал пост о том, как скормить Сапе как можно больше страниц. 9seo обозревает блогосферу.
seo73.ru