为单个帖子创建与主页不同的侧栏。

时间:2012-06-26 作者:qaedus

如何为单个帖子创建与主页不同的侧栏?

目前,我有两份工作,一份用于页面,一份用于博客

谢谢

这就是它的功能。php

// Register Sidebars
register_sidebar(array(\'name\' => \'Sidebar Blog\',\'id\' => \'sidebar-blog\'));
register_sidebar(array(\'name\' => \'Sidebar Pages\',\'id\' => \'sidebar-pages\'));
register_sidebar(array(\'name\' => \'Footer\',\'id\' => \'sidebar-footer\'));

// Register Menus
register_nav_menu( \'top_navi\', \'Top Navigation\' );
register_nav_menu( \'main_navi\', \'Main Navigation\' );
这是它在侧边栏中的外观。php

<div id="sidebar">  
    <ul>

<?php
    if(is_page() && is_active_sidebar(\'sidebar-pages\')) : dynamic_sidebar(\'sidebar-pages\');
    elseif(is_active_sidebar(\'sidebar-blog\')) : dynamic_sidebar(\'sidebar-blog\');
else : ?>

    <?php wp_list_categories(\'title_li=<h2>Categories</h2>\'); ?>

    <?php wp_list_pages(\'title_li=<h2>Pages</h2>\'); ?>

    <li><h2>Archives</h2>
        <ul>
        <?php wp_get_archives(); ?>
        </ul>
    </li>

    <?php wp_list_bookmarks(); ?>

<?php endif; ?>

    </ul>
</div>
谢谢!

2 个回复
SO网友:Edward Caissie

我会考虑以下几点。。。

注册新侧栏:

function your_new_widget() {
register_sidebar( array(
    \'name\'          => __( \'Single View Sidebar\', \'your_textdomain\' ),
    \'id\'            => \'sidebar-single\',
    \'description\'   => __( \'This widget area is found only on the single post view.\', \'your_textdomain\' ),
) );
}
add_action( \'widgets_init\', \'your_new_widget\' );
创建新的侧栏模板:

/** New file: sidebar-single.php */
if ( is_active_sidebar( \'sidebar-single\' ) ) :
    dynamic_sidebar( \'sidebar-single\' );
endif;
然后修改你的单曲。php模板调用新侧栏(如上所示):

/** Modify single.php */
get_sidebar( \'single\' );
当然,您需要充实新的单视图侧栏模板文件。。。WordPress模板层次结构将负责在单个帖子视图上使用新的侧栏。

SO网友:Stephen Harris

注册侧栏:

register_sidebar(array(\'name\' => \'Sidebar Blog\',\'id\' => \'sidebar-blog\'));
register_sidebar(array(\'name\' => \'Sidebar Pages\',\'id\' => \'sidebar-pages\'));
register_sidebar(array(\'name\' => \'Sidebar Post\',\'id\' => \'sidebar-posts\'));
然后,在侧栏模板中,使用is_page()is_single() 条件标记:

if( is_page() && is_active_sidebar(\'sidebar-pages\') ){
     dynamic_sidebar(\'sidebar-pages\');

}elseif( is_single() && is_active_sidebar(\'sidebar-posts\') ){
     dynamic_sidebar(\'sidebar-posts\');

}elseif( is_active_sidebar(\'sidebar-blog\') ){
     dynamic_sidebar(\'sidebar-blog\');

}else{
    //Default
}

结束

相关推荐

在single.php/sidebar.php中发布X of Y

有没有办法把“Y中的X”放进我的侧边栏?我想我只能在一篇博客文章(比如检查内容是否为单篇)时显示它,但我希望能够看到我正在查看的文章。在过去的20分钟里,谷歌搜索“wordpress post x of y”给了我很多关于y页中x类或类似内容的信息,所以我想在这里问一下。