我已经使用下面的功能在我的主题中注册了两个侧栏,但没有一个小部件显示在侧栏中,即使我可以在仪表板中管理它们:
// 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>
显示段落,但小部件没有显示。有什么建议吗?
最合适的回答,由SO网友:s_ha_dum 整理而成
您已将侧边栏注册到id
第页,共页sidebar-left
和sidebar-right
但您正在尝试仅使用left
和right
. 您需要使用正确的id
s、 即:
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
}