WordPress中不同的栏目使用不同的侧边栏

使用WordPress平台的朋友会发现,大部分WordPress主题默认都是公用一个侧边栏;但在实际应用中,我们会经常遇到不同的页面使用不同的侧边栏的情况。现在我们自己动手实现一下,如何在不同的页面中显示不同的侧边栏。

注册新的侧边栏sidebar-wordpress

在主题编辑器中打开functions.php文件

找到类似以下代码(主题不同代码有所区别):

register_sidebar( array(
	'name'          => esc_html__( 'Sidebar', 'power-magazine' ),
	'id'            => 'sidebar-1',
	'description'   => esc_html__( 'Add widgets here.', 'power-magazine' ),
	'before_widget' => '<section id="%1$s" class="widget %2$s">',
	'after_widget'  => '</section>',
	'before_title'  => '<h3 class="widget-title"><span>',
	'after_title'   => '</span></h3>',
) );

复制以上代码粘贴,并修改name与id。

register_sidebar( array(
    'name'          => esc_html__( 'SidebarWordPress', 'power-magazine' ),
    'id'            => 'sidebar-wordpress',
    'description'   => esc_html__( 'Add widgets here.', 'power-magazine' ),
    'before_widget' => '<section id="%1$s" class="widget %2$s">',
    'after_widget'  => '</section>',
    'before_title'  => '<h3 class="widget-title"><span>',
    'after_title'   => '</span></h3>',
) );

新建侧边栏文件sidebar-wordpress.php

复制sidebar.php文件为sidebar-wordpress.php。修改文件内容:

定义侧边栏公用文件muti-sidebar.php

在sidebar.php同一目录下,新建文件muti-sidebar.php。并键入以下代码。代码主要功能是判断当前栏目,根据不同栏目调用不同的侧边栏。in_category(4)中的4代表栏目ID。

<?php
	if ( in_category(4) ) {
		get_sidebar('wordpress');
	} elseif (in_category(7)) {
		get_sidebar('html');
	} elseif (in_category(8) ) {
		get_sidebar('linux');
	}else {
		get_sidebar();
	}
?>

修改栏目模板category.php和详情页模板single.php

找到文件中代码:

<?php get_sidebar();?>

替换为:

<?php include_once('muti-sidebar.php'); ?>

完成这些工作,我们就可以在不同的栏目中展示不通的侧边栏了,我们可以小工具(widget)中设计自己的侧边栏样式。

相关