最近發(fā)現(xiàn)dedecms中的文章在選擇幅欄目后,在其對應(yīng)的幅欄目列表中可以顯示該文章,但在arclist 標(biāo)簽中卻無法顯示該文章,網(wǎng)上找了很多,解決辦法都一樣,但寫法卻寫錯了,導(dǎo)致arclist標(biāo)簽在使用了flag屬性時會失效的問題。修正后的寫法如下:
打開/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.')) ';
OK,這樣就改完了,保存后如果你是生成靜態(tài)的,請生成相關(guān)的。如果是動態(tài)的,請更新系統(tǒng)緩存。然后就可以看到效果了。