在使用 Dedecms 进行网站开发时,有时我们需要实现通过自定义字段来调用相关文章的功能。以下是一个详细的步骤指南,帮助您完成这一功能的设置。

第一步:添加自定义字段

首先,在 Dedecms 后台模型中添加一个自定义字段。数据类型选择“单行文本 (varchar)”,这个字段将用于填写需要调用的相关文章 ID。

 

第二步:修改内容页模板

接下来,在 Dedecms 的内容页模板中插入 dede:sql 标签。以下是具体的代码示例:

{dede:sql sql="SELECT * FROM dede_archives WHERE arcrank>-1 AND id in(~自定义字段名~) ORDER BY FIELD(id,~自定义字段名~)"}

    [field:title/]
    

[field:description/]

{/dede:sql}

注意:代码中的 ~自定义字段名~ 需要替换为您实际使用的字段名,例如 ~likeids~

 

第三步:修改核心文件

为了确保 SQL 查询能够正确解析自定义字段的内容,需要对核心文件进行修改。打开 /include/taglib/sql.lib.php 文件,找到以下代码:

$sql = str_replace($conditions[0][$key], "'".addslashes($refObj->Fields[$value])."'", $sql);

将其替换为以下代码:

if(is_numeric(str_replace(';', '', $refObj->Fields[$value])))
{
    $sql = str_replace($conditions[0][$key], addslashes($refObj->Fields[$value]), $sql);
}
else
{
    $sql = str_replace($conditions[0][$key], "'".addslashes($refObj->Fields[$value])."'", $sql);
}

这段代码的作用是判断自定义字段的内容是否为纯数字(即文章 ID 列表),如果是,则直接作为数值处理;否则,按照字符串方式处理。

 

效果预览

完成上述设置后,您的内容页将能够根据自定义字段中填写的文章 ID 自动调用相关文章。以下是一个示例效果:

DedecmsCMS dede:sql 根据自定义字段填的文章 ID 获取相关文章

 

总结

通过以上三个步骤,您可以轻松实现 Dedecms 中基于自定义字段调用相关文章的功能。这种方法不仅灵活,还能满足多种个性化需求。如果您在操作过程中遇到问题,请仔细检查每一步的配置,并确保所有字段名称和路径无误。

希望这篇教程能对您有所帮助!如果您有其他疑问,欢迎留言交流。