is_active_widget()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
is_active_widget( callable|false $callback = false, string|false $widget_id = false, string|false $id_base = false, bool $skip_inactive = true ): string|false
Описание
Можно использовать либо $callback, либо $id_base.
$id_base — это первый аргумент при расширении класса WP_Widget.
Без необязательного параметра $widget_id возвращает ID первой боковой панели, в которой найден первый экземпляр виджета с заданной функцией обратного вызова или $id_base.
С параметром $widget_id возвращает ID боковой панели, где найден виджет с этой функцией обратного вызова/$id_base И этим ID.
ПРИМЕЧАНИЕ: $widget_id и $id_base совпадают для одиночных виджетов. Чтобы функция работала корректно, она должна выполняться после инициализации виджетов, на действии ‘init’ или позже.
Дополнительные сведения об этой и похожих функциях темы см. в статье о Conditional Tags в Theme Developer Handbook.
Оригинал (английский)
Either $callback or $id_base can be used.
$id_base is the first argument when extending WP_Widget class.
Without the optional $widget_id parameter, returns the ID of the first sidebar in which the first instance of the widget with the given callback or $id_base is found.
With the $widget_id parameter, returns the ID of the sidebar where the widget with that callback/$id_base AND that ID is found.
NOTE: $widget_id and $id_base are the same for single widgets. To be effective this function has to run after widgets have initialized, at action ‘init’ or later.
For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.
Параметры
$callback
callable|false
необязательный
= false
$widget_id
string|false
необязательный
= false
$id_base
string|false
необязательный
= false
$skip_inactive
bool
необязательный
= true
Возвращаемое значение
string|false
Исходный код
wp-includes/widgets.php:914
function is_active_widget( $callback = false, $widget_id = false, $id_base = false, $skip_inactive = true ) {
global $wp_registered_widgets;
$sidebars_widgets = wp_get_sidebars_widgets();
if ( is_array( $sidebars_widgets ) ) {
foreach ( $sidebars_widgets as $sidebar => $widgets ) {
if ( $skip_inactive && ( 'wp_inactive_widgets' === $sidebar || str_starts_with( $sidebar, 'orphaned_widgets' ) ) ) {
continue;
}
if ( is_array( $widgets ) ) {
foreach ( $widgets as $widget ) {
if ( ( $callback && isset( $wp_registered_widgets[ $widget ]['callback'] ) && $wp_registered_widgets[ $widget ]['callback'] === $callback ) || ( $id_base && _get_widget_id_base( $widget ) === $id_base ) ) {
if ( ! $widget_id || ( isset( $wp_registered_widgets[ $widget ]['id'] ) && $widget_id === $wp_registered_widgets[ $widget ]['id'] ) ) {
return $sidebar;
}
}
}
}
}
}
return false;
}
История изменений
| Версия | Описание |
|---|---|
| 2.2.0 | Introduced. |

