Условные теги в WordPress: 53-65

В этой серии статей мы знакомимся с условными тегами в WordPress. В этой части мы рассмотрим последний сет функций.

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

53. Страница или пост: is_singular()

Это один из моих самых любимых тегов: is_singular(). По сути это комбинация других тегов таких как is_single(), is_attachment() и is_page(). К тому же если указать тип поста, то проверка будет осуществлена исключительно по переданным значениям.

Параметры

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

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

54. Работает ли функция в "Цикле": in_the_loop()

Многие не согласятся если я скажу, что “цикл” - это один из ключевых терминов в WordPress. Однако, благодаря условному тегу in_the_loop() можно определить вызывается ли функция в цикле или нет.

Параметры

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

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

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

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

Параметры

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

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

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

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

<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' ) ) . '" ] );' . "\n";

}

?>

_gaq.push( [ "_trackPageview" ] );

</script>

57. Является ли страница "листингом": is_paged()

В WordPress есть возможность разбиения материала на страницы. С помощью условного тега is_paged(), вы можете определить разбит ли список материалов по страницам или нет, а так же удостовериться что это значение больше единицы.

Параметры

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

58. Отображена ли панель инструментов: is_admin_bar_showing()

Всех любителей WordPress можно разбить на две категории: те кто любят панель инструментов, и те кто её ненавидят. Вне зависимости от этого, благодаря тегу is_admin_bar_showing() можно узнать активирована данная панель или нет.

Параметры

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

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

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

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

Параметры

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

60. Используется ли сайдбар: is_active_sidebar()

Данный тег очень пригодится тем, кто создаёт темы. С его помощью можно определить есть ли в сайдбаре активные виджеты.

Параметры

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

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

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

Данный пример взят из темы Twenty Ten — отображение блока в случае активности сайдбара:

<?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. Проверка наличия пользователя в таблице Users по его имени: username_exists()

Это третий тег, который возвращает значение отличное от TRUE. Условный тег username_exists() проверяет наличие записи по имени пользователя и возвращает его идентификатор в случае успеха. Иначе будет возвращено значение NULL.

Параметры

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

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

62. Является ли страница анонсом поста: is_preview()

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

Параметры

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

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

Неплохо было бы “спрятать” страницы с превью от Google Analytics. Это можно сделать так:

<?php

if ( ! is_preview() ) {

    echo '<script>
             <!-- Your Google Analytics code. -->
         </script>';

}

?>

63. Проверка состояния скрипта: wp_script_is()

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

Параметры

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

  • $handle (строка, обязателен): название скрипта (в нижнем регистре). (По умолчанию: не задано)
  • $list (строка, не обязателен): Одно из четырёх значений — "registered", "enqueued", "done" (enqueued и printed), или "to_do" (enqueued, но не printed). (По умолчанию: "enqueued")

64. Проверка статуса стилей: wp_style_is()

Данный тег является братом близнецом wp_script_is() и касается таблиц стилей.

Параметры

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

  • $handle (строка, обязателен): название файла со стилями (в нижнем регистре). (По умолчанию: не задано)
  • $list (строка, не обязателен): Одно из четырёх значений — "registered", "enqueued", "done" (enqueued и printed), или "to_do" (enqueued, но не printed). (По умолчанию: "enqueued")

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

Предположим, что ваша тема основывается на Bootstrap. Перед её установкой вы хотите удостовериться, что основной файл стиля Bootstrap присутствует в очереди на добавление:

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

Вы знаете, что в Wordpress есть возможность создания целого “дерева” из категорий — назначать родительские и дочерние элементы. Для определения данного факта можете воспользоваться условным тегом is_taxonomy_hierarchical().

Параметры

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

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

Итог

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-53-to-65--cms-22312
Перевел: Станислав Протасевич
Урок создан: 25 Августа 2015
Просмотров: 4204
Правила перепечатки


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

^ Наверх ^