,{dede:arclist typeid="2"}, [字段名],{/dede:arclist},
“,,typeid=”2″表示调用ID为2的副栏目。让arclist标签支持副栏目调用的详细步骤
在织梦CMS(DedeCMS)中,文章可以被同时分配到主栏目和多个副栏目,默认情况下,使用arclist标签无法直接调用副栏目的文章,为了解决这个问题,可以通过修改arclist标签的相关代码来实现对副栏目的支持,以下是详细的步骤和说明:
准备工作
1、备份文件:在进行任何代码修改之前,务必备份/include/taglib/arclist.lib.php
文件,以防出现意外情况可以恢复。
2、编辑工具:建议使用专业的代码编辑器(如Notepad++或Sublime Text)进行编辑,以确保代码的正确性和可读性。
具体步骤
1、定位文件:打开织梦CMS根目录下的/include/taglib/arclist.lib.php
文件。
2、查找并替换代码:
第一次替换:
找到约261行位置的以下代码:
“`php
$orwheres[] = " arc.typeid in ($typeid)";
“`
将其替换为:
“`php
$vicewheres = "";
$liketypeid2 = "’.".implode(‘,’,$typeid).",’";
$vicewheres .= " or CONCAT(‘,’,arc.typeid2,’,’) like ‘%$liketypeid2%’";
if($vicewheres!="") $orwheres[] = " (arc.typeid in ($typeid)" . $vicewheres . ")";
else $orwheres[] = " arc.typeid in ($typeid)";
“`
第二次替换:
找到约303行位置的以下代码:
“`php
if($CrossID==”) $orwheres[] = ‘ arc.typeid IN (‘.GetSonIds($typeid).’)’;
else $orwheres[] = ‘ arc.typeid IN (‘.GetSonIds($typeid).’,’.$CrossID.’)’;
“`
将其替换为:
“`php
$vicewheres = "";
$typeids = explode(",",GetSonIds($typeid));
$typeidss = array_merge($typeids,explode(",",$CrossID));
foreach ($typeidss as $tid){
$liketypeid2 = "’,".$tid.",’";
$vicewheres .= " or CONCAT(‘,’,arc.typeid2,’,’) like ‘%$liketypeid2%’";
}
if($CrossID==”) {
if($vicewheres!="") $orwheres[] = ‘ (arc.typeid in (‘.GetSonIds($typeid).’)’ . $vicewheres . ‘) ‘;
else $orwheres[] = ‘ arc.typeid in (‘.GetSonIds($typeid).’) ‘;
} else {
if($vicewheres!="") $orwheres[] = ‘ (arc.typeid in (‘.GetSonIds($typeid).’,’.$CrossID.’)’ . $vicewheres . ‘) ‘;
else $orwheres[] = ‘ arc.typeid in (‘.GetSonIds($typeid).’,’.$CrossID.’) ‘;
}
“`
验证与测试
1、保存文件:完成上述修改后,保存/include/taglib/arclist.lib.php
文件。
2、生成静态页面:如果网站是静态生成模式,请重新生成相关的静态页面以确保修改生效。
3、测试调用:在首页或其他页面中使用arclist标签调用副栏目文章,检查是否能够正确显示。
相关FAQs
问题1:为什么修改后的代码有时无法显示所有副栏目的文章?
答:可能的原因包括代码修改不完整或存在其他冲突,确保严格按照上述步骤进行替换,并检查是否有其他插件或设置影响标签调用。
问题2:修改后是否需要重启服务器?
答:不需要重启服务器,只需保存修改后的文件并重新生成静态页面即可。
问题3:这种方法适用于所有版本的织梦CMS吗?
答:主要适用于5.7 SP1版本及以后的版本,但基本原理在其他版本中也类似,只需根据具体版本调整代码位置和逻辑。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1107202.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复