默认情况下 wordpress 的导航栏都是使用页面做为导航的,这些单一的页面可以很好的用于作者介绍、归档页面、链接等。但我们发现使用页面来展示文章列表并不太方便,我个人是比较倾向于用分类做为页面导航的,使用分类做为导航似乎更像是一个内容充实的网站。这就会用到一种折衷的方法:导航里面既有普通页面的显示效果,也有分类导航的显示效果。本文主要介绍如何使用 WordPress 页面调用某个分类下面的文章的方法。
1.首先需要创建一个特殊页面模板,直接复制主题中的 index.php 文件,把文件名修改为你想要的模板名字,如:AdSense。
2.打开此文件,在代码最顶部增加如下代码:
<?php /* Template Name: adsense */ ?>
这段代码是声明模板的名称,你要新建页面的时候,会在选择页面模板里面看到它,当然,名字你可以随便起。这样,就完成了一个特殊页面模板的制作。
3.接下来就要实现这个模板显示的是特定分类下的文章内容,通过搜索找到如下代码:
<?php if (have_posts()) : ?>
在这行代码的前面加上:
<?php query_posts('showposts=15&cat=1'); ?>
其中的 cat=1 你可以修改成你想要显示的分类的ID,ID你可以在Wordpress 后台管理中的分类目录下看到,将鼠标放上某个分类即会显示形如:
http://www.domain.com/wp-admin/categories.php?action=edit&cat_ID=6
的链接,后面的6就是这个分类的ID号。
4.最后创建一个新页面,比如 adsense 页面,在模板选择里面选择刚刚创建的 adsense 模板,然后发布,刷新首页点击进入此页面看看效果吧。
更新于2009年8月5日,解决 WordPress 页面调用分类文章后无法翻页的问题
有网友反映说使用上面的方法造成无法翻页的状况,症状为 WordPress 页面调用分类文章后,点击页面下方的翻页没有反应,但浏览器地址栏传递的参数已经发生改变了。出现此问题可参考下面的解决方法:
将上面提到过的代码:
<?php query_posts('showposts=15&cat=1'); ?>
替换为:
<?php $limit = get_option('posts_per_page'); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts('cat=1&showposts=' . $limit=15 . '&paged=' . $paged); $wp_query->is_archive = true; $wp_query->is_home = false; ?>
其中limit=15为每页显示的文章数目,cat=1 为分类的 ID,经园子测试此方法可行,大家也可以试一下。
通过上面的简单四步实现了在 WordPress 页面调用分类里面文章的方法,这样我们就可以自由的将页面和导航有选择的做为网站的主导航,相信多数朋友会喜欢这种比较自由的结合方法,以此来打造更具人性化的博客。