В этой серии статей мы рассмотрим одну из основных функций WordPress: условные теги. В этой третьей части мы продолжим знакомство с условными тегами. Не забудьте проверить предыдущие части, если вы еще не сделали.
Давайте начнем!
14. Проверка, находимся ли мы на is_front_page()
странице: is_front_page()
В WordPress «главная страница» может быть настроена как статическая страница WordPress или список последних сообщений в блоге (« Настройки»> «Чтение» ). В любом случае, is_front_page()
тег is_front_page()
возвращает TRUE
когда отображается is_front_page()
страница.
Принятые параметры
Этот условный тег не принимает никаких параметров.
15. Проверка наличия миниатюры в сообщении: has_post_thumbnail()
«Избранные изображения» являются одной из ключевых частей экрана «Новая запись / страница». Условный тег has_post_thumbnail()
определяет, есть ли назначенное has_post_thumbnail()
изображение для данного сообщения или нет.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post_id
(целое число, необязательно): идентификатор записи. (По умолчанию: идентификатор текущей записи)
Пример использования has_post_thumbnail()
Допустим, вы разрабатываете тему, и в ней у каждого поста в блоге должно быть «рекомендуемое изображение», поэтому вы хотите отобразить «изображение по умолчанию», если оно не установлено. Вот что вы делаете:
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
|
<?php
function mytheme_featured_image( $class = » ) {
global $post;
$post_title = get_the_title();
if ( has_post_thumbnail( $post->ID ) ) {
$featured_image = get_the_post_thumbnail( $post->ID, ‘thumbnail’, array(
‘alt’ => esc_attr( $post_title ),
‘class’ => $class
) );
} else {
$featured_image = ‘<img src=»‘ . get_stylesheet_directory_uri() . ‘/assets/default-thumb.jpg» alt=»‘ . esc_attr( $post_title ) . ‘» class=»default-thumb ‘ . $class . ‘» />’;
}
return $featured_image;
}
/*
* Usage (inside the Loop):
* echo mytheme_featured_image( ‘my-custom-class’ );
*/
?>
|
16. Проверка, использует ли тема «всплывающее окно комментариев»: is_comments_popup()
Вы не должны судить никого, кто использует 10-летнюю тему или любит ретро. Если вы разрабатываете плагин, вам необходимо принять во внимание все, включая темы, использующие всплывающее окно комментариев. Чтобы определить это, вы можете использовать is_comments_popup()
тег is_comments_popup()
.
Принятые параметры
Этот условный тег не принимает никаких параметров.
17. Проверка, является ли страница ошибкой 404: is_404()
Страницы с ошибками «Не найдено», как правило, являются теми, которые мы ненавидим видеть на наших веб-сайтах, и поэтому нам все равно, как они выглядят. Но если вы правильно используете эти страницы ошибок, вы можете превратить их в полезные страницы, которые информируют ваших пользователей или помогают им ориентироваться. Условный тег is_404()
помогает нам определить, отображается ли ошибка 404 пользователю.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_404()
Допустим, вы разрабатываете плагин, который регистрирует неработающие внутренние ссылки, и вы хотите, чтобы ваша функция запускалась каждый раз при просмотре страницы с ошибкой 404. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
<?php
add_filter( ‘template_redirect’, ‘my_plugin_check_404_pages’ );
function my_plugin_check_404_pages() {
if ( is_404() ) {
my_plugin_404_logger_function();
}
}
?>
|
18. Проверка существования данной таксономии: taxonomy_exists()
Если вам когда-нибудь понадобится проверить, зарегистрирована ли пользовательская таксономия, вы можете использовать taxonomy_exists()
тег taxonomy_exists()
чтобы ваш код определял его.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$taxonomy
(строка обязательна): название таксономии. (По умолчанию: нет)
19. Проверка, является ли страница страницей «Результаты поиска»: is_search()
Несмотря на то, что страницы результатов поиска немного недооценены, они являются важной частью веб-сайтов WordPress. И если вы разрабатываете плагин или тему, вы можете обнаружить эти страницы с помощью условного тега is_search()
.
Принятые параметры
Этот условный тег не принимает никаких параметров.
Пример использования для is_search()
Допустим, вы хотите включить ссылку для поиска Google с теми же условиями. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
|
<?php
if ( is_search() ) {
$search_query = get_search_query();
echo ‘<div class=»google-search»><a href=»https://www.google.com.tr/search?q=’ . $search_query . ‘»>’ .
}
?>
|
20. Проверка, является ли страница страницей «Tag Archives»: is_tag()
Хотите по-разному относиться к архивам тегов? Условный тег is_tag()
может помочь вам в этом. Хотите относиться к определенным тегам по-разному? Просто передайте имя тега, слаг или ID (или их массив) в качестве параметра!
Принятые параметры
Этот условный тег имеет только один параметр:
-
$tag
(массив / строка, необязательно): идентификатор тега, имя, слаг или их массив. (По умолчанию: нет)
21. Проверка наличия у поста пользовательского has_excerpt()
: has_excerpt()
В сообщениях WordPress есть два вида «отрывков»: если вы хотите написать один самостоятельно, это называется «пользовательский отрывок», а если нет, генерируется «автоматический отрывок» (по умолчанию это первый слова из поста). Условный тег has_excerpt()
проверяет, установил ли пользователь пользовательскую выдержку для данного сообщения.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$post_id
(целое число, необязательно): идентификатор записи. (По умолчанию: идентификатор текущей записи)
Пример использования has_excerpt()
Допустим, вы создаете тему и хотите отображать пользовательские выдержки на главной странице, но не хотите отображать автоматические выдержки. Вот что вы делаете:
1
2
3
4
5
6
7
8
9
|
<?php
if ( has_excerpt() ) {
the_excerpt();
}
?>
|
22. Проверка, является ли это основным is_main_query()
: is_main_query()
WordPress использует класс WP_Query
для составления списка сообщений — будь то просто список заголовков сообщений или индекс полных сообщений на странице архива. Ряд функций использует класс WP_Query
, и is_main_query()
является одной из них. Этот условный тег определяет, является ли запрос «вторичным запросом», а не «основным запросом».
Принятые параметры
Этот условный тег не принимает никаких параметров.
23. Проверка, есть ли у сообщения has_tag()
тег: has_tag()
Иногда вам может потребоваться проверить, есть ли в сообщении какой-либо тег, чтобы заставить сообщение (или сообщения) действовать не так, как другие. Для этого вы можете использовать has_tag()
чтобы проверить, помечен ли пост указанным вами тегом. (Примечание. Позволяет указать несколько тегов для поиска.)
Принятые параметры
Этот условный тег имеет два параметра:
-
$tag
(массив / строка, необязательно): имя тега, идентификатор, слаг или их массив. (По умолчанию: нет) -
$post
(объект, необязательно): публикация для проверки. (По умолчанию: текущий пост)
Пример использования has_tag()
Допустим, у вас есть «значки» для ваших сообщений в блоге (например, «NEW», «FEATURED» и «OBSOLETE»), которые будут активированы с помощью соответствующих тегов, и вы хотите отобразить изображения внутри сообщений. Вот что вы делаете:
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
|
<?php
if ( has_tag( ‘badge-new’ ) ) {
echo ‘<div class=»post-content badge-new»>’;
} else if ( has_tag( ‘badge-featured’ ) ) {
echo ‘<div class=»post-content badge-featured»>’;
} else if ( has_tag( ‘badge-obsolete’ ) ) {
echo ‘<div class=»post-content badge-obsolete»>’;
} else {
echo ‘<div class=»post-content»>’;
}
// Post content.
echo ‘</div>’;
?>
|
24. Проверка, установлен ли блог (?): is_blog_installed()
Этот конкретный условный тег возвращает TRUE
если WordPress установлен. Я включил этот условный тег только для справки, потому что технически он не может быть полезен для разработчиков плагинов или тем — его можно использовать в каком-то внешнем инструменте WordPress, возможно.
Принятые параметры
Этот условный тег не принимает никаких параметров.
25. Проверка, является ли пользователь «супер-администратором»: is_super_admin()
В сети Multisite есть «супер администратор», который может администрировать все сайты. Чтобы определить, является ли пользователь «супер-администратором» (или обычным администратором в обычных установках WordPress), вы можете использовать is_super_admin()
тег is_super_admin()
.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$user_id
(целое число, необязательно): идентификатор пользователя. (По умолчанию: текущий пользователь)
Пример использования для is_super_admin()
Допустим, вам не нравится приветствие «Привет», и вы хотите изменить его, но пользователям это нравится, и вы хотите, чтобы оно осталось. В этом случае вам нужно решение, которое применимо только к вам. Вот что вы делаете:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
// Source: http://www.paulund.co.uk/change-the-wordpress-howdy-text
add_filter( ‘admin_bar_menu’, ‘replace_howdy’ );
function replace_howdy( $wp_admin_bar ) {
$my_account = $wp_admin_bar->get_node( ‘my-account’ );
$newtitle = __( ‘Hi boss!’, ‘translation-domain’ );
$wp_admin_bar->add_node( array(
‘id’ => ‘my-account’,
‘title’ => $newtitle
) );
return $wp_admin_bar;
}
?>
|
26. Проверка, является ли страница страницей «is»: is_page()
В WordPress «страницы» — это один из пяти встроенных типов сообщений, а также сообщения, ревизии, вложения и навигационные меню. И если вы хотите обнаружить определенную страницу (или любую страницу в целом), вы можете использовать is_page()
тег is_page()
.
Принятые параметры
Этот условный тег имеет только один параметр:
-
$page
(массив / строка, необязательно): идентификатор страницы, заголовок, слаг или их массив. (По умолчанию: нет)
Вывод
В этой части мы рассмотрели еще один пакет из 65 задокументированных условных тегов в WordPress. В следующих частях мы рассмотрим оставшиеся 39. Если у вас есть какие-либо вопросы или комментарии, задайте их ниже — и если вам понравилась эта статья, не забудьте поделиться ею!
Увидимся в следующей части!