Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren



is_active_widget ›

Seit2.2.0
Veraltetn/v
is_active_widget ( $callback = false, $widget_id = false, $id_base = false, $skip_inactive = true )
Parameter: (4)
  • (string|bool) callback Optional, Widget callback to check. Default false.
    Erforderlich: Nein
    Standard: false
  • (int|bool) widget_id Optional. Widget ID. Optional, but needed for checking. Default false.
    Erforderlich: Nein
    Standard: false
  • (string|bool) id_base Optional. The base ID of a widget created by extending WP_Widget. Default false.
    Erforderlich: Nein
    Standard: false
  • (bool) skip_inactive Optional. Whether to check in 'wp_inactive_widgets'. Default true.
    Erforderlich: Nein
    Standard: true
Gibt zurück:
  • (string|bool) False if widget is not active or id of sidebar in which the widget is active.
Definiert in:
Codex:

Determines whether a given 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. 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 Array or later. For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.


Quellcode

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;
}