在做主题的时候发现了一个问题,也不能说是问题,就是不太舒服的地方。
往往网站首页是不同模块对不同分类的文章进行展示,在制作首页的时候发现不知道该如何获取指定分类下的文章。
查看了rpcms默认模板的代码,发现是把最新文章、最热文章这种功能性的单独封装成函数了,如果想获取指定分类下的文章就需要改改了。
在网上找了找,看到rpcms论坛上有整理好的函数,就用了下试试,挺好的,还支持子分类的获取。
《模板常用的功能函数整理》上面还有很多其他常用函数,可以看看有没有需求。
function getLogsByCateId($id,$limit=10,$order=['a.upateTime'=>'desc']){ if(empty($id)) return array(); $LogsMod=new LogsMod(); $ids=[$id]; $category=Cache::read('category'); if(!empty($category[$id]['children'])){ $ids=array_merge($ids,$category[$id]['children']); } $logData=$LogsMod->cate($ids)->order($order)->limit($limit)->select(); return $logData['list']; }
把这个函数放到模板的common.php文件中,在模板就可以调用了,如下:
{foreach getLogsByCateId(1) as $k=>$v} <a href="{$v['url']}">{$v['title']}</a> {/foreach}
第一个参数是需要获取的分类ID
第二个参数是获取的数量
第三个参数是排序方式