在自定义模板页面上显示侧边栏-2

时间:2012-12-23 作者:MultiformeIngegno

环境:WP 3.5,《十二个孩子》主题。我创建了一个自定义模板。现在,我想在这个自定义模板页面中显示内置的侧栏-2(而不是默认的侧栏-1)。提要栏2已经由212个函数注册。php。我读了一些关于get\\u边栏以及如何激活其他边栏的内容,但我仍然有点困惑。为了在这个自定义模板上激活侧栏-2,我创建了一个文件侧栏customtemplate。包含以下内容的子主题目录中的php:

<?php if ( is_active_sidebar( \'sidebar-2\' ) ) : ?>
    <div id="secondary" class="widget-area" role="complementary">               
        <?php dynamic_sidebar( \'sidebar-2\' ); ?>
    </div><!-- #secondary -->
<?php endif; ?>
然后在我的自定义模板文件中get_sidebar(); 具有<?php get_sidebar( $customtemplate ); ?>. 然后我将一些小部件添加到侧栏-2(来自外观-小部件),但在主页中仍然显示侧栏-1!为什么?:(

4 个回复
最合适的回答,由SO网友:MultiformeIngegno 整理而成
<?php get_sidebar( \'customtemplate\' ); ?> 

did the thing :)

SO网友:Iliya Reyzis

你可以把这段代码放在你的函数中

add_action( \'init\', \'register_my_menus\' );
function register_my_menus() {
    register_nav_menus(
        array(
            \'menu-1\' => __( \'Head\' )
        )
    );
}
这个代码,在你想要第二个菜单的地方

<?php wp_nav_menu( array( \'theme_location\' => \'menu-1\' ) ); ?>
然后,您可以通过menu section 在管理面板中

SO网友:Vignesh Pichamani

将侧栏2重命名为侧栏2。php和after使用此代码

<?php get_sidebar(\'sidebar2\');?>
希望它能起作用

SO网友:jmodine

您是否创建了同时包含左侧和右侧栏的CSS?

/*----------------------------------------------------
    2 sidebars
---------------------------------------------------- */
#sidebar {
    Float:left;
    width:20%;
    display:block;
}
#sidebar-core {
    margin-right:20px;
}
#main {
    float: left;
    width: 65%;
    display: block;
}
#intro,
#main-core {
    margin-right: 20px;
    margin-left: 20px;
}
#sidebarright {
    display: block;
    float: left;
    width: 15%;
}
#sidebarright-core {
    margin-left: 20px;
}
在你的主题中以你的风格上传这个。把它命名为两个边栏。css,然后转到您的函数。php,需要一次。您必须定义路径,例如:

wp_register_style( \'twosidebars\', get_template_directory_uri() . \'/styles/layouts/two-sidebar.css\', \'\', \'1.1\' );
您将看到需求的其他侧栏选项。模仿你所做的。

现在您需要一个新的侧边栏。php调用CSS,因此创建一个新的CSS并将其命名为sidbar2。php并插入如下内容:

<div id="sidebar">
        <div id="sidebar-core">    
            <?php do_action( \'before_sidebar\' ); ?>
            <?php if ( ! dynamic_sidebar() get_sidebar() ); ?>   
        </div>
</div><!-- #sidebar -->

<div id="sidebarright">
        <div id="sidebarright-core">
            <?php do_action( \'before_sidebar\' ); ?>
            <?php if ( ! dynamic_sidebar() get_sidebar(sidebar2) ); ?>   
        </div>
</div><!-- #sidebar2 -->
现在,所有这些都假设您已经在函数中将数组提要栏2注册为数组。php。这还假设您编辑了样式表,以包含侧栏2的单独样式。

结束

相关推荐

Sidebar.php中多个is_page()条件的条件标记问题

我今天一直在努力把事情做好。基本上,我有一个侧栏,它向各个文件(如sidebar-home.php、sidebar-residential.php)发出请求,并根据您所在的页面加载不同的动态菜单。以前,在以下位置之间移动时很容易设置:is\\U页面、is\\U单一、is\\U类别、is\\U存档等。。。但是,正如我所读到的,is\\u页面始终返回true,尽管存在任何重置或endif条件。希望听到一些关于我在这里做错了什么的反馈。如何获取is\\U页(24)和is\\U页(36)以查看侧边栏的不同部分?代