织梦arclist标签无法调用副栏目文章的解决办法(58nin.com原创)


  最近发现dedecms中的文章在选择幅栏目后,在其对应的幅栏目列表中可以显示该文章,但在arclist 标签中却无法显示该文章,网上找了很多,解决办法都一样,但写法却写错了:,如果一个文章同时属于多个副栏目,只能在第一个副栏目里调用出来该文章。

  网上方法:

打开/include/taglib/arclist.lib.php,代码约位于295-296行(我目前用的DedeCMS最新版 5.7 SP1),查找以下两行代码:

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.')) ';

-----------------------------------分割线-----------------------------  

织梦arclist标签无法调用副栏目文章的解决办法(http://www.58nin.com原创:)

修正后的写法如下:

 将其替换成以下代码:

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) ) ';


OK,这样就改完了,某篇文章属于多个副栏目,arclist调用某副栏目 这个文章就分别显示在不同的副栏目里了。更多文章请访问我帮您站长网:http://www.58nin.com

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


原文地址:http://www.58nin.com/zhimengjianzhan/tec_166.html

你可能感兴趣的:(织梦arclist标签无法调用副栏目文章的解决办法(58nin.com原创))