以下是一个使用sidebars_widgets
从中筛选wp_get_sidebars_widgets()
函数called 在dynamic_sidebar()
功能:
/**
* Remove the recent comments widgets from a given sidebar (index)
*
* @link http://wordpress.stackexchange.com/q/151361/26350
*/
! is_admin() && add_filter( \'sidebars_widgets\', function( $sidebars_widgets ) {
// ------------------------
// Edit this to your needs:
$sidebar_index = \'sidebar-1\';
$find = \'recent-comments\';
// ------------------------
if( isset( $sidebars_widgets[$sidebar_index] ) && 0 == get_comments_number() )
{
foreach( $sidebars_widgets[$sidebar_index] as $key => $widget )
{
if( false !== stripos( $widget, $find ) )
unset( $sidebars_widgets[$sidebar_index][$key] );
}
}
return $sidebars_widgets;
}, PHP_INT_MAX );
您必须记住修改
$sidebar_index
和
$find
满足您的需求。
我们还可以循环浏览所有侧栏,而不是针对单个侧栏。如果需要,我相信您可以调整代码段。