如何让WordPress模板在不同页面显示不同侧边栏

很多人喜欢在不同的页面显示不同的侧边,事实上这的确非常管用,比如你为了访客体验不想把广告显示在首页而更愿意放在文章页,这就非常需要把index.php和single.php的侧边区别起来.有了上一篇做基础,这个实现起来其实非常简单.很多博主采取的是在functions.php中的“register_sidebar(“后添加数字,这种方法也非常好,但是对于三栏模板需要将侧栏的两列分别建立不同的sidebar文件,那么要实现不同的侧栏你需要建立4个sidebar.相比这个方法,我更加喜欢直接在functions.php中直接添加sidebar定义.下面拿我修改的那个三栏模板作为示例:

(****以下代码在Feed阅读器中可能会有问题,如果感兴趣建议到原网页.)

 

1.修改functions.php.

三栏模板本身应该只有两个sidebar定义,现在我们再给它添加两个.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
< ?php
// 默认的侧边栏定义
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Left Sidebar',
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
 
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Right Sidebar',
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
 
//以下为文章页侧边栏定义.
 
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Left Sidebar2',   //name值自行定义
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
 
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Right Sidebar2', //name值自行定义
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));?>

2.新建一个sidebar2.php(文件名可以自己取,我只是举个例子),复制默认的sidebar.php中的所有文件并粘贴进来(当然是已经支持Widgets的那个),并修改下面的代码中的#7为Functons.php文件中新加入的Sidebar的name.

1
2
< ?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('#7') ) : else : ?>
< ?php endif; ?>

所以我的模板中的两段代码应该为:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="sidebar">
<div id="sidebar_r">//右侧栏
<ul> < ?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Right Sidebar2') ) : else : ?>
......
< ?php endif; ?></ul>
</div>
 
<div id="sidebar_l">//左侧栏
<ul> < ?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Left Sidebar2') ) : else : ?>
......
< ?php endif; ?></ul>
</div>
</div>

3.修改single.php文件.

在single.php中找到< ?php get_sidebar(); ? >,删除之,改为:

1
< ?php include_once("sidebar2.php "); ?>.

保存退出.如果你还想修改Page.php等页面的话,可以使用同样的方法.

登入后台的侧边栏区块,你就会发现已经出现了4个Widgets,给它们分别添加不同的内容,就可以实现在不同的页面显示不同的侧边栏了.

4.总结:

在网上流传比较广泛的是将functions.php中的“register_sidebar(array(“改为“register_sidebar(4, array(“的模式,并创建4个sidebar文件,具体方法好多人都有介绍,推荐一个:

zEUSWP自带Sidebar Widgets的终极改造

这种方法其实更加专业,但是我觉得不如我上面说的直观和傻瓜化.

我本来想把DiggLife的模板也改为这种模式,但是还没有想好该放什么东西,本来目前的侧边该怎样放我一直都在犹豫呢.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值