虽然逻辑可能会变得复杂,但您可以使用widget_display_callback
滤器
例如,这将只允许在ID为“sidebar-1”的侧栏中显示核心文本小部件:
add_filter(
\'widget_display_callback\',
function ($instance, $widget, $sidebar){
if (
is_single()
&& \'sidebar-1\' === $sidebar[\'id\']
) {
if (\'WP_Widget_Text\' !== get_class($widget)) {
return false;
}
}
return $instance;
},
10,3
);