В этой серии статей мы рассмотрим одну из основных функций WordPress: условные теги. В этой шестой части мы закончим знакомство с условными тегами. Не забудьте проверить предыдущие части, если вы еще не сделали.
Давайте начнем!
53. Проверка, является ли страница сообщением блога или страницей: is_singular()
Я не знаю почему, но это мой любимый is_singular()
тег: is_singular()
может определять, когда отображается любой тип записи. По сути, это комбинация условных тегов is_single()
, is_attachment()
и is_page()
. Кроме того, если вы установите тип сообщения (или массив типов сообщений) в качестве параметра, вы сможете обнаружить только те типы сообщений, которые вы указали.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post_types
(массив / строка, необязательно): имя типа публикации или массив имен типов записей. (По умолчанию: нет)
54. Проверка, работает ли функция в « in_the_loop()
»: in_the_loop()
Если я скажу, что Loop является основой WordPress с точки зрения кода, мало кто не согласится. Таким образом, in_the_loop()
тег in_the_loop()
является одним из ключевых условных тегов, и он помогает вашим функциям увидеть, находятся ли они внутри цикла или нет.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для in_the_loop()
Допустим, ваш плагин имеет функцию, которая должна выполняться в цикле, но вы также хотите отобразить ошибку в исходном коде страницы, если пользователь использует его вне цикла. Вот как вы строите функцию:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?php
function my_awesome_plugin_function() {
if ( ! in_the_loop() ) {
echo ‘<!— ‘ .
} else {
// Run the awesome code because we’re in the loop!
}
}
?>
|
55. Проверка того, является ли указанный плагин неактивным: is_plugin_inactive()
Вы можете догадаться, о чем этот условный тег, по его имени: Определяемый как «логическое отрицание is_plugin_active()
» в Кодексе, is_plugin_inactive()
проверяет, установлен ли данный плагин, но не активирован ли он.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$plugin
(строка, обязательно): имя плагина или подкаталога. (По умолчанию: нет)
56. Проверка, является ли страница страницей «Авторских архивов»: is_author()
При создании плагина (или темы) вы можете узнать, когда отображается страница вложения. Условный тег is_attachment()
поможет вам: он возвращает TRUE
на странице вложения и FALSE
любом другом месте.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$author
(строка / целое число, необязательно): имя пользователя или идентификатор автора. (По умолчанию: нет)
Пример использования для is_author()
Допустим, вы разрабатываете плагин, связанный с Google Analytics, и вы хотите установить «пользовательскую переменную» для обнаружения авторских архивов. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<script>
/* Some Google Analytics related JavaScript here.
<?php
if ( is_author() ) {
echo ‘_gaq.push( [ «_setCustomVar», 1, «‘ . __( ‘Author Archives’, ‘translation-domain’ ) . ‘», «‘ . esc_attr( get_query_var( ‘author_name’ ) ) . ‘» ] );’
}
?>
_gaq.push( [ «_trackPageview» ] );
</script>
|
57. Проверка, находимся ли мы на страничной странице со is_paged()
: is_paged()
В индексных страницах блогов или страницах архивов WordPress позволяет нам использовать нумерацию страниц, чтобы разделить списки записей на последовательные страницы. С помощью условного тега is_paged()
вы можете заставить свой код определять, является ли листинг «разбитым на страницы» и номер страницы больше 1.
Принятые параметры
Этот условный тег не принимает никаких параметров.
58. Проверка, отображается ли панель инструментов WordPress: is_admin_bar_showing()
Панель инструментов WordPress, ранее известная как админ-панель, считается полезной и раздражающей в сообществе WordPress. Кто-то любит это, кто-то ненавидит, поэтому is_admin_bar_showing()
тег is_admin_bar_showing()
может быть полезен всем: он определяет, отображается панель инструментов или нет.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_admin_bar_showing()
Допустим, вы хотите расширить панель инструментов некоторыми стилями CSS, но вам нужно загрузить таблицу стилей условно. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
<?php
add_action( ‘wp_enqueue_scripts’, ‘mytheme_admin_bar_styles’ );
function mytheme_admin_bar_styles() {
if ( is_admin_bar_showing() ) {
wp_enqueue_style( ‘mytheme-admin-bar’, ‘path/to/your/admin-bar.css’ );
}
}
?>
|
59. Проверка, является ли страница страницей «Ежедневные архивы»: is_day()
Ежедневные архивы, вероятно, являются наиболее недооцененными типами архивов на основе дат, но это не означает, что они бесполезны — некоторые темы могут даже иметь разные шаблоны для ежедневных архивов. Таким образом, если вы хотите обнаруживать ежедневные страницы архива, вы можете использовать is_day()
тег is_day()
для выполнения этой работы.
Принятые параметры
Этот условный тег не принимает никаких параметров.
60. Проверка, используется ли is_active_sidebar()
боковая панель: is_active_sidebar()
При создании темы мы должны учитывать тех, кто не использует виджеты. Условный тег is_active_sidebar()
проверяет, есть ли на данной боковой панели какие-либо виджеты.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$sidebar
(строка / целое число, обязательно): имя или идентификатор боковой панели. (По умолчанию: нет)
Пример использования для is_active_sidebar()
Этот пример взят из темы Twenty Ten — он использует условный тег для условной загрузки данной боковой панели:
01
02
03
04
05
06
07
08
09
10
11
|
<?php
if ( is_active_sidebar( ‘secondary-widget-area’ ) ) { ?>
<div id=»secondary» class=»widget-area» role=»complementary»>
<ul class=»xoxo»>
<?php dynamic_sidebar( ‘secondary-widget-area’ );
</ul>
</div> <!— #secondary .widget-area —>
<?php } ?>
|
61. Проверка наличия данного имени пользователя в таблице username_exists()
: username_exists()
Третий условный тег, который возвращает что-то отличное от TRUE
случае успеха — username_exists()
Этот условный тег проверяет заданное имя пользователя и возвращает идентификатор пользователя, если пользователь с данным именем существует. Если это не так, он возвращает NULL
.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$username
(string, обязательный): имя пользователя для проверки. (По умолчанию: нет)
62. Проверка, является ли это страницей «Предварительный просмотр»: is_preview()
Если у вас есть некоторые элементы страницы, которые не должны загружаться в предварительном просмотре (например, реклама на основе показов или какой-то секретный аналитический код), вы можете удалить их с помощью условного тега is_preview()
.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_preview()
Рекомендуется скрывать страницы предварительного просмотра от Google Analytics, поэтому вам нужно быть осторожным и включить свой скрипт Google Analytics следующим образом:
01
02
03
04
05
06
07
08
09
10
11
|
<?php
if ( ! is_preview() ) {
echo ‘<script>
<!— Your Google Analytics code.
</script>’;
}
?>
|
63. Проверка состояния данного wp_script_is()
: wp_script_is()
Это особенно полезно для разработчиков плагинов, которые не хотят, чтобы их сценарии конфликтовали с другими сценариями в очереди. С помощью этого условного тега вы можете определить, зарегистрирован ли данный сценарий, поставлен ли он в очередь, поставлен ли он в очередь и напечатан, или помещен в очередь, но еще не напечатан.
Принятые параметры
Этот условный тег имеет два параметра:
-
$handle
(string, обязательный): имя скрипта (в нижнем регистре). (По умолчанию: нет) -
$list
(строка, необязательно): одна из четырех строк: «зарегистрированный» , «поставленный в очередь» , «выполненный» (поставленный в очередь и напечатанный) или «to_do» (поставленный в очередь, но не напечатанный). (По умолчанию: «в очереди»)
64. Проверка состояния wp_style_is()
стиля: wp_style_is()
Этот wp_script_is()
тег похож на своего брата, wp_script_is()
, но он выполняет ту же работу для таблиц стилей в очереди. С помощью этого условного тега вы можете определить, зарегистрирован ли данный стиль, поставлен ли он в очередь, поставлен ли он в очередь и напечатан, или помещен в очередь, но еще не напечатан.
Принятые параметры
Этот условный тег имеет два параметра:
-
$handle
(string, обязательный): имя стиля (в нижнем регистре). (По умолчанию: нет) -
$list
(строка, необязательно): одна из четырех строк: «зарегистрированный» , «поставленный в очередь» , «выполненный» (поставленный в очередь и напечатанный) или «to_do» (поставленный в очередь, но не напечатанный). (По умолчанию: «в очереди»)
Пример использования для wp_style_is()
Допустим, вы создаете тему с помощью инфраструктуры Bootstrap и создали собственную тему Bootstrap для включения. Вы должны убедиться, что основные CSS-файлы Bootstrap сначала поставлены в очередь:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
<?php
add_action( ‘wp_enqueue_scripts’, ‘bootstrap_styles’ );
function bootstrap_styles() {
if ( wp_style_is( ‘bootstrap-main’ ) ) {
wp_enqueue_style( ‘my-custom-bootstrap-theme’, ‘path/to/custom-theme.css’ );
}
}
?>
|
65. Проверка, является ли таксономия иерархической: is_taxonomy_hierarchical()
Вы знаете, что категории являются иерархическими — вы можете установить родительские и дочерние категории. То же самое касается пользовательских таксономий, если вы делаете это при создании. И если вы хотите, чтобы ваш код знал, является ли определенная таксономия иерархической, вы можете использовать is_taxonomy_hierarchical()
тег is_taxonomy_hierarchical()
.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$taxonomy
(строка обязательна): название таксономии. (По умолчанию: нет)
Вывод
В этой части мы рассмотрели последний пакет из 65 задокументированных условных тегов в WordPress. В следующей (и последней) части серии мы закончим анализом того, что узнали, и крошечной бонусной частью, которая, надеюсь, вам понравится.
Если у вас есть какие-либо вопросы или комментарии, снимите их ниже — и если вам понравилась эта статья, не забудьте поделиться ею!