是不是已经厌倦了每页千篇一律的页面了呢?是不是想让你的侧边栏更加丰富多彩?是不是想让你的侧边栏更加充实? index.php、page.php、archive.php、single.php…… 每个页面都调用着同一个 sidebar.php,其实我们完全可以为不同的页面调用各自独立的不同的侧边栏。
实现不同页面调用不同侧边栏的想法很简单:注册一个新的侧边栏 sidebar2.php,然后在需要调用 sidebar2 的页面代替原来的 sidebar。
步骤:
1、注册一个新的侧边栏 sidebar2。
在主题文件夹下的 function.php 中找到类似以下代码:
if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
register_sidebar(array(
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
然后以相同的格式再注册添加一个 sidebar2。例如:
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'sidebar2',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
register_sidebar(array(
'name' => 'sidebar2',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));
2、新建 sidebar2.php 调用新注册的 sidebar2。
在 sidebar.php 中找到以下代码:
<div class="sidebar">
<?php include_once("tab.php"); ?>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar() ) : else : ?>
<?php endif; ?>
</div>
<?php include_once("tab.php"); ?>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar() ) : else : ?>
<?php endif; ?>
</div>
然后以相同的格式新建 sidebar2.php 文件调用 sidebar2。例如:
<div class="sidebar">
<?php include_once("tab.php"); ?>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(sidebar2) ) : else : ?>
<?php endif; ?>
</div>
<?php include_once("tab.php"); ?>
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(sidebar2) ) : else : ?>
<?php endif; ?>
</div>
3、最后,在需要的页面调用 sidebar2.php 文件。
这里以 page.php 为例调用 sidebar2.php。在 page.php 中找到如下代码:
<?php get_sidebar(); ?>
修改为:
<?php include_once("sidebar2.php"); ?>
如果以上操作步骤都正确的话,会在小工具里多一个名为 sidebar2 的 Widget,你可以拖动添加你所需要的 Widget,如果你想要更多不同的侧边栏,还可以用相同的方法注册 sidebar3、sidebar4……
-
给 Wordpress 主题添加个性化小工具2011年01月16日 -
Wordpress 免插件版侧边栏读者墙2009年10月24日 -
美化 Wordpress 之日历样式2009年08月9日 -
个性化 Wordpress 侧边栏2009年06月27日
为什么我用这个方法侧边栏就一句:呢~~悲剧。
Pingback: if(is_home()等无效/失效的解决办法 - 奚少收藏小窝
分类目录属于哪个页面呢
属于archive的
万戈我特别想知道这个是什么机制。
也就是 就会读取sidebar2.php 那么我写 index.php呢? 侧边栏就会读取index的内容么?
它仅是作用于侧边栏的么
我的意思是他怎么就知道将这个sidebar2.php放到sidebar的位置呢?
sidebar2.php就是另一个sidebar
如果Index需要sidebar2就调用sidebar2,请看第三步
昨天还没没明白的问题,今天又看了一边,懂了。。。
文章中的第二点不使用有关系吗,我找不到你那代码,但是还是可以调用的
我整了一下,但是貌似不支持Widgets
Mark,日后再用
技术学习
这个好像没有那么复杂。
可是,在调用sidebar2 的 Widget时,原有的sidebar会自动隐藏吗?
版大
那分類的側邊欄要在哪貼上
php include_once("sidebar2.php");
原来是这样实现的啊
同理可以实现三个或三个以上的不同侧边栏
这样的 技术类文章 俺们非常有兴趣!哈哈。。。
好折腾。。
一直以来一个侧边凑合
我一般用页面判断函数来搞定 。
我的是单个侧边栏,用 is_single() 、is_page() ... 来定义不同页面的 sidebar
对了,刚才浏览时发现你的侧边栏的标题“红杏出墙”了。
判断不同页面调用不同的侧边栏模板。
学习了,真是厉害
对此不感兴趣。。。
呵呵。。。。
我的主题不支持侧边
那你可以把代码写在sidebar里,一样可以实现不同页面调用不同侧边栏的
我是來蓋樓的
欢迎欢迎,想盖几层都行,多多益善
多多益善
我用的就是这个方法
TEMPLATEPATH . /sidebar1.php 的!
不支持代码…………
这样不错诶,等等整到我的主题去~~
你的主题本来就是啊,我是看了你的网站才有这个灵感整的~
我是直接调用哦,如首页