Условные теги в WordPress: полный список и примеры использования

УСЛОВНЫЕ ТЕГИ В WORDPRESS

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

Условные теги получили свое название потому, что они проверяют, выполняется ли определённое условие. На самом деле, это вспомогательные функции PHP в WordPress, которые называются "теги", чтобы отличать их от других функций PHP.

Большинство условных тегов созданы для удобного выполнения проверок различных условий, таких как: находимся ли мы на главной странице сайта, вошел ли пользователь в систему и т.д.

Основные характеристики условных тегов в WordPress

  • Каждый тег создан для проверки конкретного условия. В общем, любую функцию, начинающуюся с is_, можно назвать условным тегом.
  • Некоторые условные теги могут принимать параметры. Например, is_page( 20 ) проверяет ID текущей страницы. Если ID равен 20, то условие выполнено (тег сработал).
  • Любой условный тег возвращает логическое значение: true или false. Исходя из этого ответа, можно выполнить какое-то действие или нет.

Условные теги тесно связаны с иерархией файлов темы.

ВАЖНО:

Нельзя использовать теги до того, как сработает хук parse_query, что означает, что их следует начинать использовать с хука wp, потому что до этого хука данные, необходимые для работы условных тегов, отсутствуют (глобальные переменные, которые используют условные теги, не заполнены).

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

ПРИМЕР ИСПОЛЬЗОВАНИЯ УСЛОВНЫХ ТЕГОВ

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

if( is_front_page() ){
echo 'Текст ссылки';
}

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

СПИСОК УСЛОВНЫХ ТЕГОВ 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('capability') — проверка прав пользователя
  • have_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

Подробности о некоторых условных тегах:

  • is_home(): Вернет true, если это главная страница блога. Это значит, что будет проверяться содержание, настроенное для главной страницы.

  • is_front_page(): Вернет true, если вы находитесь на начальной странице, независимо от настроек. Пагинируемые страницы (например, /page/2) не учитываются.

  • is_single(): Функция принимает параметры: 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(): Страница поста типа "страница". Принимает такие же параметры, как is_single(): ID страницы, название страницы и так далее.

  • is_singular(): Проверяет любую одиночную страницу, включая посты, страницы и произвольные типы постов.

  • is_archive(): Если это какая-либо тип архивной страницы: категория, метка, дата, авторы и так далее.

РЕДКИЕ УСЛОВНЫЕ ТЕГИ В WORDPRESS

Некоторые условные теги используются редко или не предназначены для шаблонов:

  • is_sticky() — Проверяет, прикреплен ли текущий пост к верху запроса постов на главной странице.
  • is_comment_feed() — Является ли запрос для фида комментариев?
  • is_preview() — Является ли запрос для предварительного просмотра поста или страницы?
  • is_feed() — Является ли запрос для фида?

Эти теги могут быть полезны в зависимости от ваших нужд и структуры сайта.

Leave a Reply

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