在DedeCMS中,设置副栏目的功能对于某些特定需求并不完善。例如,在装修网站中,设计师和作品之间需要关联;在设备类型网站中,产品与案例之间也需要进行关联。然而,在封面模板中使用arclist标签时,通常无法调用到与之相关联栏目下的文章。虽然网上有许多解决方案,但大多数是错误的。本文将结合频道新增自定义字段的方法进行修改,帮助您解决这一问题。
开启副栏目功能
首先,我们需要开启DedeCMS的副栏目功能。具体操作如下:
后台 -> 系统 -> 性能选项 -> 是否启用副栏目,勾选“是”
完成以上步骤后,您的DedeCMS系统将支持副栏目功能。
修改代码部分
接下来,打开文件 /include/taglib/arclist.lib.php,找到以下代码:
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[] = ' arctypeid in ('.GetSonIds($typeid).','.$CrossID.') or arc.typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';
这一步是为了确保arclist标签能够正确调用主栏目及副栏目下的内容。
调用方法
最后,在首页、频道封面或内容页中,可以使用以下代码进行调用:
{dede:arclist typeid='1' channelid='1' addfields='leixing'}
标题:[field:title/]
类型:[field:leixing/]
{/dede:arclist}
其中,typeid='1' 表示调用栏目ID为1的内容,channelid='1' 表示指定频道模型ID,而addfields='leixing' 则用于添加自定义字段“类型”。
按照上述步骤操作后,您就可以在DedeCMS中成功实现副栏目的调用了。希望本文对您有所帮助!