我正在创建一个自定义WordPress模板,其中有4个“侧边栏”,一个用于标题,一个单独的侧边栏用于左侧和右侧列,然后是另一个侧边栏用于页脚,所有这些都很好并且正常工作。但是,使用我的模板,标题侧边栏一次只能容纳一个窗口小部件,所以我想知道是否有办法将多个窗口小部件添加到侧边栏,但是以某种方式操纵代码只显示随机(或者甚至在某些窗口中)特定顺序)小部件一次,将在每个新页面重新加载时更改。
我以前编写侧栏的代码:
if (function_exists('register_sidebar')) {
register_sidebar(array(
'name' => 'Header Sidebar Widgets',
'id' => 'sidebar-widgets-header',
'description' => 'The Header Can Only Support One (1) Widget.',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>'
));
}
然后我用来将侧栏添加到我的模板的代码:
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar-widgets-header') ) :
endif;
以下是我目前管理员中侧边栏的图片:
Sample http://illstudios.com/widget.jpg
引用一个和精选视频是我创建的自定义小部件。那么有没有办法只从选择中选择一个随机窗口小部件,一次只显示一个窗口小部件?
答案 0 :(得分:2)
有一个过滤器可以返回所有侧边栏中的所有小部件。我们可以用它来洗牌和修剪其中一个侧边栏:
if( !is_admin() )
{
add_filter( 'sidebars_widgets', 'sidebar_so_23691473' );
}
function sidebar_so_23691473( $sidebars_widgets )
{
shuffle( $sidebars_widgets['sidebar-widgets-header'] );
$only_one = array_slice( $sidebars_widgets['sidebar-widgets-header'] , -1 );
$sidebars_widgets['sidebar-widgets-header'] = $only_one;
return $sidebars_widgets;
}