在主题中添加额外的侧边栏

时间:2015-08-24 作者:user3409468

我想在我的wordpress主题中添加一个额外的边栏。我希望它位于左侧边栏的正下方,而不是它当前显示的旁边:www.giftforgag.com.

我尝试了很多方法,但似乎都没有效果。我还尝试了对css进行各种更改。

我原以为get_sidebar(\'left\'); 就在get_sidebar(); 存在于最后但尚未实现的函数。

讨论的主题是214,我将文件的代码放在这里:

<?php

    get_header(); ?>
    <div id="main-content" class="main-content">

    <?php
        if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
            get_template_part( \'featured-content\' );
        }
    ?>

        <div id="primary" class="content-area">
            <div id="content" class="site-content" role="main">
            <?php
                if ( have_posts() ) :
                    while ( have_posts() ) : the_post();

                        get_template_part( \'content\', get_post_format() );

                    endwhile;

                    twentyfourteen_paging_nav();

                else :
                    get_template_part( \'content\', \'none\' );

                endif;
            ?>
            </div><!-- #content -->
        </div><!-- #primary -->
    </div><!-- #main-content -->
    <?php
    get_sidebar();
    get_sidebar(\'left\');
    get_footer();
我已使用以下代码注册小部件:

function mychild_widgets_init() {
    register_sidebar( array(
        \'name\'          => __( \'Left Widget Area\', \'twentyfourteen\' ),
        \'id\'            => \'sidebar-left\',
        \'description\'   => __( \'Left sidebar.\', \'twentyfourteen\' ),
        \'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\', \'mychild_widgets_init\' );
我也在尝试:

\'before_wdiget\' => \'<div id="content">\'
\'after_widget\' => \'</div>
到目前为止没有任何效果。

侧栏。php文件如下:

<div id="left">
    <?php if ( is_active_sidebar( \'sidebar-left\' ) ) : ?>
    <div id="left-sidebar" class="left-sidebar widget-area" role="complementary">
        <?php dynamic_sidebar( \'sidebar-left\' ); ?>
    </div>
    <?php endif; ?>
</div>

2 个回复
SO网友:Eric Holmes

get_sidebar(\'left\'); 实际上是指一个文件,而不是侧栏本身。

你看到管理部分的侧栏了吗

创建一个名为sidebar-left.php. 在该文件中,您需要添加渲染的HTML,如下所示:

<?php
// Left Sidebar template
?>
<div id="left-sidebar" class="sidebar">
    <?php dynamic_sidebar( \'sidebar-left\' ); ?>
</div>

SO网友:kraftner

你在这里混淆了两件事,即

register_sidebar()

这是注册一个侧边栏,以便您可以在后端将内容放入其中。

get_sidebar()

这只包括一个文件sidebar.php (或sidebar-nice-bar.php 如果你打电话get_sidebar(\'nice-bar\')) 从当前主题

dynamic_sidebar()

这实际上显示了您在后端添加到用定义的侧栏区域的小部件register_sidebar. 这可能是在中引用的一个文件中完成的get_sidebar.

因此,根据您的问题,您需要做的是

get_sidebar(\'left\');
使用

dynamic_sidebar(\'left\');
或创建一个名为sidebar-left.php 在主题中添加dynamic_sidebar(\'left\') 对它。

要获得更详细、更好的解释,请查看this excellent post 通过@justin-tadlock

结束

相关推荐

Wp-Content/Themes文件夹在哪里?

我想为我的wordpress站点创建一个子主题(仅供参考),这样我的更改就不会被每次更新所覆盖。显然,我需要在wp-content/themes文件夹中为子主题创建一个子文件夹。问题是,我找不到它。我曾尝试将wp内容和wp内容/主题添加到域中-它生成了一个空白的白色页面。我试着在spotlight文件搜索(是的,我有一台mac电脑)中搜索它(只是“wordpress”),它只找到了一些我在2010年安装的wordpress文件夹,我甚至都不记得做过这些。由于我最近在过去两周(2014年5月)建立了这个网站