Условный тег, проверяет, отображается ли виджет во сайте, если да — возвращает 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'); } } }
- Описание функции wp_enqueue_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
.
Источник: misha.blog