Условные теги в WordPress: 27-39

В этой серии уроков мы знакомимся с основными условными тегами, доступными в WordPress. В четвёртой части продолжим свой обзор.

Начнём!

27. Является ли страница, страницей архива по месяцам: is_month()

Архив по месяцам, наверное, одна из самых часто-используемых страниц в WordPress. Если нужно осуществить проверку, то можно смело использовать условный тег is_month().

Параметры

Данный тег не принимает параметров.

28. Проверка фичи в теме: current_theme_supports()

Во время разработки плагина, вам может понадобится проверить поддерживает ли тема миниатюры, форматы постов, собственные заголовки или виджеты. С помощью тега current_theme_supports() можно осуществить проверку на наличие нужной фичи.

Параметры

Данный тег принимает один параметр:

  • $feature (строка, не обязательный): Название фичи. (По умолчанию: не задано)

Возможные фичи:

  • 'post-thumbnails'
  • 'post-formats'
  • 'custom-header'
  • 'custom-background'
  • 'menus'
  • 'automatic-feed-links'
  • 'editor-style'
  • 'widgets'
  • 'html5'

Пример использования current_theme_supports()

К примеру мы работаем над плагином для возможности добавления собственного фонового изображения в тему ("custom backgrounds"). Если другие темы не будут поддерживать данную фичу, то мы выведем соответствующее сообщение об ошибке:

<?php

add_action( 'admin_notices', 'custom_bg_feature_warning' );

function custom_bg_feature_warning() {

    if ( ! current_theme_supports( 'custom-background' ) ) {

    echo '<div class="error">
              <p>' . __( 'This plugin requires a theme with the "custom backgrounds" feature enabled.', 'translation-domain' ) . '</p>
          </div>';

    }

}

?>

29. Проверка активности плагина: is_plugin_active()

Во время нахождения в панели администрирования можно воспользоваться тегом is_plugin_active(), который поможет определить активность плагина. Это может быть полезно, если вы разрабатываете вторичные плагины для уже существующих (как в случае WooCommerce) или фрэймворков, установленные как плагины (к примеру Redux Framework).

Параметры

Данный тег принимает только один параметр:

  • $plugin (строка, обязательна): Название плагина или под-папки. (По умолчанию: не задан)

30. Является ли URL адресом вложения: is_local_attachment()

Как определить является ли какой-то URL адресом вложения? Для этого можно использовать условный тег is_local_attachment().

Параметры

Данный тег принимает один параметр:

  • $url (строка, обязателен): URL для проверки. (По умолчанию: значение не задано)

Пример использования is_local_attachment()

Делаем проверку, является ли URL локальным вложением:

<?php

$url = some_url_generator_function();

if ( is_local_attachment( $url ) ) {

    _e( 'Yep, this is a local attachment!', 'translation-domain' );

} else {

    _e( 'Nope, this is not a local attachment.', 'translation-domain' );

}

?>

31. Является ли страница архивом по промежутку времени: is_time()

Знаете ли вы, что в WordPress существуют архивы, основанные на часах, минутах и даже секундах? Их можно создать благодаря классу WP_Query. Если вам нужно отследить данный факт, то можете воспользоваться условным тегом is_time().

Параметры

Данный тег не принимает параметров.

32. Проверка локали (справа-налево): is_rtl()

Во многих восточных языках чтение осуществляется справа-налево. Если ваш сайт предусматривает массовое посещение таких пользователей, то благодаря тегу is_rtl() можно проверить текущую локаль.

Параметры

Данный тег не принимает параметров.

Пример использования is_rtl()

Многие верстальщики создают отдельные таблицы стилей для страниц, где используется язык, который следует читать справа-налево:

<?php

add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_styles' );

function mytheme_enqueue_styles() {

    if ( is_rtl() ) {

        wp_enqueue_style( 'style-rtl', plugins_url( '/css/style-rtl.css', __FILE__ ) );

    }

}

?>

33. Является ли страница, страницей архива таксономии: is_tax()

Для проверки специфики, указанной в заголовке можно использовать is_tax(). По умолчанию используются все теги, однако в параметрах можно указать отдельные таксономии и теги.

Параметры

Данный тег принимает следующие параметры:

  • $taxonomy (массив/строка, не обязателен): слаг таксономии или массив слагов. (По умолчанию: не задан)
  • $term (массив/строка/целое число, не обязателен): ID термина, название, слаг или массив из перечисленных значений. (По умолчанию: значение не задано)

34. Является ли страница, страницей вложений: is_attachment()

Иногда может возникнуть необходимость проверки типа текущей страницы: является ли она страницей вложений. Условный тег is_attachment() вернёт TRUE если это так и FALSE если нет.

Параметры

Данный тег не принимает параметров.

Пример использования is_attachment()

К примеру вы хотите отобразить ссылку "Назад к посту" где-то возле блока вложений:

<?php

if ( is_attachment() ) {

    // Get attachment's parent.
    $parent = get_post_field( 'post_parent', $id );

    // Get permalink of the parent post.
    $parent_link = get_permalink( $parent );

    // Echo the link.
    echo '<a href="' . $parent_link . '" class="parent-post-link">' . __( 'Back to the post', 'translation-domain' ) . '</a>';

}

?>

35. Проверка существования термина: term_exists()

Условным тегом term_exists() можно осуществить проверку наличия термина в таксономии и получить его ID (если таксономия не задана) или массив таксономий. В случае, если термина не существует, то будет возвращён 0 или NULL.

Параметры

Данный тег принимает три параметра:

  • $term (строка/целое число, обязателен): Название термина или ID. (По умолчанию: не задан)
  • $taxonomy (строка, не обязателен): Название таксономии. (По умолчанию: Не задано)
  • $parent (целое число, не обязателен): ID термина-родителя. (По умолчанию: 0)

36. Проверка наличия термина у поста: has_term()

Для проверки наличия какого-то термина у поста следует использовать условный тег has_term() в пределах какой-то таксономии.

Параметры

Данный тег принимает три параметра:

  • $term (массив/строка/целое число, не обязателен): название термина, ID, слаг, или массив. (По умолчанию: пустой)
  • $taxonomy (строка, обязателен): название таксономии. (По умолчанию: пустой)
  • $post (объект/целое число, не обязателен): Проверяемый пост. (По умолчанию: NULL)

Пример использования has_term()

К примеру у вас интернет магазин, и вам нужно сообщить о каком-то событии всем пользователям, которые связаны с термином Dell:

<?php

if ( has_term( 'dell', 'laptops' ) ) {

    echo '<div class="above-product-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'We\'re switching suppliers for Dell laptops, so the shipments will be delayed until next week. Sorry about that!', 'translation-domain' ) . '</div>';

}

?>

37. Проверка комментария trackback: is_trackback()

Является ли комментарий типа "trackback"? Условный тег is_trackback() в помощь!

Параметры

Данный тег не принимает параметров.

38. Проверка активности опции Multisite: is_multisite()

Multisite не самая популярная опция. Если же нужно осуществить проверку на её активность, то следует воспользоваться тегом is_multisite().

Параметры

Данный тег не принимает параметров.

Пример использования is_multisite()

К примеру у вас есть плагин, который будет использовать другие классы, если активен режим Multisite:

<?php

if ( is_multisite() ) {

    require_once( 'path/to/multisite-class.php' );

}

?>

39. Является ли страница архивом типов постов: is_post_type_archive()

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

Параметры

Данный тег принимает один параметр:

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

Итог

В этой части мы рассмотрели ещё одну пачку из 65 условных тегов в WordPress. Нам осталось добить ещё 26.

До встречи в следующей части!

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-14-to-26--cms-22309
Перевел: Станислав Протасевич
Урок создан: 23 Июня 2015
Просмотров: 4969
Правила перепечатки


5 последних уроков рубрики "Wordpress"

^ Наверх ^