Условные теги в WordPress: 1-13

В этой статье мы пройдёмся по фундаментальным условным тегам.

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

1. Является ли текущая страница главной": is_home()

Проверить является ли текущая страница главной можно с помощью условного тега is_home().

Параметры

Не принимает параметров.

Пример использования is_home()

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

<?php

if ( is_home() ) {

    _e( 'Welcome to my great blog!', 'translation-domain' );

}

?>

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

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

Параметры

Данный тег не принимает параметров.

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

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

Параметры

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

  • $category (массив/строка, обязателен): ID категории, название, слаг или массив из указанных параметров. (По умолчанию: нет значения)
  • $post (объект/целое, не обязателен): Пост (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>' . __( 'Sorry, no posts matched your criteria.', 'translation-domain' ) . '</p>';

}

?>

4. Проверка использования "Шаблонной страницы: is_page_template()

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

Параметры

Данный тег принимает только один параметр:

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

5. Является ли текущая страница архивом: is_archive()

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

Параметры

Данный тег не принимает параметров.

Использование is_archive()

К примеру вы хотите несколько преобразовать названия постов на архивных страницах. Решение:

<?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' ) . ' – ' . $title;

    }

    return $title;

}

?>

6. Является ли страница архивом дат: is_date()

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

Параметры

Не принимает параметров.

7. Проверка активности виджета: is_active_widget()

Создание виджетов дело незамысловатое, а вот проверка активен виджет или нет можно осуществить с помощью условного тега is_active_widget().

Параметры

Данный тег принимает четыре параметра:

  • $callback (строка, не обязателен): колбэк. (По умолчанию: FALSE)
  • $widget_id (целое число, не обязателен): ID виджета. (По умолчанию: нет значения)
  • $id_base (строка, не обязателен): ID виджета, созданного в результате наследования от WP_Widget. (По умолчанию: нет значения)
  • $skip_inactive (булево значение, не обязателен): Включать неактивные виджеты в проверку или нет. (По умолчанию: TRUE)

Использование is_active_widget()

К примеру вам нужно подключить виджет в том случае если активен jQuery. Сделать это можно вот так:

<?php

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

Параметры

Данный тег принимает один параметр:

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

9. Проверка существования email-а в таблице Users: email_exists()

Если вам необходимо проверить существование какого-то email-а в таблице Users, то можно воспользоваться условным тегом email_exists().

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

Параметры

Данный тег принимает один параметр:

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

Использование email_exists()

Предположим что вы создаёте плагин, который формирует список из почтовых адресов пользователей и позволяет вводить дополнительные адреса в специальных полях. В этих условиях вы хотите пресечь ситуацию, когда пользователь может удалить главный email. Вот как это сделать:

<?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()

Подобно созданию иерархии страниц и под-страниц вы можете создать точно такую же иерархию для типов постов. С помощью тега is_post_type_hierarchical() вы можете проверить состоит ли тип поста в иерархии или нет.

Параметры

Данный тег принимает один параметр:

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

11. Проверка на то, что пост "прикреплен": is_sticky()

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

Параметры

Данный тег принимает один параметр:

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

Использование is_sticky()

К примеру вы хотите отобразить ленточку, на прикреплённом посту. Вот как это сделать:

<?php

if ( is_sticky() ) {

    echo '<div class="sticky-ribbon"></div>';

}

?>

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

Для того чтобы узнать где мы находимся: на фронт-энде или бэк-энде, следует использовать тег is_admin().

Параметры

Данный тег не принимает параметров.

13. Является ли страница "Архивом рубрики": is_category()

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

Параметры

Данный тег принимает только один параметр:

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

Пример использования is_category()

К примеру вы ходите включить на странице отображение стороннего блока с новостями, блока в случае, если текущая страница - это архив. Вот как это делается:

<?php

if ( is_category() ) {

    // Загрузить sidebar-news.php.
    get_sidebar( 'news' );

} else {

    // Загрузить sidebar.php.
    get_sidebar();

}

?>

Вывод

В этой части мы рассмотрели 13 из 65 условных тегов. В оставшихся статьях нам предстоит познакомиться ещё с 52.

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-1-to-13--cms-22308
Перевел: Станислав Протасевич
Урок создан: 10 Июня 2015
Просмотров: 6444
Правила перепечатки


5 последних уроков рубрики "Wordpress"

^ Наверх ^