DedeCMS中arclist列表标签无法调用副栏目文章的解决办法

在《DedeCMS文章页调用所属副栏目名称、链接与自定义图片的方法》一文中,我主要讲了如何在文章页调用当前文章所属的副栏目名称。然而,在最近的一次功能拓展中,因为一篇文章可以与网站的两个栏目都有关联,于是就做了副栏目,但是发现在副栏目的list列表中可以调用出来,而arclist列表中却无法显示。查询了一下,原来需要改动下底层调用文件,其实也很简单,具体方法如下:

打开/include/taglib/arclist.lib.php,查找以下两行代码(大概在第295-296行):


if($CrossID==
) $orwheres[] =
‘ arc.typeid IN (‘.GetSonIds($typeid).
‘)’;


else $orwheres[] =
‘ arc.typeid IN (‘.GetSonIds($typeid).
‘,’.$CrossID.
‘)’;

 

修改为:


if($CrossID==
) $orwheres[] =
‘ (arc.typeid IN (‘.GetSonIds($typeid).
‘) OR arc.typeid2 IN (‘.GetSonIds($typeid).
‘)) ‘;


else $orwheres[] =
‘ (arc.typeid IN (‘.GetSonIds($typeid).
‘,’.$CrossID.
‘) OR arc.typeid2 IN (‘.GetSonIds($typeid).
‘,’.$CrossID.
‘)) ‘;

 

修改前

修改后

改完后保存,如果你是生成静态的,请生成相关的。如果是动态的,请更新系统缓存。然后就可以看到效果了。