DedeCMS不显示未审核文档Tag标签的方法
我们在使用DedeCMS后台发布文章的时候,当文档处于未审核状态时,依然会生成tag标签,而这个tag标签会在tag列表页中显示出来。如果我们点击这个tag标签,就会显示为空,这样对用户体验十分不好,算是DedeCMS的一个小Bug。
今天余斗就给出两种解决方法,来实现DedeCMS中未审核的文档Tags标签不显示在前端。
方法一:打开/include/taglib/tag.lib.php文件,找到代码(大概在第64行)
if(!empty($typeid))
{
$addsql =
” WHERE typeid=’$typeid’ “;
}
修改为:
$dsql->SetQuery(
“Select tid From `dede_taglist` where arcrank<=-1”);
$dsql->Execute();
$ids =
”;
while($row = $dsql->GetArray())
{
$tid = $row[
‘tid’];
$cquery =
“Select count(*) as dd From `dede_taglist` where tid = $tid and arcrank<=-1”;
$crow = $dsql->GetOne($cquery);
if(!$crow[
‘dd’])
{
$ids .= ( $ids==
” ? $row[
‘tid’] :
‘,’.$row[
‘tid’] );
}
}
if($ids !=
”)
{
$addsql=
” where id not in($ids) “;
}
if(!empty($typeid))
{
if($addsql)
{
$addsql=
” and typeid=’$typeid’ “;
}
else{
$addsql=
” where typeid=’$typeid'” ;
}
}
修改前
修改后
方法二:打开/include/taglib/tag.lib.php文件,找到代码(大概在第85行)
$row[
‘keyword’] = $row[
‘tag’];
在其前面加入:
$rankrowss = $dsql -> GetOne(
“SELECT count(tid) as rankcount FROM `js_taglist` WHERE tid = $row[id] and arcrank >= 0”);
if($rankrowss[rankcount] ==
0)
continue;
修改前
修改后
通过以上两种方法都可以实现不显示未审核文档的tag,大家根据实际情况自己选择使用。