В первой части этой серии статей мы рассмотрели основы условных тегов — что это такое, как их использовать, а также некоторые сценарии, в которых условные теги пригодятся.
Во второй части мы начнем рассмотрение 13 условных тегов, а в пяти статьях (включая эту) мы закончим прохождение всех 65 условных тегов, которые документированы в Кодексе . Обязательно ознакомьтесь с первой частью, если вы еще этого не сделали.
Давайте начнем!
1. Проверка того, находимся ли мы на « is_home()
странице блога»: is_home()
Этот условный тег с плохим названием проверяет, отображается ли страница индекса сообщений блога. В старые времена, когда WordPress был просто «платформой для блогов», под «домашней страницей» подразумевался список ваших последних сообщений в блоге. Но после того, как WordPress превратился в систему управления контентом, имя is_home()
устарело.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_home()
Допустим, вы хотите приветствовать своих посетителей на главной странице. Вот что вы делаете:
1
2
3
4
5
6
7
8
9
|
<?php
if ( is_home() ) {
_e( ‘Welcome to my great blog!’, ‘translation-domain’ );
}
?>
|
2. Проверка, является ли текущая тема is_child_theme()
: is_child_theme()
При разработке с WordPress вам может понадобиться проверить, используется ли дочерняя тема. Если это так, is_child_theme()
тег is_child_theme()
поможет вам, вернув TRUE
или FALSE
когда используется is_child_theme()
тема или нет.
Принятые параметры
Этот условный тег не принимает никаких параметров.
3. Проверка, находится ли сообщение в данной категории: in_category()
В проекте WordPress вы можете захотеть, чтобы сообщения из разных категорий вели себя по-разному. Например, вы можете добавить классы к определенным сообщениям или вообще скрыть эти сообщения из общих списков сообщений. Условный тег in_category()
позволяет вам определять публикации, опубликованные в определенной категории или категориях.
Принятые параметры
Этот условный тег имеет два параметра:
-
$category
(массив / строка, обязательный): ID категории, имя, слаг или их массив. (По умолчанию: нет) -
$post
(объект / целое число, необязательно): сообщение (идентификатор или объект) для проверки. (По умолчанию: текущий пост)
Пример использования для in_category()
Допустим, у вас есть блог с большим количеством категорий, одна из которых — «Объявления», и вы хотите, чтобы обновления появлялись среди других сообщений, поэтому вы хотите добавить пользовательский класс в оболочку сообщений. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<?php
// Standard Loop stuff.
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();
</h2>
<div class=»post-content»>
<?php the_content();
</div>
</div><!— .post —>
<?php }
} else {
echo ‘<p>’ .
}
?>
|
4. Проверка, используется ли «Шаблон страницы»: is_page_template()
Шаблоны страниц — это функция WordPress, которая позволяет вам выбирать, как будут отображаться определенные страницы. С помощью условного тега is_page_template()
вы можете определить, используется ли определенный шаблон страницы (или любой шаблон страницы).
Принятые параметры
Этот условный тег имеет только один параметр:
-
$template
(строка, необязательно): имя шаблона — с расширением. (По умолчанию: нет)
5. Проверка, является ли страница архивной страницей: is_archive()
Существует много видов архивов на веб-сайте WordPress: архивы дат, архивы категорий, архивы тегов, архивы авторов, архивы пользовательских таксономий … Но если вы хотите обнаруживать архивные страницы в целом, is_archive()
— ваш друг: он проверяет, страница архива отображается.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_archive()
Допустим, вы хотите добавить заголовки постов к тексту на страницах архива. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?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’ ) .
}
return $title;
}
?>
|
6. Проверка, является ли страница страницей «Архивы даты»: is_date()
Как я уже говорил, существует много типов архивных страниц, и архивы дат являются одним из них. Архивы дат можно разделить на годовые, ежемесячные и ежедневные архивы; но если вы хотите обнаружить страницы архива даты в целом, вы можете использовать is_date()
тег is_date()
.
Принятые параметры
Этот условный тег не принимает никаких параметров.
7. Проверка, используется ли данный виджет: is_active_widget()
Создание виджетов в WordPress легко и увлекательно, но нам может потребоваться определить, используется ли виджет в интерфейсе или нет. Условный тег is_active_widget()
делает именно это: он проверяет, отображается ли виджет.
Принятые параметры
Этот условный тег имеет четыре параметра:
-
$callback
(строка, необязательно): обратный вызов виджета для проверки. По умолчанию:FALSE
-
$widget_id
(целое число, необязательно): идентификатор виджета. (По умолчанию: нет) -
$id_base
(строка, необязательно): базовый идентификатор виджета, созданного расширением WP_Widget. (По умолчанию: нет) -
$skip_inactive
(логический, необязательный): пропускать неактивные виджеты или нет. (По умолчанию:TRUE
)
Пример использования для is_active_widget()
Допустим, для работы виджета в вашей теме требуется jQuery, и вам нужно поставить его в очередь. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
|
<?php
// source: 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()
Хотите проверить, посещает ли пользователь один пост? Вам может помочь один из самых популярных условных тегов is_single()
. Он может обнаружить любой тип записи, кроме страниц вложений и страниц страниц. И если вы укажете идентификатор сообщения, заголовок или слаг (или их массив), вы также можете обнаружить определенные сообщения.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post
(массив / строка, необязательно): идентификатор поста, заголовок, слаг или их массив. (По умолчанию: нет)
9. Проверка email_exists()
адреса электронной почты в таблице пользователей: email_exists()
Если вам нужно проверить адрес электронной почты, чтобы увидеть, находится ли он в таблице пользователей WordPress, вы можете использовать email_exists()
тег email_exists()
.
Этот конкретный условный тег является одним из трех условных тегов, который возвращает что-то отличное от TRUE
— он возвращает идентификатор пользователя, который зарегистрировался с данным адресом электронной почты.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$email
(строка, необязательно): адрес электронной почты для проверки. (По умолчанию: нет)
Пример использования для email_exists()
Допустим, вы разрабатываете плагин, который создает список адресов электронной почты из адресов электронной почты пользователей и позволяет добавлять и удалять дополнительные адреса электронной почты с помощью пользовательского ввода, но вы хотите предотвратить удаление адресов электронной почты, принадлежащих пользователям. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
|
<?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()
Как и страницы и подстраницы, вы можете определить иерархию для новых пользовательских типов записей в WordPress. А is_post_type_hierarchical()
тег is_post_type_hierarchical()
позволяет вашему коду знать, является ли данный тип поста иерархическим или нет.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post_type
(string, обязательный): имя типа записи. (По умолчанию: нет)
11. Проверка, является ли сообщение « is_sticky()
»: is_sticky()
«Важная запись» — это запись, которая остается в верхней части списка публикаций, независимо от того, когда она была опубликована. И — я собираюсь быть немного дискриминационным здесь — они заслуживают отличного отношения от других, обычных постов. Поэтому, если вы хотите добавить класс записей к прикрепленным публикациям или обрабатывать их по-другому, вы можете заставить свой код обнаруживать их с помощью условного тега is_sticky()
.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post_id
(строка, необязательно): идентификатор записи. (По умолчанию: нет)
Пример использования для is_sticky()
Допустим, вы создаете тему и хотите отображать ленту «КЛЕЙКА» в прикрепленных сообщениях. Вот что вы делаете:
1
2
3
4
5
6
7
8
9
|
<?php
if ( is_sticky() ) {
echo ‘<div class=»sticky-ribbon»></div>’;
}
?>
|
12. Проверка is_admin()
панели администрирования: is_admin()
Позволяя нам узнать, находимся ли мы во is_admin()
тег is_admin()
является одним из самых популярных условных тегов среди всех. Как следует из названия, is_admin
проверяет, is_admin
ли панель администрирования WordPress.
Принятые параметры
Этот условный тег не принимает никаких параметров.
13. Проверка, является ли страница страницей «Архивы категорий»: is_category()
Если вы хотите обнаружить определенные архивные страницы категорий, вы можете использовать is_category()
тег is_category()
. Определив категорию (или массив категорий) в качестве ее параметра, вы можете проверить, отображаются ли архивы этих категорий. Если вы оставите параметр не установленным, он вернет TRUE
когда будет отображена страница архива любой категории.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$category
(строка / массив, необязательно): ID категории, заголовок, слаг или их массив. (По умолчанию: нет)
Пример использования для is_category()
Допустим, вы хотите включить другую боковую панель при отображении архивов категории «Новости». Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
<?php
if ( is_category() ) {
// Load sidebar-news.php.
get_sidebar( ‘news’ );
} else {
// Load sidebar.php.
get_sidebar();
}
?>
|
Вывод
В этой части мы рассмотрели 13 из 65 задокументированных условных тегов в WordPress. В следующих частях мы рассмотрим оставшиеся 52. Если у вас есть какие-либо вопросы или комментарии, задайте их ниже — и если вам понравилась эта статья, не забудьте поделиться ею!
Увидимся в следующей части!