如何自定义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后,是不是发现的确首页和日志页面的侧边栏显示的项目不一样了呢?当然在这里我只是举了例子进行说明,你可以根据自己的喜好让你的侧边栏看起来更酷一些!^-^ ….

此篇文章由 housne 发表于 2008年11月27日,点击此处发表评论,或者订阅本文

« »

6 Comments»

  1. seo土坷垃 发表于 2008年11月27日

    终于找到这个方法了。但是有的模板只是把侧边栏调用出来(用一个自定义函数),而里面没有相关的模板函数(如友情链接)。出现这样情况怎么办?

  2. Kenny 发表于 2008年11月27日

    :smile: 坐下好好学习

  3. housne 发表于 2008年11月28日

    @seo土坷垃: 可以参考官方的doc,里面会列绝一些常见项目的调用代码,当然不大明白的话,你可以直接问我。

  4. jimmy 发表于 2009年5月17日

    请问当定义为 if is_page ,二级页面无法显示侧边栏 是怎么回事?

  5. bwskyer 发表于 2010年3月5日

    这样写if怎么写else啊,不然其他页面如tag等都会是空白。

  6. dofine 发表于 2010年4月12日

    谢谢楼主!有个小问题,我在sidebar.php 里加入了一个显示评论的代码,结果评论总是显示在侧边栏的最顶端。我想控制它的位置,代码怎么修改?

Leave a Reply

称呼//Name (必填)

邮箱//Email (必填)

网站//website (选填)