如何将默认窗口小部件添加到自定义动态侧边栏

时间:2012-04-18 05:37:02

标签: wordpress

我在WordPress中使用此代码添加了自定义动态侧边栏

register_sidebar
(array(
'name' => __( 'My widget' ),
'id' => 'right-sidebar',
'description' => __( 'Widgets in this area will be shown on the right-hand side.' ),
'before_title' => '<h1>',
'after_title' => '</h1>'
));

现在我可以通过Dashboard在WordPress管理员中看到这个动态侧边栏 - &gt;外观 - &gt;窗口小部件。

当我激活主题时,默认情况下此动态侧边栏不显示内容;显示窗口小部件(例如,最近的帖子,页面,类别)我必须将它们拖到我的窗口小部件动态侧边栏中。

但是我希望My Widget动态侧边栏默认显示三个Widgets(Recent Posts,Pages,Category),类似于Twenty Ten或Twenty Eleven中的动态侧边栏。

3 个答案:

答案 0 :(得分:1)

嗯,这是一种正常行为,您只需在主题中为此侧边栏设置默认内容即可。看看Twentyeleven / sidebar.php,你可以做同样的事情:

<?php if ( ! dynamic_sidebar( 'right-sidebar' ) ) : ?>
  Default content
<?php endif; ?>

不要误会,侧边栏不是小部件,它是小部件区域。

答案 1 :(得分:1)

使用dynamic_sidebar()the_widget()

,这很容易做到

如果没有将Widgets添加到动态侧边栏,则这是显示默认内容的构造:

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    // default content goes here
}
?>

因此,要将特定的小部件输出为默认内容,只需调用the_widget($widget, $instance, $args)即可。例如,要显示"Recent Posts" Widget

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    the_widget( 'WP_Widget_Recent_Posts' );
}
?>

(有关其他使用示例,请参阅链接的Codex参考,以及每个Widget的$instance / $args值。)

答案 2 :(得分:0)

它可能但不是自动激活。 您需要在需要的小部件(假设侧边栏)边栏是真正的小部件就绪的地方做什么,管理员将新的侧边栏小部件弹出到阵容中,事情将自动切换为使用管理员指定的设置。

是的,您可以将其作为默认设置。不作为自动激活...

了解更多信息https://stackoverflow.com/a/3057665/716492