在本系列的上一篇文章中,我们已经知道如何利用 Query Posts 功能对网站首页文章进行有效控制。当你把某些分类文章从首页显示中去除的同时,是否也希望能建立一个专门的页面显示那些被隐藏的分类文章呢?在本篇文章中我就此进行简单的一些相关介绍。
其实原理很简单,当你利用query_posts("cat=-3&showposts=5")这样的代码去除分类3的文章时,你也可以利用query_posts("cat=3&showposts=5")这代码只显示分类3的文章。所以,我们新建一个页面模板,譬如命名为your-special-page.php。利用文本编辑器编辑该文件,在其开头加上:
<?php
/*
Template Name: Your special Page
*/
?>
如果你想简单点的话,就在上面代码后直接把index.php内的文件内容复制进去,但要注意,我们需要在下面这一句:
<?php while ( have_posts() ) : the_post() ?>
的前面增加如下代码:
<?php
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=3&showposts=' . $limit=5 . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>
这样,我们就能让其只显示分类ID为3的文章内容。(具体的操作说明请参照本系列的上一篇文章)
接着我们把这个your-special-page.php文件上传到WordPress主题模板目录内。然后我们在后台新建一个页面,名称自定,内容为空,但必需注意在页面模板一栏选择“Your special Page”,然后选择发布,你便能实现在该页面显示自己选定的分类文章。
另外在这里顺带补充一下对文章内容显示控制的几点:
1. 如果你已经在首页中隐藏了某些分类的文章,同时你也想在WordPress的分类列表中隐藏那些分类,可以用<?php wp_list_categories('exclude=4,7'); ?>这个调用代码,例子中的是在分类列表中去除ID为4和7的分类;
2. 如果再进一步,你想在你的feed中去除那些隐藏的分类文章。这里有一个简单的办法,就是在主题目录下的functions.php中添加如下代码:
function my_cat_exclude($query) {
if ($query->is_feed) {
$query->set('cat','-20,-21,-22');
}
return $query;
}
add_filter('pre_get_posts','my_cat_exclude');
最后,我想这种WordPress的分类显示方式大家应该已经能了解并能按自己的意思设计自己的主题,如在我的网站内,按照这个办法我创建了关于自己生活牢骚的这个页面,还有相当于相册功能的这个页面。
P.S. 写到这里,其实已经是对WordPress进行CMS的功能定制介绍了。我在这里推荐大家再看看sofish的告诉你如何做一个CMS型Wordpress主题专题文章,还有香水的免插件修改模板制作相册教程,都很不错的。