Условные теги в 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"
-
Почему WordPress лучше чем Joomla ?
Этот урок скорее всего будет психологическим, т.к. многие люди работают с WordPress и одновременно с Joomla, но не могут решится каким CMS пользоваться.
-
Про шаблоны WordPress
После установки и настройки движка нам нужно поработать с дизайном нашего сайта. Это довольно долгая тема, но мы постараемся рассказать всё кратко и ясно.
-
Самые первые настройки после установки движка WordPress
Сегодня мы вам расскажем какие первые настройки нужно сделать после установки движка WordPress. Этот урок будет очень полезен для новичков.
-
10 стратегий эффективного продвижения статей в блогах на WordPress
Продвижение статей в блоге - непростая задача. Часто бывает, что вы пишете действительно хороший контент, включаете визуальные эффекты, делаете правильные корректировки SEO, но это не дает ожидаемого результата.
-
Топ WordPress альтернатив для создания персонального сайта
Нужен персональный сайт, но вы не хотите задействовать WordPress? Тогда данная подборка для вас.