Да, is_active_widget()
получить значение из опций, сохраненных в базе данных.Поэтому он вернет true для всех активных виджетов.is_active_sidebar()
ведет себя одинаково, даже если боковая панель не загружена на определенных страницах, возвращаемое значение всегда будет истинным, пока боковая панель зарегистрирована.
Обе функции проверяют глобальные $wp_registered_widgets
, $_wp_sidebars_widgets
, $sidebars_widgets
какие значения генерируются из register_sidebar()
и виджетов, добавленных на боковую панель.
К сожалению, для этого нет обходного пути.Поскольку dynamic_sidebar()
загружается после wp_head()
, невозможно привязать к нему скрипт или таблицу стилей.Сценарий, стили или все, что вы подключите к wp_head
, всегда будет там, даже если боковая панель загружена или нет, если виджет неактивен.
Может быть, логически, есть другая возможность для добавления скрипта на wp_footer()
для виджета, в этом случае вы можете установить глобальную переменную или определить константу в вашей функции виджета.Поэтому скрипты будут загружаться только при активном виджете.
Ну, вот мои два цента