Условный тег, проверяет, отображается ли виджет во сайте, если да — возвращает ID сайдбара, в котором он отображается, если нет, возвращает false
.
Для того, чтобы эта функция правильно работала, она должна быть запущена после инициализации виджетов.
is_active_widget($callback = false, $widget_id = false, $id_base = false, $skip_inactive = true)
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'); } } }
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'); } } ... }
wp_inactive_widgets
.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.