Условные теги WordPress
Условные теги в WordPress и все что с ними связано
Введение в понятие «условные теги WordPress» и короткое описание всех таких тегов (функций).
Многие наверное знают, что такое условные теги в WordPress, тогда как, другие возможно только слышали о них, а может даже и не слышали. Для тех кто не знает, что это такое, будет полезно ознакомится с тем что написано ниже.
Итак. «Условные теги» (Conditional Tags) называются так, потому что проверяю выполняется ли кое-либо условие. На самом деле условные теги — это обычные PHP функции WP, а называют их тегами, чтобы как-то выделить из числа обычных функций, ведь они созданы специально для удобной настройки и создания шаблонов (тем).
Характеристики условных тегов в WordPress
- Каждый из тегов описанных ниже создан для проверки определенного условия(й).
- Некоторые условные теги могут принимать определенные параметры для проверки. Пример, is_page(20); проверяется ID текущей страницы, если он равен 20 то условие выполняется (тег срабатывает).
- Любой условный тег возвращает всего одно логическое значение: «Правда» (true) или «Ложь» (false), основываясь на котором можно выполнять или не выполнять что-либо.
Небольшой пример использования условных тегов: нам нужно вывести ссылку в подвале, причем сделать это надо только на главной странице. Для этих целей в WordPress предусмотрен условный тег — is_front_page(), или is_home(), которые проверяют на какой странице находится посетитель и если это главная страница возвращается значение true. Посмотрим реализацию этой задачи в коде:
<?php if ( is_front_page() ){ ?> <a href="http://site.ru">Текст ссылки</a> <?php } ?>
Вместо HTML может быть любой PHP код, который будет выполнятся только на главной странице.
Вместо is_front_page() обычно используется is_home(). Разницу смотрите ниже.
Теперь, переходим к самим условным тегам.
Список Условных тегов WordPress
[содержание h4 dt]
- is_home()
- Основная страница. Тег возвращает true, если это основная страница блога. Под основной понимается контент установленный для главной страницы, т.е. если установить в настройках (параметры > чтение) показ Постоянной страницы на главной странице, то этот тег будет работать только для этой установленной Постоянной страницы, а не для главной.
- is_front_page()
- Главная страница. Тег возвращает true, если вы на главной странице, независимо от того, что установлено в настройках.
Страницы пагинации (/page/2 и т.д.) не учитываются. - is_single()
- Страница поста/записи/статьи, т.е. страница типа post. Функция принимает параметры: ID поста, Заголовок поста, Слаг поста или массив из любых этих параметров. Пример записи:
if ( is_single() ) { ... } // сработает для любого поста if ( is_single(10) ) { ... } // сработает если это пост ID которого равен 10 if ( is_single('Привет мир') ) { ... } // сработает если это пост с заголовком "привет мир" if ( is_single('privet_mir') ) { ... } // сработает если это пост со слагом "privet_mir" // Вариант с массивом if ( is_single( array('10','Привет мир','new_post') ) ) { ... } // сработает если это пост у которого ID равен 10, или заголовок "Привет мир", или слаг "new_post".
- is_page()
- Страница Постоянной страницы, т.е. страница типа page. Функция принимает такие же параметры как и is_single(): ID страницы, Заголовок страницы, Слаг страницы или массив из любых этих параметров.
- is_page_template()
- Если это страница шаблона для Постоянной страницы. Функция может принимать параметр название файла шаблона. Пример:
if ( is_page_template() ){ ... } // сработает на постоянной странице, для которой используется отдельный шаблон if ( is_page_template('my_page.php') ){ ... } // сработает на постоянной странице, для которой используется отдельный шаблон с названием файла my_page.php
- is_singular()
- Любая одиночная страница (общий условный тег), к ним относятся посты и постоянные страницы. Это короткая запись такой проверки:
if( is_page() or is_post() )
. - is_year()
- Архив за год (site.ru/2010)
- is_month()
- Архив за месяц (site.ru/2010/06)
- is_day()
- Архив за день (site.ru/2010/06/02)
- is_time()
- Архив по времени
- is_date()
- Страница любого типа даты (общий условный тег). Это короткая запись такой проверки:
if( is_year() or is_month() or is_day() or s_time() )
- is_author()
- Страницы с выводом постов автора(ов). Функция принимает параметры: ID автора, Имя автора и Ник автора. Так же, можно передать сразу несколько параметров в массиве. Пример записи:
if ( is_author() ) { ... } // сработает для любых страниц автора if ( is_author(10) ) { ... } // сработает если отображается страница автора с ID равным 10 if ( is_author('Виктор') ) { ... } // сработает если отображается страница автора с именем "Виктор" if ( is_author('Viktor') ) { ... } // сработает если отображается страница автора с Ником "Viktor" // Вариант с массивом if ( is_author( array('10','Виктор','Viktor') ) ) { ... } // сработает если отображается страница автора с ID 10, или Именем "Виктор", или Ником "Viktor".
- is_archive()
- Если это любая из страниц типа: категорий, меток, дат, авторов, таксономий (в WP3.0). Общий условный тег.
- is_paged()
- Если страницы пагинации (/page/2 или /page/3 и т.д.)
- is_category()
- Если страница категории.
- is_tag()
- Если страница метки. Функция может принимать параметры: Слаг(название) метки или массив из названий. Пример:
if ( is_tag() ) { ... } // сработает для любых страниц меток/тегов if ( is_tag('wordpress') ) { ... } // сработает для страницы метки/тега Слаг (название), которого равен 'wordpress' // вариант с массивом if ( is_tag( array('wordpress','tag_name' ) ) { ... } // сработает для страницы метки/тега Слаг (название), которого равен wordpress или tag_name
- is_search()
- Если страница результатов поиска.
- is_404()
- Если страница ошибки 404.
- is_comment_feed()
- Если страница RSS фида комментариев.
- is_attachment()
- Если это отдельная страница прикрепленного файла (обычно картинки).
Менее популярные условные теги WordPress (используются редко или предназначены не для шаблонов)
- is_tax()
- Если это страница любой таксономии (стандартно это страницы категорий или меток). может принимать два параметра, название таксономии и название элемента текущей таксономии:
if ( is_tax('category') ) { ... } // сработает, если в запросе открываемой страницы присутствует таксономия category. Тоже самое, что is_category() if ( is_tax('category','category_slug') ) { ... } // сработает, если это страница категории, слаг(название) которой равно category_slug. Т.е. для конкретной категории. // можно передавать массивы if ( is_tax( array('category','post_tag') , array('tax_name1','tax_name2') ) ) { ... } // сработает, если это страница категории или метки, название которой равно tax_name1 или tax_name2
- is_sticky()
- Проверяет прилеплен ли пост. Принимает параметр ID поста. Прилепленные посты должны отображаться вначале цикла loop. Если ID поста не передан в эту функцию, то берется текущий ID из цикла Loop.
- is_comments_popup()
- Если это всплывающее окно комментария.
- is_admin()
- Если это страница админки блога.
- is_preview()
- Если это страница предпросмотра поста или постоянной страницы.
- is_trackback()
- Если текущий запрос (query) — это запрос по трэкбекам.
- have_posts()
- Если текущий запрос ВП вернул данные для построения цикла loop, проще говоря, если есть посты на странице.
- is_plugin_page()
- Если текущая страница была создана плагином.
- is_user_logged_in()
- Срабатывает если юзер заголинен.
- is_feed()
- Если страница RSS фида постов.
Условные теги и проверки предназначенные для отдельных страниц или постов
- has_tag()
- Если у поста есть метки. Функция может принимать параметр название метки или массив с несколькими названиями меток. Пример:
if ( has_tag() ) { ... } // сработает если у поста есть хотя бы одна метка if ( has_tag('tag_name') ) { ... } // сработает если у поста есть метка с названием tag_name // Вариант с массивом if ( has_tag( array('tag_name','tag_name2') ) ) { ... } // сработает если у поста есть метка с названием tag_name или tag_name2
- in_category(’10’)
- Если запись находится в категории ID которой равен 10. Можно использовать внутри цикла Loop.
- have_comments()
- Если у поста есть комментарии.
- pings_open()
- Если пост принимает уведомления, т.е. открыты пинги.
- $wp_query->query_vars[cpage]
- если это страница пагинации комментариев. (/comment-page-1 /comment-page-2 и т.д.)
- $post->post_excerpt
- Если у поста есть «Цитата» (excerpt).
- $post->post_parent==»20″
- Если ID родительской страницы равен 20. Работает только для постоянных страниц. Может также пригодится для вложений (файлы).
WordPress codex по Русски на wp-kama.ru
No Comments