Статьи

Пошаговое руководство по условным тегам в WordPress: с 14 по 26

В этой серии статей мы рассмотрим одну из основных функций WordPress: условные теги. В этой третьей части мы продолжим знакомство с условными тегами. Не забудьте проверить предыдущие части, если вы еще не сделали.

Давайте начнем!

В WordPress «главная страница» может быть настроена как статическая страница WordPress или список последних сообщений в блоге (« Настройки»> «Чтение» ). В любом случае, is_front_page() тег is_front_page() возвращает TRUE когда отображается is_front_page() страница.

Этот условный тег не принимает никаких параметров.

«Избранные изображения» являются одной из ключевых частей экрана «Новая запись / страница». Условный тег has_post_thumbnail() определяет, есть ли назначенное has_post_thumbnail() изображение для данного сообщения или нет.

Этот условный тег имеет только один параметр:

  • $post_id (целое число, необязательно): идентификатор записи. (По умолчанию: идентификатор текущей записи)

Допустим, вы разрабатываете тему, и в ней у каждого поста в блоге должно быть «рекомендуемое изображение», поэтому вы хотите отобразить «изображение по умолчанию», если оно не установлено. Вот что вы делаете:

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’ );
 */
 
?>

Вы не должны судить никого, кто использует 10-летнюю тему или любит ретро. Если вы разрабатываете плагин, вам необходимо принять во внимание все, включая темы, использующие всплывающее окно комментариев. Чтобы определить это, вы можете использовать is_comments_popup() тег is_comments_popup() .

Этот условный тег не принимает никаких параметров.

Страницы с ошибками «Не найдено», как правило, являются теми, которые мы ненавидим видеть на наших веб-сайтах, и поэтому нам все равно, как они выглядят. Но если вы правильно используете эти страницы ошибок, вы можете превратить их в полезные страницы, которые информируют ваших пользователей или помогают им ориентироваться. Условный тег is_404() помогает нам определить, отображается ли ошибка 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();
     
    }
     
}
 
?>

Если вам когда-нибудь понадобится проверить, зарегистрирована ли пользовательская таксономия, вы можете использовать taxonomy_exists() тег taxonomy_exists() чтобы ваш код определял его.

Этот условный тег имеет только один параметр:

  • $taxonomy (строка обязательна): название таксономии. (По умолчанию: нет)

Несмотря на то, что страницы результатов поиска немного недооценены, они являются важной частью веб-сайтов WordPress. И если вы разрабатываете плагин или тему, вы можете обнаружить эти страницы с помощью условного тега 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 . ‘»>’ .
 
}
 
?>

Хотите по-разному относиться к архивам тегов? Условный тег is_tag() может помочь вам в этом. Хотите относиться к определенным тегам по-разному? Просто передайте имя тега, слаг или ID (или их массив) в качестве параметра!

Этот условный тег имеет только один параметр:

  • $tag (массив / строка, необязательно): идентификатор тега, имя, слаг или их массив. (По умолчанию: нет)

В сообщениях WordPress есть два вида «отрывков»: если вы хотите написать один самостоятельно, это называется «пользовательский отрывок», а если нет, генерируется «автоматический отрывок» (по умолчанию это первый слова из поста). Условный тег has_excerpt() проверяет, установил ли пользователь пользовательскую выдержку для данного сообщения.

Этот условный тег имеет только один параметр:

  • $post_id (целое число, необязательно): идентификатор записи. (По умолчанию: идентификатор текущей записи)

Допустим, вы создаете тему и хотите отображать пользовательские выдержки на главной странице, но не хотите отображать автоматические выдержки. Вот что вы делаете:

1
2
3
4
5
6
7
8
9
<?php
 
if ( has_excerpt() ) {
 
    the_excerpt();
     
}
 
?>

WordPress использует класс WP_Query для составления списка сообщений — будь то просто список заголовков сообщений или индекс полных сообщений на странице архива. Ряд функций использует класс WP_Query , и is_main_query() является одной из них. Этот условный тег определяет, является ли запрос «вторичным запросом», а не «основным запросом».

Этот условный тег не принимает никаких параметров.

Иногда вам может потребоваться проверить, есть ли в сообщении какой-либо тег, чтобы заставить сообщение (или сообщения) действовать не так, как другие. Для этого вы можете использовать has_tag() чтобы проверить, помечен ли пост указанным вами тегом. (Примечание. Позволяет указать несколько тегов для поиска.)

Этот условный тег имеет два параметра:

  • $tag (массив / строка, необязательно): имя тега, идентификатор, слаг или их массив. (По умолчанию: нет)
  • $post (объект, необязательно): публикация для проверки. (По умолчанию: текущий пост)

Допустим, у вас есть «значки» для ваших сообщений в блоге (например, «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>’;
 
?>

Этот конкретный условный тег возвращает TRUE если WordPress установлен. Я включил этот условный тег только для справки, потому что технически он не может быть полезен для разработчиков плагинов или тем — его можно использовать в каком-то внешнем инструменте WordPress, возможно.

Этот условный тег не принимает никаких параметров.

В сети Multisite есть «супер администратор», который может администрировать все сайты. Чтобы определить, является ли пользователь «супер-администратором» (или обычным администратором в обычных установках WordPress), вы можете использовать is_super_admin() тег is_super_admin() .

Этот условный тег имеет только один параметр:

  • $user_id (целое число, необязательно): идентификатор пользователя. (По умолчанию: текущий пользователь)

Допустим, вам не нравится приветствие «Привет», и вы хотите изменить его, но пользователям это нравится, и вы хотите, чтобы оно осталось. В этом случае вам нужно решение, которое применимо только к вам. Вот что вы делаете:

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;
 
}
 
?>

В WordPress «страницы» — это один из пяти встроенных типов сообщений, а также сообщения, ревизии, вложения и навигационные меню. И если вы хотите обнаружить определенную страницу (или любую страницу в целом), вы можете использовать is_page() тег is_page() .

Этот условный тег имеет только один параметр:

  • $page (массив / строка, необязательно): идентификатор страницы, заголовок, слаг или их массив. (По умолчанию: нет)

В этой части мы рассмотрели еще один пакет из 65 задокументированных условных тегов в WordPress. В следующих частях мы рассмотрим оставшиеся 39. Если у вас есть какие-либо вопросы или комментарии, задайте их ниже — и если вам понравилась эта статья, не забудьте поделиться ею!

Увидимся в следующей части!