Главная
›
Новости
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.