侧边栏仅显示在博客页面上

时间:2015-08-21 作者:sidebars are fun

我目前正在开发一个主题,该主题使用一个用于联系人、关于、公文包和主页的页面侧栏,以及一个用于博客页面的博客侧栏。

由于某些原因,页面侧边栏没有显示在其各自的页面上。我通过WordPress theme validator, 这给了我以下错误消息:

“侧栏需要在连接到widgets\\u init操作的自定义函数中注册。请参阅:register\\u sidebar()。”

以下是我用来注册和创建两个侧栏的代码,以供参考:

function wpt_create_widget( $name, $id, $description ) {

    register_sidebar(array(
        \'name\' => __( $name ),   
        \'id\' => $id, 
        \'description\' => __( $description ),
        \'before_widget\' => \'<div class="widget">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<h2 class="module-heading">\',
        \'after_title\' => \'</h2>\'
    ));

}

wpt_create_widget( \'Page Sidebar\', \'page\', \'Displays on the side of pages with a sidebar\' );
wpt_create_widget( \'Blog Sidebar\', \'blog\', \'Displays on the side of pages in the blog section\' );
有谁能给我一些建议,告诉我应该关注哪些特定的PHP文件来纠正这个问题?我可能将其缩小到以下文件:

functions.php
page-sidebar-left.php
sidebar.php (Blog Sidebar)
sidebar-page.php (Page Sidebar)

1 个回复
SO网友:Nathan Powell

您遇到的错误是,您必须将已注册的侧栏添加到widgets_init.

add_action( \'widgets_init\', \'wpa199335_page_sidebar\' );

function wpa199335_page_sidebar(){
    register_sidebar(array(
        \'name\' => __( \'Page Sidebar\'),
        \'id\' => \'page\',
        \'description\' => __( \'Displays on the side of pages with a sidebar\' ),
        \'before_widget\' => \'<div class="widget">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<h2 class="module-heading">\',
        \'after_title\' => \'</h2>\'
    ));
}
这将只注册要将小部件放入其中的区域。要在页面上显示侧栏,您需要在模板文件或functions.php.

dynamic_sidebar( \'page\' );

结束

相关推荐

如何使用`get_sidebar‘函数来调用第二个侧边栏?

在我博客的主主页中调用第二个侧栏的正确方法是什么?我是说同时有两个边栏。。。。当我得到更多信息时,我可能会编辑这个问题,但现在我觉得完全迷路了。