Условные теги в 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
Просмотров: 5629
Правила перепечатки
5 последних уроков рубрики "Wordpress"
-
Почему WordPress лучше чем Joomla ?
Этот урок скорее всего будет психологическим, т.к. многие люди работают с WordPress и одновременно с Joomla, но не могут решится каким CMS пользоваться.
-
Про шаблоны WordPress
После установки и настройки движка нам нужно поработать с дизайном нашего сайта. Это довольно долгая тема, но мы постараемся рассказать всё кратко и ясно.
-
Самые первые настройки после установки движка WordPress
Сегодня мы вам расскажем какие первые настройки нужно сделать после установки движка WordPress. Этот урок будет очень полезен для новичков.
-
10 стратегий эффективного продвижения статей в блогах на WordPress
Продвижение статей в блоге - непростая задача. Часто бывает, что вы пишете действительно хороший контент, включаете визуальные эффекты, делаете правильные корректировки SEO, но это не дает ожидаемого результата.
-
Топ WordPress альтернатив для создания персонального сайта
Нужен персональный сайт, но вы не хотите задействовать WordPress? Тогда данная подборка для вас.