Условные теги в WordPress: 40-52

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

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

40. Является ли блог основным в вашей WordPress сети: is_main_site()

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

Параметры

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

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

41. Проверка активности собственного меню: has_nav_menu()

При создании собственного навигационного меню необходимо указать его “расположение”, указав два параметра функции register_nav_menu. С помощью условного тега has_nav_menu() можно проверить наличие того или иного меню.

Параметры

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

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

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

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

<?php

if ( has_nav_menu( 'mytheme-footer-menu' ) ) {

    wp_enqueue_script( 'mytheme-footer-menu-js', 'path/to/mytheme-footer-menu.js', array( 'jquery' ) );

}

?>

42. Проверка активности плагина в мультисайте: is_plugin_active_for_network()

Точно так же как is_plugin_active() условный тег is_plugin_active_for_network() определяет активность плагина в мутисайтовой установке. Это может быть полезно в случае необходимости определения активности плагина во всей сети блогов.

Параметры

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

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

43. Проверка активности комментариев: comments_open()

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

Параметры

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

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

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

К примеру вы хотите отпечатать какое-то сообщение перед формой ввода комментария, если такая возможность вообще доступна:

<?php

if ( comments_open() ) {

    echo '<div class="comments-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'All commenters are responsible for their own words!', 'translation-domain' ) . '</div>';

}

?>

44. Проверка наличия виджетов в сайдбаре: is_dynamic_sidebar()

Во многих темах активно используется отображение каких-то виджетов в сайдбарах. Благодаря тегу is_dynamic_sidebar() можно определить заполнен ли сайдбар каким-то виджетом.

Параметры

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

45. Проверка наличия нескольких авторов: is_multi_author()

Как показывает практика, на WordPress сайте не больше одного автора. Корпоративные сайты не требуют большего, так что в итоге у нас сформировалась сеть "персональных блогов". Если же вам нужно осуществить проверку на наличие более одного автора можете воспользоваться условным тегом is_multi_author().

Параметры

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

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

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

<?php

add_action( 'admin_notices', 'warn_single_authors' );

function warn_single_authors() {

    if ( ! is_multi_author() ) {

        echo '<div class="error">
                  <p>' . __( 'Sorry mate, this plugin only works for blogs with multiple authors!', 'translation-domain' ) . '</p>
              </div>';

    }

}

?>

46. Проверка активности пинга: pings_open()

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

Параметры

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

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

47. Проверка вывода фида: is_feed()

Я до сих пор являюсь любителем фида, хотя данная фишка уже находится на закате своего существования. В WordPress есть возможность вывода нескольких типов фидов. Если во время вывода вы хотите сделать что-то дополнительное, то можете воспользоваться тегом is_feed().

Параметры

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

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

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

Скажем вы хотите добавить какой-то экстра-контент к каждому посту в фиде (для увеличения количества подписчиков). Для этого вам понадобится шорткод. Вот как можно это сделать:

<?php

// Usage: [feedonly]Hey there, feed readers![/feedonly]
// Source: http://www.wpbeginner.com/wp-tutorials/how-to-create-feed-only-content-in-wordpress-with-shortcode/

add_shortcode( 'feedonly', 'feedonly_shortcode' );

function feedonly_shortcode( $atts, $content = null ) {

    if ( is_feed() ) {

        return $content;

    }

}

?>

48. Является ли страница годовым архивом: is_year()

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

Параметры

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

49. Проверка аутентифицирован ли пользователь is_user_logged_in()

Отображение какой-то особой информации для аутентифицированного пользователя - это самое обычное дело. Для проверки факта аутентификации текущего пользователя следует использовать условный тег is_user_logged_in().

Параметры

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

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

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

<?php

if ( is_user_logged_in() ) {

    $current_user = wp_get_current_user();

    echo __( 'Good to see you', 'translation-domain' ) . ', ' . $current_user->display_name . '!';

} else {

    _e( 'Welcome to our website!', 'translation-domain' );

}

?>

50. Является ли вложение изображением: wp_attachment_is_image()

Данный тег очень прост: передаём ID поста в качестве параметра и получаем TRUE если вложением поста является файл JPG, JPEG, GIF или PNG (и FALSE в обратном случае).

Параметры

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

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

Технически не обязателен, т.к. по умолчанию будет передан 0, что означает возврат не существующего поста.

51. Проверка существования типа поста: post_type_exists()

В некоторых ситуация может понадобится необходимость проверки существования того или иного типа поста. Для этого можно воспользоваться условным тегом post_type_exists().

Параметры

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

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

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

К примеру вы разрабатываете плагин для портфолио и хотите ввести новый тип поста "portfolio". Однако такой тип уже может существовать. Для вывода соответствующего сообщения можно сделать следующее:

<?php

add_action( 'admin_notices', 'same_post_type_warning' );

function same_post_type_warning() {

    if ( post_type_exists( 'portfolio' ) ) {

        echo '<div class="error">
                  <p><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'A post type with the name "portfolio" has already been registered by another plugin or theme. This will most probably cause conflicts.', 'translation-domain' ) . '</p>
              </div>';

    }

}

?>

52. Проверка дня публикации поста: is_new_day()

Условный тег is_new_day() вернёт TRUE если день поста отличается от предыдущего.

Параметры

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

Итог

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

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

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


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

^ Наверх ^