Условные теги в WordPress: 1-13
В этой статье мы пройдёмся по фундаментальным условным тегам.
Давайте начнём!
1. Является ли текущая страница главной": is_home()
Проверить является ли текущая страница главной можно с помощью условного тега is_home()
.
Параметры
Не принимает параметров.
Пример использования is_home()
Скажем, вы хотите поприветствовать пользователей на главной странице. Вот как можно это сделать:
<?php if ( is_home() ) { _e( 'Welcome to my great blog!', 'translation-domain' ); } ?>
2. Является ли текущая тема дочерней: is_child_theme()
Возможно вам понадобится проверить является ли текущая тема дочерней. Для этого можете воспользоваться условным тегом is_child_theme()
, который вернёт TRUE
или FALSE
.
Параметры
Данный тег не принимает параметров.
3. Проверка принадлежности поста к определённой категории: in_category()
Обычно, если вы используете WordPress, то присваиваете своим постам те или иные категории. К примеры: добавляете особый класс или вовсе скрываете посты из общего листинга. Условный тег in_category()
можно использовать для проверки принадлежности поста той или иной категории.
Параметры
Данный тег принимает несколько параметров:
$category
(массив/строка, обязателен): ID категории, название, слаг или массив из указанных параметров. (По умолчанию: нет значения)$post
(объект/целое, не обязателен): Пост (ID или объект) для проверки. (По умолчанию: текущий пост)
Использование in_category()
К примеру на вашем блоге есть куча категорий, включая "Анонсы". Для того чтобы каким-то образом выделить посты, относящиеся к данной категории можно сделать следующее:
<?php // стандартный цикл. if ( have_posts() ) { while( have_posts() ) { the_post(); if ( in_category( '7' ) ) { ?> <div class="post post-announcement"> <?php } else { ?> <div class="post"> <?php } ?> <h2> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h2> <div class="post-content"> <?php the_content(); ?> </div> </div><!-- .post --> <?php } } else { echo '<p>' . __( 'Sorry, no posts matched your criteria.', 'translation-domain' ) . '</p>'; } ?>
4. Проверка использования "Шаблонной страницы: is_page_template()
Шаблонные страницы позволяют легко и просто определить какая структура будет у ваших страницы. Благодаря тегу is_page_template()
, вы можете определить используется ли на текущей странице какой-то шаблон.
Параметры
Данный тег принимает только один параметр:
$template
(строка, не обязателен): название шаблона с расширением. (По умолчанию: нет значения)
5. Является ли текущая страница архивом: is_archive()
В WordPress существует множество различного рода архивных страниц: дат, рубрик, тегов, авторов... Однако если вам нужно определить является ли текущая страница - страницей любого архива, можете воспользоваться тегом is_archive()
.
Параметры
Данный тег не принимает параметров.
Использование is_archive()
К примеру вы хотите несколько преобразовать названия постов на архивных страницах. Решение:
<?php add_filter( 'the_title', 'alter_title_in_archives' ); function alter_title_in_archives( $title ) { if ( is_archive() && is_main_query() ) { return __( 'Archive', 'translation-domain' ) . ' – ' . $title; } return $title; } ?>
6. Является ли страница архивом дат: is_date()
Как было указано ранее существует множество видов архивных страниц, и архив дат не является исключением. Архив дат может делить данные по годам, месяцам и дням; если вам необходимо определить является ли текущая страница - страницей архива дат, то воспользуйтесь тегом is_date()
.
Параметры
Не принимает параметров.
7. Проверка активности виджета: is_active_widget()
Создание виджетов дело незамысловатое, а вот проверка активен виджет или нет можно осуществить с помощью условного тега is_active_widget()
.
Параметры
Данный тег принимает четыре параметра:
$callback
(строка, не обязателен): колбэк. (По умолчанию:FALSE
)$widget_id
(целое число, не обязателен): ID виджета. (По умолчанию: нет значения)$id_base
(строка, не обязателен): ID виджета, созданного в результате наследования отWP_Widget
. (По умолчанию: нет значения)$skip_inactive
(булево значение, не обязателен): Включать неактивные виджеты в проверку или нет. (По умолчанию:TRUE
)
Использование is_active_widget()
К примеру вам нужно подключить виджет в том случае если активен jQuery. Сделать это можно вот так:
<?php //источник : http://codex.wordpress.org/Function_Reference/is_active_widget if ( is_active_widget( false, false, $this->id_base, true ) ) { wp_enqueue_script( 'jquery' ); } ?>
8. Является ли страница страницей одного поста: is_single()
Как проверить является ли текущая страница - страницей одного поста? В этом вам может помочь один из самых популярных тегов is_single()
. Благодаря ему можно отследить пост любого типа, за исключением вложений и отдельных страниц. Для более конкретной проверки можно указать ID поста.
Параметры
Данный тег принимает один параметр:
$post
(массив/строка, не обязателен): ID поста, название, слаг или массив из перечисленных значений. (По умолчанию: не задан)
9. Проверка существования email-а в таблице Users: email_exists()
Если вам необходимо проверить существование какого-то email-а в таблице Users, то можно воспользоваться условным тегом email_exists()
.
Данный тег входит в тройку, которые не возвращают TRUE
в случае успеха, а вместо этого ID пользователя, которому принадлежит email.
Параметры
Данный тег принимает один параметр:
$email
(строка, не обязателен): проверяемый email адрес. (По умолчанию: не задан)
Использование email_exists()
Предположим что вы создаёте плагин, который формирует список из почтовых адресов пользователей и позволяет вводить дополнительные адреса в специальных полях. В этих условиях вы хотите пресечь ситуацию, когда пользователь может удалить главный email. Вот как это сделать:
<?php $email_address = get_email_from_some_function(); if ( email_exists( $email_address ) ) { wp_die( __( 'Sorry champ, you can\'t delete a user from this list.', 'translation-domain' ) ); } ?>
10. Состоит ли тип поста в иерархии: is_post_type_hierarchical()
Подобно созданию иерархии страниц и под-страниц вы можете создать точно такую же иерархию для типов постов. С помощью тега is_post_type_hierarchical()
вы можете проверить состоит ли тип поста в иерархии или нет.
Параметры
Данный тег принимает один параметр:
$post_type
(строка, обязателен): название типа поста. (По умолчанию: не задан)
11. Проверка на то, что пост "прикреплен": is_sticky()
Прикреплённый пост - это пост, который остаётся вверху страницы несмотря на то, когда он был опубликован. Если вы хотите каким-то образом выделить этот пост, то определить прикреплён ли он можно с помощью условного тега is_sticky()
.
Параметры
Данный тег принимает один параметр:
$post_id
(строка, не обязательный): ID поста. (По умолчанию: не задан)
Использование is_sticky()
К примеру вы хотите отобразить ленточку, на прикреплённом посту. Вот как это сделать:
<?php if ( is_sticky() ) { echo '<div class="sticky-ribbon"></div>'; } ?>
12. Проверка на открытую панель администрирования: is_admin()
Для того чтобы узнать где мы находимся: на фронт-энде или бэк-энде, следует использовать тег is_admin()
.
Параметры
Данный тег не принимает параметров.
13. Является ли страница "Архивом рубрики": is_category()
Если вы хотите определить является ли текущая страница архивом рубрики, то вам следует использовать тег is_category()
. В качестве параметра можно передать категорию или массив из категорий. Если не задать данный параметр, то будет передан TRUE
, что означает положительную реакцию на любую страницу архива.
Параметры
Данный тег принимает только один параметр:
$category
(строка/массив, не обязательный): ID категории, название, слаг или массив из перечисленных значений. (По умолчанию: не задано)
Пример использования is_category()
К примеру вы ходите включить на странице отображение стороннего блока с новостями, блока в случае, если текущая страница - это архив. Вот как это делается:
<?php if ( is_category() ) { // Загрузить sidebar-news.php. get_sidebar( 'news' ); } else { // Загрузить sidebar.php. get_sidebar(); } ?>
Вывод
В этой части мы рассмотрели 13 из 65 условных тегов. В оставшихся статьях нам предстоит познакомиться ещё с 52.
До встречи в следующей части!
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-1-to-13--cms-22308
Перевел: Станислав Протасевич
Урок создан: 10 Июня 2015
Просмотров: 7183
Правила перепечатки
5 последних уроков рубрики "Wordpress"
-
Почему WordPress лучше чем Joomla ?
Этот урок скорее всего будет психологическим, т.к. многие люди работают с WordPress и одновременно с Joomla, но не могут решится каким CMS пользоваться.
-
Про шаблоны WordPress
После установки и настройки движка нам нужно поработать с дизайном нашего сайта. Это довольно долгая тема, но мы постараемся рассказать всё кратко и ясно.
-
Самые первые настройки после установки движка WordPress
Сегодня мы вам расскажем какие первые настройки нужно сделать после установки движка WordPress. Этот урок будет очень полезен для новичков.
-
10 стратегий эффективного продвижения статей в блогах на WordPress
Продвижение статей в блоге - непростая задача. Часто бывает, что вы пишете действительно хороший контент, включаете визуальные эффекты, делаете правильные корректировки SEO, но это не дает ожидаемого результата.
-
Топ WordPress альтернатив для создания персонального сайта
Нужен персональный сайт, но вы не хотите задействовать WordPress? Тогда данная подборка для вас.