如何在Underscores Wordpress主题中创建第二个侧边栏?

时间:2014-07-29 15:48:50

标签: php wordpress themes wordpress-theming sidebar

我在Underscores(_s)Wordpress主题中创建和显示第二个侧边栏时遇到问题。我一直在网上搜索,但没有找到任何合适的解决方案(甚至在StackOverflow上找到了a similar problem,但答案似乎是创建条件侧边栏而不是第二个独立边栏)。

我确实知道如何在WordPress中创建侧边栏(尽管我还没有那么经验),但这次似乎我错过了一些东西,因为侧边栏并没有显示在网站。如果有人能够查看我的代码并指出我正确的方向,我真的很感激。


这是我到目前为止执行的步骤以及我的代码:

第1步:

functions.php中注册一个新的侧边栏,所以现在这两个边栏的代码如下所示:

function theme_name_widgets_init() {
    register_sidebar( array(
        'name'          => __( 'Sidebar', 'theme-name' ),
        'id'            => 'sidebar-1',
        'description'   => '',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h1 class="widget-title">',
        'after_title'   => '</h1>',
    ) );
    register_sidebar( array(
        'name'          => __( 'Right Navigation', 'theme-name' ),
        'id'            => 'sidebar-2',
        'description'   => '',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h1 class="widget-title">',
        'after_title'   => '</h1>',
    ) );
}
add_action( 'widgets_init', 'theme_name_widgets_init' );

看起来这部分不是问题所在,因为新的侧边栏出现在WordPress仪表板中,我可以添加小部件。

第2步:

使用以下代码创建sidebar-2.php文件:

<?php
if ( ! is_active_sidebar('sidebar-2') ) {
    return;
}
?>

<nav id="site-navigation" class="main-navigation" role="navigation">
    <?php dynamic_sidebar( 'sidebar-2' ); ?>
</nav><!-- #site-navigation -->

第3步:

将此段代码添加到我希望显示第二个侧边栏的位置(例如,添加到index.phpsingle.php等文件中):

<?php get_sidebar(2); ?>

任何想法我能做错了什么或我错过了什么?

3 个答案:

答案 0 :(得分:1)

<?php dynamic_sidebar( 'sidebar-2' ); ?> 

将输出侧边栏内容。您是否已将侧边栏配置为包含CMS中的小部件?

还值得确保您使用正确的PHP模板输出侧边栏。

答案 1 :(得分:1)

你最有可能陷入早期逃亡状态。

如果您在目标边栏中没有任何有效的小部件,

is_active_sidebar()将返回FALSE。

除此之外,代码还可以,并且可以正常工作。

答案 2 :(得分:1)

就像往常一样,我在发布这个问题后偶然发现了一分钟后出了什么问题(尽管之前我已经把它包围了很长时间)。

这是一个破坏一切的愚蠢的小错误之一:我用新的侧边栏(sidebar-2.php)命名文件错误(最后有一个额外的空格)。除此之外,结果是代码没问题(因为它在重新命名文件后正确地显示了侧边栏)。

我很抱歉花时间,希望如果有人需要在Underscores中创建第二个侧边栏,这将在未来帮助他们:)