首页 文章

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

提问于
浏览
1

我在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>'
));

现在我可以通过仪表板 - >外观 - >小部件在WordPress管理员中看到这个动态侧边栏 .

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

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

3 回答

  • 0

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

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

    并且不要误会,侧边栏不是小部件,它是小部件区域 .

  • 1

    使用dynamic_sidebar()the_widget()这很容易做到 .

    如果没有向动态侧边栏添加窗口小部件,则这是显示默认内容的构造:

    <?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 值 . )

  • 1

    它可能但不是自动激活 . 您需要在需要小部件(假设侧边栏)侧边栏的位置真正构建小部件并且管理员将新侧边栏小部件弹出到阵容中时,您需要做的事情会自动切换以使用管理员指定的设置 .

    所以,是的,您可以将其作为默认值 . 不作为自动激活...

    有关更多信息https://stackoverflow.com/a/3057665/716492

相关问题