我看不到可能重复链接中的答案是否使用sidebars_widgets
过滤器,所以让我在这里添加它作为另一种可能性:
以下假设您使用dynamic_sidebar()
函数来显示边栏/小部件或任何调用wp_get_sidebars_widgets()
作用
随机化小部件:
此代码段以随机顺序显示所有小部件:
/**
* Randomize widgets in a given sidebar (index)
*
* @See http://wordpress.stackexchange.com/a/152408/26350
*/
! is_admin() && add_filter( \'sidebars_widgets\', function( $sidebars_widgets ) {
// ------------------------
// Edit this to your needs:
$sidebar_index = \'sidebar-1\';
// ------------------------
if( isset( $sidebars_widgets[$sidebar_index] ) )
{
// Randomize the array:
shuffle( $sidebars_widgets[$sidebar_index] );
}
return $sidebars_widgets;
}, PHP_INT_MAX );
随机小部件-仅显示单个小部件:此代码段仅显示单个随机小部件:
/**
* Randomize widgets in a given sidebar (index) and only display a single widget
*
* @See http://wordpress.stackexchange.com/a/152408/26350
*/
! is_admin() && add_filter( \'sidebars_widgets\', function( $sidebars_widgets ) {
// ------------------------
// Edit this to your needs:
$sidebar_index = \'sidebar-1\';
// ------------------------
if( isset( $sidebars_widgets[$sidebar_index] ) )
{
// Randomize the array:
shuffle( $sidebars_widgets[$sidebar_index] );
// Slice the array:
$sidebars_widgets[$sidebar_index] = array_slice( $sidebars_widgets[$sidebar_index], 0, 1 );
}
return $sidebars_widgets;
}, PHP_INT_MAX );
您只需记住编辑
$sidebar_index
满足您的需求。
我希望这有帮助。