Условные теги в WordPress: что это такое

uslovnye-tegi-v-wordpress-2

Условные теги в WordPress. В этой статье я постараюсь объяснить, что такое условные теги в WordPress. Полный список условных тегов можно найти на этой странице. Условные теги названы так потому, что, сюрприз-сюрприз, они проверяют, выполняется ли условие. Фактически, условные теги – это вспомогательные функции PHP в WordPress. Они называются "тегами", чтобы отличать их от других функций PHP. По большей части условные теги предназначены для проверки различных условий, например, находимся ли мы на главной странице сайта, вошел ли пользователь в систему и т.д.

Условные теги в WordPress: что это такое

Особенности условных тегов в WordPress

Каждая метка предназначена для проверки определенного состояния. Грубо говоря, любую функцию, начинающуюся с is_, можно назвать условным тегом. Некоторые условные теги могут принимать параметры. Например, is_page( 20 ) – проверяет ID текущей страницы. Если идентификатор равен 20, условие истинно. С условными тегами тесно связана иерархия файлов темы.

ВАЖНО: теги не должны использоваться до вызова хука parse_query, т.е. они должны использоваться внутри хука wp, потому что до этого хука нет данных для правильной работы условных тегов (глобальные переменные, используемые условными тегами, не заполнены).

Поэтому условный тег не будет работать, если его использовать в файле темы functions.php, потому что он вставляется до применения wp hook. Обычно условные теги в functions.php используются внутри других функций или хуков.

Пример использования Условных тегов

Предположим, нам нужно отобразить ссылку в нижнем колонтитуле и сделать это только на главной странице сайта. Для этого в WordPress есть условный тег is_front_page(), или его эквивалент is_home(). Эти функции возвращают true только в том случае, если страница, на которой находится посетитель, является главной. В коде это выглядит следующим образом:

Вместо HTML может быть PHP-код, который будет выполняться только на главной странице. Вместо is_front_page() может быть is_home(). Это похожие условные теги, смотрите ниже, чтобы увидеть разницу.

Условные теги в WordPress: что это такое

Что такое категории (рубрики) и теги в WordPress?

Список Условных тегов WordPress

Наиболее полный список условных тегов приведен по этой ссылке.

  • is_home() (домашняя страница)
  • is_front_page() (главная страница)
  • is_single() (страница с одним постом)
  • is_page() (стоящая страница)
  • is_page_template() (шаблон страницы)
  • is_singular() (любая отдельная страница)
  • is_year() (годовой архив)
  • is_month() (месячный архив)
  • is_day() (дневной архив)
  • is_time() (архив времени)
  • is_date() (страница любого типа даты)
  • is_author() (страница автора)
  • is_archive() (любая архивная страница)
  • is_post_type_archive() (страница записи архивного типа)
  • is_paged() (страница пагинации)
  • is_category() (страница категории)
  • cat_is_ancestor_of() (является ли один заголовок дочерним для другого)
  • is_tag() (страница тегов)
  • is_tax() (любая страница таксономии)
  • is_search() (страница поиска)
  • is_404() (страница 404)
  • is_attachment() (страница вложения)
  • is_admin() (страница администратора)
  • is_user_logged_in() (пользователь вошел в систему)
  • current_user_can('right') (проверяет права пользователя)
  • has_posts() (имеет_посты для вывода)
  • has_tag() (пост имеет теги)
  • in_category( 10 ) (пост находится в категории 10)
  • have_comments() (пост имеет комментарии)
  • pings_open() (пост имеет открытые уведомления)
  • $wp_query->query_vars[cpage] (страница пагинации комментариев)
  • $post->post_excerpt (у поста есть "Цитата")
  • $post->post_parent == 20 (ID родительской страницы равен 20)

Эта функция принимает параметры: ID поста, заголовок поста, метку поста или массив любых из этих параметров.

is_page() (Constant page) Страница типа page. Эта функция принимает те же параметры, что и is_single(): ID страницы, Заголовок страницы, Флаг страницы, или массив любых из этих параметров. is_page_template() (шаблон страницы)

Условные теги в WordPress: что это такое

Если это страница-шаблон для постоянной страницы. Эта функция может принимать в качестве параметра имя файла шаблона.

is_singular() (любая отдельная страница) Любая отдельная страница, включая посты, постоянные страницы и созданные типы записей. Вот краткая форма этого теста: if( is_page() || is_single() ) . is_year() (архив за год) Архив за год (example.com/2010/2010) is_month() (архив за месяц) Архив за месяц (example.com/2010/06) is_day() (архив за день) Архив за день (example.com/2010/06/02) is_time() (архив по времени) Архив за время. is_date() (любая дата страницы)

Страница с датой (общий условный знак). Это короткая запись из того теста:

Условные теги в WordPress или как сделать чтобы только на одной странице что-то было

Страницы вывода авторских постов. Функция принимает параметры: Идентификатор автора, имя автора и псевдоним автора. Также можно передавать несколько параметров в массиве одновременно. Пример записи:

is_archive() (любая архивная страница) Если это любая из страниц типа: categories, labels, dates, authors, taxonomies (в WP 3.0). Общий условный тег. is_post_type_archive() (страница архива типа записи) Если это страница архива типа записи. Например, у нас есть запись типа knigi и при ее регистрации мы указали архивную страницу, тогда ее Url будет: example.com/knigi . Этот условный тег будет вызван на такой странице. is_paged() (страницы пагинации) Если страница пагинации (/page/2 или /page/3 и т.д.) is_category() (страница категории) Если страница категории. cat_is_ancestor_of() (если одна рубрика является дочерней по отношению к другой) Проверяет, является ли одна рубрика дочерней по отношению к другой (проверяются все уровни ветвления). is_tag() (страница тегов).

Если страница с тегами. Эта функция может принимать параметры: Cinder(имя) тега или массив имен. Пример:

is_tax() (любая страница таксономии)

Если это любая страница таксономии (по умолчанию это страница категории или метки). может принимать два параметра, имя таксономии и имя текущего элемента таксономии:

is_search() (страница поиска) Если страница результатов поиска. is_404() (страница 404) Если страница ошибки 404. is_attachment() (страница вложения) Если отдельная страница для вложенного файла (обычно изображения). is_admin() (страница администратора) Если это страница администратора для блога. is_user_logged_in() (пользователь вошел в систему) Выполняется, если пользователь вошел в систему. current_user_can('right') (проверяет право пользователя) Проверяет право пользователя на выполнение действия. Права пользователя указываются в параметре функции. Полный список разрешений можно найти в коде. Например: if( current_user_can('manage_options') ) < . >- Проверяет, может ли текущий пользователь редактировать опции, обычно пользователь с правами администратора имеет такое право. have_posts() (have posts to output) Если текущий GP-запрос возвращает данные для построения цикла, проще, если на странице есть посты.

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

Следующие условные теги (элементы управления) будут работать только на отдельных страницах, на языке этой статьи, если условия: is_single() , is_page() или is_singular()

Если у сообщения есть теги. Функция может принимать параметр имени тега или массив с несколькими именами тегов. Пример:

in_category( 10 ) (пост находится в категории 10) Если пост находится в категории, ID которой равен 10. Может использоваться в цикле. have_comments() (пост имеет комментарии) Если пост имеет комментарии. pings_open() (уведомления открыты) Если пост принимает уведомления, т.е. пинги открыты. $wp_query->query_vars[cpage](страница пагинации комментариев) Если это страница пагинации комментариев. (/comment-page-1 /comment-page-2, etc.) $post->post_excerpt(post has "Quote") Если в посте есть "Quote" (отрывок). $post->post_parent == 20(ID родительской страницы равен 20) Если ID родительской страницы равен 20. Работает только для постоянных страниц. Также может быть полезен для вложений (файлов).