在使用Dedecms进行内容管理时,可能会遇到一个问题:当我们尝试为一篇文章添加多个副栏目时,保存后却发现只有第一个栏目的ID被保留下来,其他选择的副栏目ID却消失了。例如,如果你选择了23、24、25这三个副栏目ID,保存后只剩下23,而24和25则不见了踪影。然而,在修改文章时重新添加的ID却能够正常保存。
这种情况的发生原因其实很简单,是因为程序对$typeid2变量进行了整数化处理(intval函数)。这种处理方式导致了第一次添加文章时,系统只能识别并保留一个整数形式的栏目ID,而其他以逗号分隔的ID则被忽略掉了。
那么如何解决这个问题呢?以下是具体的修改步骤:
首先,你需要打开位于/include/helpers/目录下的archive.helper.php文件。找到大约第156行的位置,你会看到如下代码:

$typeid2 = intval($typeid2);
    

接下来,将上述代码注释掉或直接删除。注释的方法是,在这行代码前加上两个斜杠(//),使其变为以下形式:

//$typeid2 = intval($typeid2);
    

完成以上修改后,保存文件并刷新你的网站后台。此时,当你再次尝试为新文章添加多个副栏目时,所有选择的副栏目ID都能够正确保存下来了。
需要注意的是,在进行任何代码修改之前,请务必备份原始文件。这样可以确保如果出现意外情况,你能够迅速恢复到之前的版本。此外,随着DedeCMS版本的更新,相关代码位置可能会有所变化,因此建议在实际操作中仔细核对具体代码内容。
通过上述方法,你可以轻松解决DedeCMS中副栏目ID无法完整保存的问题,从而更高效地管理和发布多分类关联的文章内容。