对于用户来说,访问首页和内页的需求会有所差异,而侧边栏作为用户浏览的重要区域,如果是千篇一律的一个样,无疑会降低整站的用户体验。为此,思享找到了一个笨拙的方法,实现内页显示不同侧边栏的功能。
注册侧边栏小工具
在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语句的,试了不成功就没用了。
转载请注明:思享SEO博客 » HMJ-Blog主题修改:不同页面显示不同的侧边栏