第一种方法:
{php}$flid = array(1,2,3);{/php}
{foreach $flid as $id}
{foreach GetList(3,$flid) as $article}
<li><a href="{$article.Url}" title="{$article.Title}">{$article.Title}</a></li>
{/foreach}
{/foreach}
第一行代码中的数字1,2,3,是指定不同的分类ID,想要获取哪些分类的文章就可以填写分类对应的ID即可;
第三行的代码中的3表示每个分类ID调用的文章数量
第二种方法:
{php}$flids = explode(',','1,2,3,4');{/php}
{foreach $flids as $flid}
{foreach GetList(3,$flid) as $article}
<li><a href="{$article.Url}" title="{$article.Title}">{$article.Title}</a></li>
{/foreach}
{/foreach}
第一行代码中的explode函数内的1,2,3,4,这四个数字代表的就是不同的分类ID,如果想指定更多分类,可以继续添加其他分类ID,分类ID和分类ID之间用英文逗号隔开!
第三行代码中的GetList(3,$flid)函数内的数字3,表示的是每个分类要调用的文章数量,想要调用多少篇文章就填写多少!
但以上两种方法调用的分类文章列表不能自由设置排序方式,接下来,我们就介绍第三种可以设置排序的方法:
第三种方法
该方法可以获取多个分类的文章列表,同时,还可以设置按照最新、热门、热评三种方式排序。
废话不多说,首先,把下面封装好的函数,直接放入当前正在使用主题的include.php里面
function Nobird_GetArticleCategorys($Rows,$CategoryID,$hassubcate){
global $zbp;
$ids = strpos($CategoryID,',') !== false ? explode(',',$CategoryID) : array($CategoryID);
$wherearray=array();
foreach ($ids as $cateid){
if (!$hassubcate) {
$wherearray[]=array('log_CateID',$cateid);
}else{
$wherearray[] = array('log_CateID', $cateid);
foreach ($zbp->categorys[$cateid]->SubCategorys as $subcate) {
$wherearray[] = array('log_CateID', $subcate->ID);
}
}
}
$where=array(
array('array',$wherearray),
array('=','log_Status','0'),
);
$order = array('log_PostTime'=>'DESC'); //排序方式在此处修改
$articles= $zbp->GetArticleList(array('*'),$where,$order,array($Rows),'');
return $articles;}
完成上一步后,就可以把下面调用代码放入主题模板文件中
{foreach $array=Nobird_GetArticleCategorys(10,'1,2,3',true) as $related}
<li><a href="{$related.Url}" target="_blank">{$related.Title}</a></li>
{/foreach}
第一行代码中的四个阿拉伯数字,第一个数字10表示调用的文章数量,而“1,2,3”代表所调用的栏目ID(多个ID之间用英文逗号“,”隔开即可)。
我们还可以修改函数中的“array('log_PostTime'=>'DESC');”其中:
log_PostTime:按照时间排序;
log_CommNums:按照评论数量排序;
log_ViewNums:按照浏览数量排序;
通过上面三个参数就可以根据自己的需要设置获取多个分类文章列表后的排序方式
UE资源网 » zblogphp如何获取多个指定ID分类的文章列表