在page页面下添加分类的文章
正在研究如何在page页面下显示分类下的文章。
我的想法是这样的,我想在我有一个建站点滴的page,有个design-website的类,我想把design-website类下所有的文章或者部分的文章都在建站点滴的page下显示出来。
经过两天的学习和研究,终于大致上把我所想做到的效果实现了!
具体是这样的:
1、从wordpress模板的结构,可以知道,我们需要修改的页面文件是page.php模板文件。
浏览一下page.php这个文件,可以看出,它主要分为三个部分,get_header();the post();get_footer();其中,我们需要修改的是the post();部分的内容。
首先,我们理一下思路,用“建站点滴”这个页面做例子,我想在“建站点滴”页面下显示design-website类的的所有文章。百度了两天,确定使用WP_Query();因为query_posts(); 函数只能用在主循环中,用于修改主循环的结果,而不是创建同一页面的第二个循环。如果要创建第二个循环,需要另外创建一个WP_Query对象。不在主循环中使用query_posts(); 函数会导致错误或不是你希望出现的结果。
<?php $cate_str = getSwitch($post->ID); //$post->ID为当前页面的ID号,getSwitch();是我自己写的一个函数
$wp_query = new WP_Query();
$wp_query->query(‘category_name=’.$cate_str.’&paged=’.$paged); ?>
getSwitch();函数的功能是将获取到的转化成类型字符型传给$category_name;
<?php function getSwitch($iNum)
{
switch($iNum)
{
case 19:
$water_name=”design-website”;
break;
case 17:
$water_name=”uncategorized”;
break;
default:
$water_name=”none”;
break;
}
return $water_name;
}
?>
因为只是测试,所以还没有将所有page ID全部写出来。这理有个不好的就是如果需要新加一个页面下显示分类的文章的话,需要对此函数进行修改,增加判断语句。希望哪位牛人,有更好的方法,或者把它改进一下,呵呵!
2、主要的工作完成了,将上面的代码添加到page.php中就可以显示出你需要的类的文章,但是你会发现,只会显示一篇。原因在于,我们还需要一个循环获取该条件下的文章,然后一篇一篇的显示出来。
<?php while($wp_query->have_posts()) : $wp_query->the_post();?>
…… //这里就是加上标题、作者、评论条数的代码
//记得endwhile!
加上这个之后,下面的就是css页面美观的问题了,大家就可以自由发挥,增加你所需要的东西,比如标题、作者、评论条数等等,这些代码很简单,在page.php中找一下就有了。
3、这样,在page页面下添加分类的文章功能就完成了。显示的篇数的功能还没有研究,在以后的建站中,我会慢慢把它加上去了,使它功能更加完整。
这个功能,我用了两天时间去查资料、看代码,请教别人和自己摸索做出来的,虽然简单,感觉得到的不止是成功写出这个功能,而且对wordpress的结构和函数更加了解,收获很多!希望此文章也对大家有用!