is_active_widget

Definition:
function is_active_widget($callback = false, $widget_id = false, $id_base = false, $skip_inactive = true) {}

Whether widget is displayed on the front-end.
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.

Parameters

  • string $callback: Optional, Widget callback to check.
  • int $widget_id: Optional, but needed for checking. Widget ID.
  • string $id_base: Optional, the base ID of a widget created by extending WP_Widget.
  • bool $skip_inactive: Optional, whether to check in ‘wp_inactive_widgets’.

Return values

returns:false if widget is not active or id of sidebar in which the widget is active.

Source code

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 )

				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;

}

2083

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: