Adding Multiple Sidebars

时间:2015-02-19 作者:steamfunk

大家好,我想向我的wordpress站点添加多个侧栏。我目前在函数中注册了两个侧栏。php类似:

function themename_widgets_init() {
    register_sidebar( array(
        \'name\'          => __( \'Sidebar\', \'themename\' ),
        \'id\'            => \'sidebar-1\',
        \'description\'   => \'Sidebar for all pages\',
        \'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\'          => __( \'Sidebartwo\', \'themename\' ),
        \'id\'            => \'sidebar-2\',
        \'description\'   => \'Sidebar for product page\',
        \'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\', \'themename_widgets_init\' );
在我的侧边栏中。php我目前有这段代码,如果我没有添加任何小部件,它会将默认数据添加到我的侧栏中。

<div id="secondary" class="widget-area" role="complementary">
        <?php if ( ! dynamic_sidebar( \'sidebar-1\' ) ) : ?>

            <aside id="search" class="widget widget_search">
                <?php get_search_form(); ?>
            </aside>

            <aside id="archives" class="widget">
                <h1 class="widget-title"><?php _e( \'Archives\', \'themename\' ); ?></h1>
                <ul>
                    <?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
                </ul>
            </aside>

            <aside id="meta" class="widget">
                <h1 class="widget-title"><?php _e( \'Meta\', \'themename\' ); ?></h1>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </aside>

        <?php endif; // end sidebar widget area ?>
    </div><!-- #secondary -->
有没有人知道如何对我的侧边栏-2进行同样的操作?根据我所读的内容,我必须创建一个侧边栏-2。我所做的php,包括与上面相同的代码,如下所示:

            <aside id="search" class="widget widget_search">
                <?php get_search_form(); ?>
            </aside>

            <aside id="archives" class="widget">
                <h1 class="widget-title"><?php _e( \'Archives\', \'themename\' ); ?></h1>
                <ul>
                    <?php wp_get_archives( array( \'type\' => \'monthly\' ) ); ?>
                </ul>
            </aside>

            <aside id="meta" class="widget">
                <h1 class="widget-title"><?php _e( \'Meta\', \'themename\' ); ?></h1>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </aside>

        <?php endif; // end sidebar widget area ?>
    </div><!-- #secondary -->
但不幸的是,它不起作用。有人知道为什么吗?

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

如果侧栏文件名为sidebar-1.php 正确使用get_sidebar() (WP Codex) 功能将是:

<?php get_sidebar( \'1\' ); ?>

结束

相关推荐

List sidebars on a page

我需要在给定页面上生成边栏列表。我知道如何列出所有已注册的侧栏,以及所有已注册的具有活动小部件的侧栏,但我不知道how to filter 他们一直到the sidebars that were displayed on an individual page 使用PHP。为了避开这个我$wp_registered_sidebars 并将其替换为实现ArrayAccess, 其中90%的方式是拦截调用并存储请求的侧栏,只有侧栏永远不会显示,因为某个地方是is_array 或其他检查失败。我也可以拦截dyna