Условные теги в WordPress: 14-26

В данной серии уроков мы разбираем условные теги в WordPress.

Начнём!

14. Проверка находимся ли мы на фронт-энде: is_front_page()

В WordPress, за "фронт-энд" можно считать как статическую страницу, так и список постов (Settings > Reading). С помощью тега is_front_page(), который возвращает TRUE, можно осуществить проверку.

Параметры

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

15. Есть ли у поста миниатюра: has_post_thumbnail()

Одним из важнейших элементов поста является миниатюра. С помощью has_post_thumbnail() можно определить её наличие или отсутствие.

Параметры

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

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

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

Предположим, что у вас есть список постов, которые должны сопровождаться миниатюрой изображения. Если же такой миниатюры нет, то показывать изображение по умолчанию:

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

Параметры

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

17. Является ли текущая страница 404: is_404()

"Не найдено" - это одна из страниц, которую мы не хотим видеть больше всего, поэтому мы должны как можно лучше её украсить. Любую страницу ошибки можно превратить в информативный источник, который поможет пользователю найти то, что надо. С помощью условного тега is_404() можно определить является ли текущая страница, страницей ошибки 404.

Параметры

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

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

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

<?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 (строка, обязателен): Название таксономии. (По умолчанию: нет значения)

19. Является ли текущая страница - страницей результатов поиска: is_search()

Страница результатов поиска - одна из важнейших частей любого сайта на WordPress. Для проверки вы можете воспользоваться тегом is_search().

Параметры

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

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

Допустим вы хотите показать ссылку на страницу результатов поиска Google с искомой фразой. Вот как это сделать:

<?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 . '">' . __( 'Search with Google', 'translation-domain' ) . '</a>';

}

?>

20. Является ли текущая страница - страницей архива тегов: is_tag()

С помощью условного тега is_tag() можно определить является ли текущая страница - страницей архива тегов. Нужно передать название тега, слаг, ID или массив из перечисленных значений!

Параметры

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

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

21. Проверка на наличие дополнительной выдержки: has_excerpt()

В WordPress существует несколько типов "выдержки" (отрывок): Если вы хотите сами написать, то для этого есть специальное поле, если нет, то так же есть автоматическая выдержка, которая будет сгенерированна (по умолчанию, первые 55 слов поста). С помощью тега has_excerpt() можно проверить наличие собственного отрывка.

Параметры

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

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

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

Предположим вы хотите отобразить собственные отрывки постов на главной странице:

<?php

if ( has_excerpt() ) {

    the_excerpt();

}

?>

22. Проверка первичного запроса: is_main_query()

При выводе постов WordPress использует класс WP_Query — будь то список или архивная страница. Множество функций используют класс WP_Query, включая is_main_query(). Данный тег определяет, что “запрос не вторичен”, а "первичен".

Параметры

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

23. Проверка наличия тега у поста: has_tag()

Иногда может возникнуть необходимость проверки наличия какого-то тега и текущего поста. Для проверки данного факта можно использовать тег has_tag(). (Заметка: можно осуществить проверку и нескольких тегов).

Параметр

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

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

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

К примеру у вас предусмотрены маркеры для постов ("NEW", "FEATURED" и "OBSOLETE") в соответствии с тегами, которые были присвоены. Вот как это сделать:

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

Указанный тег можно использовать чтобы определить установлен ли блог. Его целесообразно использовать в каких-то сторонних WordPress инструментах.

Параметры

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

25. Является ли текущий пользователь "супер администратором": is_super_admin()

Существует специальная роль "супер администратора", которой доступны все функции сайта. Для проверки является ли текущий пользователь “супер администратором” следует использовать тег is_super_admin().

Параметры

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

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

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

К примеру вам не нравится стандартное приветствие. Вы можете это подправить:

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

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

Параметры

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

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

Вывод

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

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

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


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

^ Наверх ^