对于用户来说,访问首页和内页的需求会有所差异,而侧边栏作为用户浏览的重要区域,如果是千篇一律的一个样,无疑会降低整站的用户体验。为此,思享找到了一个笨拙的方法,实现内页显示不同侧边栏的功能。
注册侧边栏小工具
在functions.php文件中,我们可以找到
prefunction hmjblog_widgets_init() {
register_sidebar( array(
'name' => __( '主边栏', 'hmjblog' ),
'id' => 'sidebar-1',
'description' => __( '显示在所有文章和页面', 'hmjblog' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<p class="widget-title">',
'after_title' => '</p>',
) );}
这其实就是只注册了一个 '主边栏'的小工具,我们在加上一个,即修改为
function hmjblog_widgets_init() {
register_sidebar( array(
'name' => __( '主边栏', 'hmjblog' ),
'id' => 'sidebar-1',
'description' => __( '显示在所有文章和页面', 'hmjblog' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<p class="widget-title">',
'after_title' => '</p>',
) );
register_sidebar( array(
'name' => __( '内页', 'hmjblog' ),
'id' => 'sidebar-page',
'description' => __( '显示在所有文章和页面', 'hmjblog' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<p class="widget-title">',
'after_title' => '</p>',
) );
}
在后台刷新一下,小工具就多出一个小工具了,(我还添加了一个栏目侧边栏的)

创建sidebar文件
将sidebar文件复制1个,分别命名为sidebar-page.php,上传到主题目录下
将里面的代码对应修改为:
<?php if ( is_active_sidebar( 'sidebar-category' ) ) : ?> <div id="secondary" class="widget-area" role="complementary"> <?php dynamic_sidebar( 'sidebar-category' ); ?></div><?php endif; ?>
修改调用文件
在single.php中将
<?php get_sidebar(); ?>
修改为
<?php get_sidebar(page);?>
保存即可实现文章也单独的侧边栏了,如果想在栏目或者其他页面也拥有不同的侧边栏,照例注册小工具、添加文件、修改调用就OK了,方法很笨,也网上找了一些用if语句的,试了不成功就没用了。