如何自定义WordPress主题:侧边栏(二)
我们接着上篇文章所说的侧边栏,利用WordPress自带的Widget功能来整理侧边栏的确很方便,但如果你想让自己的侧边栏看起来更酷点,比如说让侧边栏在不同的页面显示不同的内容,要怎么办呢?在这里我们恐怕要运用到WordPress中比较神奇和实用的Loop功能了。
OK,首先让我们来策划下整体要显示的效果。比如我们想在首页的侧边栏显示“最新文章”、“分类列表”和“友情链接”,在每篇日志的侧边栏只是显示“存栏列表”、“相关日志”、“TAG云”。好有了大体的策划,我们就来寻找解决思路。
现在首先要让WordPress侧边栏识别出是首页还是日志页面,利用WordPress的Loop功能我们能实现,我们首先来让WordPress侧边栏识别出首页,并显示我们想要的项目,在侧边栏中加入以下的代码:
<?php if (is_home()) { ?>首页显示的项目<?php } ?>
恩,没错这时候只需在“首先显示项目”中插入你需显示项目的代码,而关于WordPress常见项目的调用代码,可参考官方的code,以上面的策划为例的话,代码应为:
<?php if (is_home()) { ?> <h2>最新文章</h2><ul> <?php get_archives('postbypost', 15); ?></ul> <h2>分类列表</h2><ul> <?php wp_list_cats('sort_column=name&hide_empty=0&children=1'); ?></ul> <h2>友情连接</h2><ul class="links"> <?php get_links(-1, '<li>', '</li>',0,0, 'rand', 0, 0, 20, 0); ?></ul> <?php } ?>
当然你可以添加任何想要在首页显示的项目。
接下我们来让WordPress侧边栏识别出日志页面,并显示我们想要的项目:
<?php if (is_single()) { ?> <h2>存档列表</h2><ul> <?php get_archives('monthly','','','<li>','</li>',''); ?></ul> <h2>相关日志</h2> <?php wp_related_posts(); ?> <h2>TAG云</h2> <div class="block"> <p> <?php wp_tag_cloud(); ?> </p></div> <?php } ?>
在这里要说明的是相关日志功能是通过WordPress 2.3 Related Posts Plugin插件实现的,也就是你必须安装此插件,否则日志页面的侧边栏会报错而无法显示。关于WordPress相关文章功能的介绍可参考如何在WordPress中插入相关日志。
好了按照以上的步骤编辑完sibebar.php后,是不是发现的确首页和日志页面的侧边栏显示的项目不一样了呢?当然在这里我只是举了例子进行说明,你可以根据自己的喜好让你的侧边栏看起来更酷一些!^-^ ….
终于找到这个方法了。但是有的模板只是把侧边栏调用出来(用一个自定义函数),而里面没有相关的模板函数(如友情链接)。出现这样情况怎么办?
@seo土坷垃: 可以参考官方的doc,里面会列绝一些常见项目的调用代码,当然不大明白的话,你可以直接问我。
请问当定义为 if is_page ,二级页面无法显示侧边栏 是怎么回事?
这样写if怎么写else啊,不然其他页面如tag等都会是空白。
谢谢楼主!有个小问题,我在sidebar.php 里加入了一个显示评论的代码,结果评论总是显示在侧边栏的最顶端。我想控制它的位置,代码怎么修改?