在使用Dedecms CMS进行网站开发时,有时会遇到需要按照指定ID顺序输出文章的需求。然而,默认的arclist标签可能无法满足这一需求,导致输出结果与预期不符。本文将详细介绍如何通过修改核心文件来实现按指定ID顺序输出文章的功能。
问题描述如下:当使用arclist标签并设置idlist参数后,期望文章按照指定的ID顺序输出,但实际结果却并非如此。

为了解决这个问题,我们需要对Dedecms的核心文件进行适当的修改。
解决方法:
1、打开 /include/taglib/arclist.lib.php 文件,找到大概在第338行的代码:
else if($orderby == 'rand') $ordersql = " ORDER BY rand()";
在其下方添加以下代码:
else if($orderby == 'idlist') $ordersql = " ORDER BY FIELD(arc.id,$idlist)";
这一步的作用是新增一种排序方式,使得arclist标签能够根据idlist参数中的ID顺序进行排序。
2、在模板中调用arclist标签时,需要同时指定idlist和orderby参数。例如:
{dede:arclist idlist='1,2,110,108,109' orderby='idlist'}
{/dede:arclist}
这样设置后,Dedecms将会按照idlist参数中指定的ID顺序输出文章。
最终效果如图所示:

通过上述步骤,您可以成功实现Dedecms arclist标签按照指定ID顺序输出文章的功能。这种方法不仅简单易行,而且能够满足大多数定制化需求。
如果您在操作过程中遇到任何问题,请确保正确备份了原始文件,并仔细检查每一处修改是否准确无误。此外,建议在测试环境中先行验证改动效果,以避免对线上站点造成不必要的影响。