Условные теги WordPress

Условные теги WordPress

11:40 18 Июнь in Codex
0 Comments

Оригинал статьи

Условные теги в 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 фида постов.

Условные теги и проверки предназначенные для отдельных страниц или постов

Ниже следующие проверки (условные теги) будут работать только на отдельных страницах, говоря языком этой статьи, если выполняются условия is_single(), is_page() или is_singular()
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

Нашли ошибку в тексте? Выделите ее и нажмите Ctrl + Enter
Tags:

WPBuild.Ru

www@artstorm.su
No Comments

Post A Comment