当前位置:首页 > 行业动态 > 正文

为什么在织梦CMS中使用dede:arclist标签选择副栏目时不显示内容?

请检查dede:arclist标签的typeid属性是否设置正确,以及对应的副栏目是否存在。

管理系统(DedeCMS)中,使用dede:arclist标签调用副栏目时,有时会遇到文章不显示的问题,这通常是由于系统默认设置或代码实现的限制导致的,以下是一些常见的解决方法和步骤:

修改arclist.lib.php文件

1、找到并修改代码

打开/include/taglib/arclist.lib.php文件。

定位到大约第295296行,找到以下代码:

     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 find_in_set('.$typeid.',arc.typeid2) ) ';
     else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR find_in_set('.$typeid.',arc.typeid2) ) ';

如果问题依然存在,可以尝试另一种修改方式:

     if($CrossID=='') $orwheres[] = ' typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).')';
     else $orwheres[] = ' typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';

2、更新缓存并重新生成页面

修改完成后,更新网站缓存并重新生成相关页面,以查看修改是否生效。

常见问题解答

为什么修改后的文章仍然无法在副栏目中显示?

如果修改了代码后文章仍然无法在副栏目中显示,可能是由于缓存未更新或者代码修改不正确,确保按照上述步骤正确修改代码,并在修改后更新网站缓存及重新生成页面。

如何检查arclist标签的使用是否正确?

确保在使用dede:arclist标签时,typeid参数设置正确,且符合系统的调用规则,如果要调用多个栏目,应使用逗号分隔的id列表,检查是否有其他模板或插件影响了arclist标签的正常显示。

副栏目选择 dede:arclist 显示情况
不选择副栏目 正常显示文章列表
选择副栏目 不显示文章列表,只显示副栏目的内容或提示信息
选择副栏目且副栏目未设置内容 显示副栏目的默认提示信息或空白页面
选择副栏目且副栏目设置了自定义内容 显示副栏目的自定义内容,可能不包含文章列表
0