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[] = ' typeid in ('.GetSonIds($typeid).')';
$orwheres[] = ' typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).')';
}
else
{
// $orwheres[] = ' typeid in ('.GetSonIds($typeid).','.$CrossID.')';
$orwheres[] = ' typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';
}
完成上述代码修改后,保存文件并更新 DEDECMS 的缓存。随后,再次测试文章副栏目的功能,此时应该能够正常工作,文章可以成功显示在指定的多个栏目中。
通过以上步骤,您可以轻松实现 DEDECMS 中文章副栏目的正确显示功能。这一修改不仅提高了工作效率,还让网站内容管理更加灵活便捷。如果您在操作过程中遇到任何问题,建议仔细检查每一步骤,确保代码修改准确无误。