侧边栏上未显示的小部件

时间:2014-04-25 作者:yes_in

我已经使用下面的功能在我的主题中注册了两个侧栏,但没有一个小部件显示在侧栏中,即使我可以在仪表板中管理它们:

// register sidebars
add_action( \'widgets_init\', \'my_register_sidebars\' );
function my_register_sidebars() {

    register_sidebar(
        array(
            \'id\' => \'sidebar-left\',
            \'name\' => __( \'sidebar-left\' ),
            \'description\' => __( \'A short description of the sidebar.\' ),
            \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h2 class="sidebar-title">\',
            \'after_title\' => \'</h2>\'
        )
    );

        register_sidebar(
        array(
            \'id\' => \'sidebar-right\',
            \'name\' => __( \'sidebar-right\' ),
            \'description\' => __( \'A short description of the sidebar.\' ),
            \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
            \'after_widget\' => \'</div>\',
            \'before_title\' => \'<h2 class="sidebar-title">\',
            \'after_title\' => \'</h2>\'
        )
    );
}
调用模板文件如下

<div id="sidebar-left" >

    <?php if ( is_active_sidebar( \'left\' ) ) : ?>

        <?php dynamic_sidebar( \'left\' ); ?>

    <?php else : ?>

        <p> here should be a left sidebar</p>

    <?php endif; ?>

</div>
显示段落,但小部件没有显示。有什么建议吗?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您已将侧边栏注册到id第页,共页sidebar-leftsidebar-right 但您正在尝试仅使用leftright. 您需要使用正确的ids、 即:

dynamic_sidebar( \'sidebar-left\' );
你需要这个id 两者都有dynamic_sidebar()is_active_sidebar()

if ( is_active_sidebar( \'sidebar-left\' ) ) {
  dynamic_sidebar( \'sidebar-left\' );
} else { ?>
  <p> here should be a left sidebar</p><?php 
}

结束

相关推荐

根据URL更改sidebar.php和footer.php

几天前,我提出了一个类似的问题,但也许我的问题有点不正确。我想要我的页脚。php和侧栏。php将根据URL进行更改。如果URL包含/ru,则显示ru页脚。php else显示默认页脚(footer.php)。侧边栏也应该如此。如果可能的话,你能一步一步地引导我吗。非常感谢。