Dedecms tags列表默认会显示所有文章,无论是审核还是未审核,这个是bug,本文介绍解决Dedecms 5.7 tags列表文章显示未审核的bug的方法。
其实很简单,找到/include/arc.taglist.class.php这个文件,在其中修改两处即可:
第一处修改:
找到:
$cquery = "SELECT COUNT(*) AS dd FROM `dede_taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank >-1 ";
替换为:
$cquery = "SELECT count(*) AS dd FROM dede_taglist,dede_archives WHERE dede_taglist.tid = '{$this->TagInfos['id']}' AND dede_archives.id=dede_taglist.aid and dede_archives.arcrank > -1";
原理:修改后的代码新添加了两个条件
第一个条件“必须tags表中的文章ID和文章表中的ID相同”代码:dede_archives.id=dede_taglist.aid
第二个条件是“文章中必须是审核状态”代码:dede_archives.arcrank > -1
第二处修改:
找到:
$this->dsql->SetQuery("SELECT aid FROM `dede_taglist` WHERE tid = '{$this->TagInfos['id']}' AND arcrank>-1 LIMIT $limitstart,$getrow");
替换为:
$this->dsql->SetQuery("SELECT dede_taglist.aid FROM dede_taglist,dede_archives WHERE dede_taglist.tid = '{$this->TagInfos['id']}' AND dede_archives.id=dede_taglist.aid and dede_archives.arcrank > -1 LIMIT $limitstart,$getrow");
原理:在这里添加的代码原理就和在上一步已经说很清楚了,这里就不详细解释了,唯一需要说明的是这里加了一个“LIMIT $limitstart,$getrow”,这个是分页用的。
最后,上次这个arc.taglist.class.php覆盖旧的就可以了。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。