phpcms如何用get语句调用多个栏目的最新文章

2014-05-10 15:23:57   来源:OKXUN.com

在phpcms中只能调用直接分类下的文章,即指定一个分类ID存在子分类,那么将无法调出文章。所以我们要做的是如果是直接分类那么直接显示分类id,如果存在子分类,那么显示所有子分类id,最后再把他们用逗号连起来,就实现了相同的效果。代码如下:

<?php
$assigncatid=array(1,6,5);
$str=array();
foreach($assigncatid as $row){
$str[]=$CATEGORYS[$row][arrchildid];
}
$finalcatid= implode(',', $str);
?>
{pc:get sql="SELECT * FROM v9_news WHERE catid in($finalcatid) ORDER BY id DESC" num="14"}
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
{/pc}

这里我选了3个指定的分类id,其中1,6没有子栏目,5有很多子栏目。$CATEGORYS[$row][arrchildid] 这一句很重要,如果没有子分类直接显示该分类id,如果有子分类,就会以1,2,3,4,5这种格式显示所有子分类,数组中有3个值,所以foreach后会形成3个数组,分别为1、6以及5,11,12 其中11,12为5的子分类id。

把这3组数据赋值给一个数组,然后在循环外用逗号切割成字符串,拼起来就是1,6,5,11,12功能都实现了。