Руководство по условным тегам WordPress: теги с 1 по 13

В первой части данной серии статей мы рассмотрели базовую теорию по условным тегам — что это такое, как их использовать и некоторые сценарии, в которых условные теги могут пригодиться.

Во второй части мы рассмотрим первых 13 условных тегов, а в целом в пяти статьях(включая эту), я приведу полное руководство по всем 65 условным тегам, описанным в Кодексе WordPress. Не забудьте ознакомиться с первой статьей данной серии, если вы этого ещё не сделали.

1. Проверка, находимся ли мы на «Индексной странице записей блога «: is_home()

Этот условный тег проверяет, будет ли отображаемая страница индексной страницей записей блога. В былые времена, когда WordPress был просто «блог-платформой«, на домашней странице выводился список последних записей в блоге. Но после того как WordPress вырос в полноценную систему управления контентом, название is_home() устарело.

Принимаемые настройки

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

Пример применения is_home()

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

<?phpif( is_home()) { _e( 'Welcome to my great blog!', 'translation-domain');}?>

2. Проверка, будет ли текущая тема дочерней: is_child_theme()

При разработке на WordPress может потребоваться проверить, будет ли используемая тема дочерней. В этом случае вам поможет условный тег is_child_theme(), он возвращает значения TRUE или FALSE, в зависимости от того, будет ли используемая тема дочерней или нет.

Принимаемые настройки

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

3. Проверка, принадлежит ли запись данной категории: in_category()

На WordPress -сайте вам, возможно, потребуется, чтобы записи из различных категорий вели себя по-разному. К примеру, вы можете легко добавлять классы для определенных записей или вообще убрать их из общих списков. Условный тег in_category() может определить, принадлежит ли запись определенной категории или нескольким категориям.

Принимаемые настройки

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

  • $category(array, string, обязательный настройка): ID, название категории или массив данных элементов.(По умолчанию: нет);
  • $post(object, int, необязательный настройка): запись(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>'. __( 'Извините, записей, удовлетворяющих заданным критериям не найдено posts.', 'translation-domain'). '</p>';}?>

4. Проверка, используется ли «шаблон страницы»: is_page_template()

Шаблоны страницы — это средство WordPress, которое может выбрать, как будут выводиться некоторые страницы. При помощи условного тега is_page_template(), вы можете без труда определить, используется определенный шаблон страницы (или любой шаблон страницы).

Принимаемые настройки

  • $template (string, необязательный): Имя шаблона — с расширением. Значения по умолчанию нет.

5. Проверка, будет ли страница страницей архива: is_archive()

На WordPress-сайте может быть много разновидностей архивов: архивы по дате, архивы категорий, тегов, архивы авторов, архивы пользовательских таксономий… Но если вы хотели бы установить, будет ли страница страницей архива, is_archive() поможет вам в этом: этот условный тег проверяет, выводится в данный момент страница архива или нет.

Принимаемые настройки

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

Пример применения is_archive()

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

Вот что вам необходимо сделать:

<?phpadd_filter( 'the_title', 'alter_title_in_archives' );function alter_title_in_archives( $title ) {    if ( is_archive() && is_main_query() ) {        return __( 'Archive', 'translation-domain' ) . ' &ndash; ' . $title;    }    return $title;}?>

6. Проверка, будет ли страница «Архивом по дате»: is_date()

Архивы по дате могут разбиваться на архивы за год, за месяц и за день; но если вы планируете проверить будет ли страница страницей архива по дате, вы можете использовать условный тег is_date() .

Принимаемые настройки

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

7. Проверка, активен ли в данный момент заданный виджет: is_active_widget()

Вам может понадобиться определить, активен виджет или нет. Условный тег is_active_widget() проверяет, выводится ли в данный момент виджет.

Принимаемые настройки

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

  • $callback (string, необязательный): Обратный вызов виджета для проверки. По умолчанию: FALSE ;
  • $widget_id (int, необязательный): ID виджета. Значения по умолчанию нет;
  • $id_base (string, необязательный): ID базы виджета, созданного через расширения WP_Widget. Значения по умолчанию нет;
  • $skip_inactive (bool, необязательный): Не принимать ли во внимание неактивные виджеты. (По умолчанию: TRUE).

Пример применения is_active_widget()

Предположим, что для реализации виджета в теме требуется JQuery , и вы должны поставить его в очередь загрузки в зависимости от того, активирован он или нет.

Вот что вам необходимо сделать:

<?php// источник: http://codex.wordpress.org/Function_Reference/is_active_widgetif ( is_active_widget( false, false, $this->id_base, true ) ) {    wp_enqueue_script( 'jquery' );}?>

8. Проверка, будет ли страница единственной записью в блоге: is_single()

Один из самых популярных условных тегов is_single() поможет узнать, будет ли запись единственной на странице. Он определяет любые типы записей, кроме вложений и страниц. И если вы укажете ID , заголовок или короткое имя записи (или массив данных элементов), то можете без труда также определить конкретную запись.

Принимаемые настройки

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

  • $post (string, array, необязательный): ID , заголовок или короткое имя записи (или массив данных элементов). Значения по умолчанию нет.

9. Проверка существует ли заданный адрес электронной почты в таблице посетителей: email_exists()

Если вам необходимо проверить адрес электронной почты, чтобы узнать имеется ли такой адрес в таблице посетителей WordPress , вы можете использовать условный тег email_exists() .

Он будет одним из трех тегов, возвращающих не логическое значение TRUE , а иное конкретное значение — в данном случае ID посетителя, зарегистрированного с указанным адресом электронной почты.

Принимаемые настройки

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

  • $email (string, необязательный): E-mail адрес для проверки.

Пример применения email_exists()

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

Вот что вам необходимо сделать:

<?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() может проверить, имеет в себя ли данный тип записей иерархическую структуру или нет.

Принимаемые настройки

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

  • $post_type (string, обязательный): Название типа записей. Значения по умолчанию нет.

11. Проверка, будет ли запись «важной»: is_sticky()

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

Принимаемые настройки

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

  • $post_id (string, необязательный): ID записи. Значение по умолчанию нет.

Пример применения is_sticky()

Допустим, вы создаете тему и хотели бы выводить ленту важных записей.

Вот что вам необходимо сделать:

<?phpif ( is_sticky() ) {    echo '<div class="sticky-ribbon"></div>';}?>

12. Проверка, выводится ли в данный момент панель администрирования: is_admin()

is_admin() может нам определить, находимся ли мы в данный момент в разделе front-end или back-end , так что этот условный тег будет одним из самых популярных. Как и предполагает его название, тег проверяет, находимся ли мы в данный момент в панели администрирования WordPress .

Принимаемые настройки

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

13. Проверка, будет ли страница страницей «архива категории»: is_category()

Если вы хотели бы найти определенные страницы архивов категорий, вы можете без проблем использовать условный тег is_category() . Задав категорию (или массив категорий) в виде параметры, вы можете проверить, выводятся ли в данный момент данные архивы категорий. Если вы не зададите этот настройка, тег будет возвращать значение TRUE при выведении любой страницы архива категории.

Принимаемые настройки

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

  • $category (string, array, необязательный): ID , название, slug категории или массив данных элементов. Значения по умолчанию нет.

Пример применения is_category()

Допустим, вы планируете подключать альтернативную боковую панель для вывода архива категории «Новости«.

Вот что вам необходимо сделать:

<?phpif ( is_category() ) {    // Загрузка sidebar-news.php.    get_sidebar( 'news' );} else {    // Загрузка sidebar.php.    get_sidebar();}?>

Заключение

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

Продолжим в следующей части!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *