PHPCMS二次开发多栏目调用方法
如果你的是一个小型的网站,只有一级分类,不存在子分类,那很简单,上代码
PHPCMS单个栏目调用方法
{pc:get sql="SELECT * FROM v9_news WHERE catid in(1,3,5) ORDER BY id DESC" num="10"}
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
{/pc}这里我调用了分类ID为1,3,5的最新文章。
但是,如果是一个稍大一些的网站,有的存在子分类,有的不存在,那该如何调用呢?
在PHPCMS中只能调用直接分类下的文章,也就是说如果指定一个分类ID存在子分类,那么将无法调出文章。所以我们要做的是如果是直接分类那么直接显示分类id,如果存在子分类,那么显示所有子分类id,最后再把他们用逗号连起来,就实现了相同的效果。
PHPCMS二次开发多栏目调用方法
<?php
$assigncatid=array(23,24,19);
$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,其中23,24没有子栏目,19有很多子栏目。$CATEGORYS[$row][arrchildid] 这一句很重要,如果没有子分类直接显示该分类id,如果有子分类,就会以1,2,3,4,5这种格式显示所有子分类,数组中有3个值,所以foreach后会形成3个数组,分别为 23、24、以及19,43,44 其中43,44为19的子分类id.
把这3组数据赋值给一个数组,然后在循环外用逗号切割成字符串,拼起来就是 23,24,19,43,44 到这里是不是已经一目了然了,该实现的功能都实现了,enjoy!
网上查了些资料,发现也有人这样来获取子分类ID
{loop subcat(15) $k $v}
{php $subcatid[] = $k;}
{/loop}
{php $subcatid = implode(',', $subcatid);}然后在读取SQL的条件中这样写 WHERE catid in($finalcatid)
其实个人觉得这种做法纯属鸡肋,要获取一个指定栏目下的所有子栏目ID,直接用 $CATEGORYS[$catid][arrchildid]不就好了,其中$catid可以改成指定的父分类ID
您可能感兴趣的文章
- 11-19phpcms调用全站热点文章月排行的代码
- 11-19phpcms v9 搜索页显示自定义字段
- 11-19phpcms v9 内容页调用当前栏目名称及链接/上级栏目名称及链接方法
- 11-19phpcms V9基础知识之:常用文件目录结构
- 11-19phpcms v9 彻底去除自带的水印功能的方法
- 11-19phpcms在nginx的rewrite伪静态标准写法
- 11-19phpcms V9基础知识之:默认templates主题模板文件目录结构介绍
- 11-19Phpcms V9 调用全站文章排行的解决方法
- 11-19Phpcms V9 调用随机文章的实现方法
- 11-19phpcms v9分页函数pages中上一页,下一页文本内容修改方法


阅读排行
推荐教程
- 09-22phpcms是什么框架
- 09-22phpcms手机端如何取消伪静态
- 11-12phpcms如何使用水印功能
- 11-19phpcms调用全站热点文章月排行的代码
- 11-12phpcms不限制模型进行全站搜索
- 11-12phpcms栏目标签调用代码大全
- 11-12phpcms二次开发用拼音作为tags列表页路径的方法
- 11-12如何用phpcms调取指定位置的新闻列表
- 11-16Phpcms V9列表分页自定义页码文字(改成中文)
- 11-16phpcms ajax列表分页加载更多





