Главная Новости

Is_active_widget() - функция WordPress

Опубликовано: 01.09.2018

Условный тег, проверяет, отображается ли виджет во сайте, если да — возвращает ID сайдбара, в котором он отображается, если нет, возвращает false.

Для того, чтобы эта функция правильно работала, она должна быть запущена после инициализации виджетов.

is_active_widget ( $callback = false , $widget_id = false , $id_base = false , $skip_inactive = true )
$callback (строка) в качестве условия проверки мы можем установить обратную функцию (класс) виджета. Если на сайте задействовано несколько однотипных виджетов, тогда используйте ID виджета для проверки. $widget_id (целое число) ID виджета, который нужно проверить. Этот параметр нужен на случай, если у вас на сайте может быть подключено несколько однотипных виджетов, а проверить нужно только один. ID можно узнать в исходном HTML коде страницы.
class trueCustomWidget extends WP_Widget { function __construct ( ) { parent::__construct ( 'true_custom_widget' , 'Мой произвольный виджет' , array ( 'description' => 'Описание виджета.' ) ) ; add_action ( 'wp_enqueue_scripts' , array ( & $this , 'js' ) ) ; } ... function js ( ) { if ( is_active_widget ( false , 'my_custom_widget-3' , $this -> id_base , true ) ) { wp_enqueue_script ( 'my-custom-script' ) ; } } }
$id_base (строка) базовый ID виджета, т.е. ID без цифр, например search ( виджет формы поиска ), recent-posts ( виджет свежих записей ), nav_menu ( виджет произвольных меню ), my-custom-widget (какой-нибудь произвольный виджет, созданный вами) и так далее. Этот ID легко вычисляется в исходном коде на странице виджетов или, если виджет добавлен, его можно посмотреть прямо на сайте.
// предположим, что у меня есть какой-то скрипт, который реализует самозаполнение формы поиска function true_check_widget ( ) { if ( is_active_widget ( '' , '' , 'search' ) ) { // проверяем, если виджет поисковой формы активен wp_enqueue_script ( 'my-custom-autocomplete-search' ) ; // это к примеру } } add_action ( 'init' , 'true_check_widget' ) ;

Пример использования этого параметра внутри класса:

class trueCustomWidget extends WP_Widget { function __construct ( ) { parent::__construct ( 'true_custom_widget' , 'Мой произвольный виджет' , array ( 'description' => 'Описание виджета.' ) ) ; if ( is_active_widget ( false , false , $this -> id_base , true ) ) { wp_enqueue_script ( 'my-custom-script' ) ; } } ... }
$skip_inactive (логическое) нужно ли включить в проверку виджеты из wp_inactive_widgets.

Добро пожаловать , Гость !

Мы настоятельно рекомендуем Вам зарегистрироваться, если вы ещё этого не сделали. регистрация откроет Вам новые функции.

Войти или Зарегистрироваться

www.silvio-berluskoni.ru © Все права защищены © 2016.
rss