is_active_widget( string|false $callback = false, int|false $widget_id = false, string|false $id_base = false, bool $skip_inactive = true )
Whether widget is displayed on the front end.
Description
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.
Parameters
- $callback
-
(Optional) Widget callback to check.
Default value: false
- $widget_id
-
(Optional) Widget ID. Optional, but needed for checking.
Default value: false
- $id_base
-
(Optional) The base ID of a widget created by extending WP_Widget.
Default value: false
- $skip_inactive
-
(Optional) Whether to check in 'wp_inactive_widgets'.
Default value: true
Return
(string|false) False if widget is not active or id of sidebar in which the widget is active.
Source
File: wp-includes/widgets.php
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 || 'orphaned_widgets' === substr( $sidebar, 0, 16 ) ) ) {
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 || $widget_id == $wp_registered_widgets[$widget]['id'] )
return $sidebar;
}
}
}
}
}
return false;
}
Changelog
Version | Description |
---|---|
WP-2.2.0 | Introduced. |