is_active_widget

函数
is_active_widget ( $callback = false, $widget_id = false, $id_base = false, $skip_inactive = true )
参数
  • (callable|false) $callback Optional. Widget callback to check. Default false.
    Required:
    Default: false
  • (string|false) $widget_id Optional. Widget ID. Optional, but needed for checking. Default false.
    Required:
    Default: false
  • (string|false) $id_base Optional. The base ID of a widget created by extending WP_Widget. Default false.
    Required:
    Default: false
  • (bool) $skip_inactive Optional. Whether to check in 'wp_inactive_widgets'. Default true.
    Required:
    Default: true
返回值
  • (string|false) ID of the sidebar in which the widget is active, false if the widget is not active.
定义位置
相关方法
is_active_sidebarregister_widgetthe_widgetretrieve_widgetsunregister_widget
引入
2.2.0
弃用
-

is_active_widget: 这个函数用来检查一个小工具是否当前在网站上是活跃的。它以小工具的ID为参数,如果该小工具是活动的,则返回true,否则返回false。

决定一个给定的小工具是否在前端显示。

可以使用$callback或者$id_base $id_base是扩展WP_Widget类时的第一个参数 没有可选的$widget_id参数,返回第一个侧边栏的ID,在这个侧边栏中发现了带有给定回调或者$id_base的widget的第一个实例。如果有$widget_id参数,则返回侧边栏的ID,在该侧边栏中发现了具有该回调/$id_base和该ID的widget。

注意:$widget_id和$id_base对于单个widget来说是一样的。为了有效,这个函数必须在widget初始化后运行,在{@see ‘init’}或以后的动作中。

关于这个和类似主题函数的更多信息,请查看《主题开发者手册》中的{@link Conditional Tags}文章。

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

常见问题

FAQs
查看更多 >