首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为单个帖子创建一个与主页不同的边栏。

为单个帖子创建一个与主页不同的边栏。
EN

WordPress Development用户
提问于 2012-06-26 15:21:48
回答 2查看 1.4K关注 0票数 1

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

目前我有两个工作,一个负责网页,一个负责博客。

谢谢

这就是它在funtions.php中的样子

代码语言:javascript
复制
// 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' );

这就是它在sidebar.php中的样子

代码语言:javascript
复制
<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>

谢谢!

EN

回答 2

WordPress Development用户

发布于 2012-06-26 19:32:51

我会考虑以下几点。

注册一个新的侧栏:

代码语言:javascript
复制
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' );

创建一个新的侧栏模板:

代码语言:javascript
复制
/** New file: sidebar-single.php */
if ( is_active_sidebar( 'sidebar-single' ) ) :
    dynamic_sidebar( 'sidebar-single' );
endif;

然后修改您的“single.php”模板以调用新的侧栏(上面):

代码语言:javascript
复制
/** Modify single.php */
get_sidebar( 'single' );

当然,您需要充实新的单一视图侧边栏模板文件..。WordPress模板层次结构将负责在单个post视图上使用新的侧边栏。

票数 1
EN

WordPress Development用户

发布于 2012-06-26 16:41:52

注册侧栏:

代码语言:javascript
复制
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()条件标记:

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/56580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档