后台录入时忘记输入逗号(最常见)
这是最直接的原因,在后台添加或编辑图集时,如果您在输入关键字时直接按空格或连续输入而没有用英文逗号隔开,系统就会将所有文字视为一个完整的关键字。

解决方法:
- 登录DedeCMS后台。
- 进入【核心】 -> 【内容发布与管理】 -> 【图集管理】。
- 找到并编辑您需要修改的那个图集。
- 在“关键字”输入框中,将您输入的文字用英文逗号隔开。
- 错误示例:
风景摄影 旅游 - 正确示例:
风景摄影,旅游
- 错误示例:
- 点击【保存】即可。
关键词显示在页面上没有逗号
您在后台已经正确地用逗号分隔了关键词,但在前台模板页面上显示时,逗号却消失了,这通常是因为模板文件中的调用标签没有正确处理。
子情况2.1:使用了 {dede:field.keywords/}
{dede:field.keywords/} 标签会直接输出数据库里存储的原始内容,如果数据库里是带逗号的,这里就会显示逗号,如果这里没有逗号,那问题很可能出在录入环节(情况一),但有时候,我们希望自定义关键词的显示样式。
解决方法(自定义显示样式):
页模板文件(通常是 templets/default/article_image.htm)中,不要直接使用 {dede:field.keywords/},而是用以下方法:
(图片来源网络,侵删)
方法A:使用 str_replace 函数替换
这种方法可以将逗号替换成其他符号,比如竖线 或者直接去掉。
{dede:field.name function='str_replace(",", "|", @me)'/}
- 这行代码的意思是:获取
field.name(这里用 field.name 举例,实际应替换为 field.keywords,但织梦对关键字字段的处理可能稍有不同,直接用 field.keywords 通常也可以)的值,并将其中的所有英文逗号 替换成竖线 。
- 如果想去掉逗号,就把 改成空字符串 。
方法B:使用 explode 和 implode 函数(更灵活)
这是最推荐的方法,可以完全控制关键词的显示格式。
(图片来源网络,侵删)
{dede:field.keywords runphp='yes'}
// 将 keywords 字符串按逗号分割成数组
$kwArray = explode(',', trim(@me));
// 去掉数组中的空元素
$kwArray = array_filter($kwArray);
// 用你想要的符号将数组重新连接成字符串
// 用空格隔开:
@me = implode(' ', $kwArray);
// 用 " | " 隔开:
// @me = implode(' | ', $kwArray);
// 用 <span> 标签包裹:
// @me = implode(' <span>·</span> ', $kwArray);
{/dede:field.keywords}
如何找到模板文件?
您的模板文件路径取决于您使用的模板,默认路径是 templets/您的模板文件夹名/页通常是 article_image.htm 或类似名称的文件。
批量修改已有图集的关键字
如果您有大量图集的关键字都缺少逗号,手动修改非常麻烦,这时可以通过直接操作数据库来解决。
⚠️ 警告:操作数据库有风险,请务必先备份您的数据库!
解决方法(SQL批量替换):
-
登录您的网站数据库管理工具(如 phpMyAdmin)。
-
选择您的DedeCMS数据库。
-
点击【SQL】按钮,执行以下命令:
UPDATE `dede_archives` SET `keywords` = REPLACE(`keywords`, ' ', ',') WHERE typeid = 2;
命令解释:
UPDATEdede_archives`操作dede_archives` 这张表(存放所有文章和图集信息的核心表)。
SETkeywords= REPLACE(keywords:将 keywords 字段中的所有空格替换成英文逗号,您可以根据实际情况替换,比如将 替换成 。
WHERE typeid = 2:这是一个条件,限定只修改 typeid 为 2 的记录,也就是只修改图集,不影响普通文章(普通文章 typeid 通常不为2),如果您的图集 typeid 不是2,请修改此处的值。
-
执行成功后,您再去后台刷新图集列表,就会发现关键字已经被批量加上了逗号。
总结与排查步骤
当遇到“关键字没有逗号”的问题时,请按以下顺序排查:
- 检查后台录入:首先去后台编辑该图集,确认在“关键字”框里是否用英文逗号正确分隔了,这是最根本的原因。
- 检查前台模板:如果后台正确,但前台显示不对,就去修改图集内容页模板(如
article_image.htm),使用 runphp='yes' 的方法来自定义关键词的输出格式。
- 批量处理:如果是大量数据的问题,且确认后台录入时都是用空格等分隔的,再考虑使用 SQL批量替换 的方法,但操作前务必备份数据库。
希望这个详细的解答能帮到您!
{dede:field.keywords/} 标签会直接输出数据库里存储的原始内容,如果数据库里是带逗号的,这里就会显示逗号,如果这里没有逗号,那问题很可能出在录入环节(情况一),但有时候,我们希望自定义关键词的显示样式。
解决方法(自定义显示样式):
页模板文件(通常是 templets/default/article_image.htm)中,不要直接使用 {dede:field.keywords/},而是用以下方法:

方法A:使用 str_replace 函数替换
这种方法可以将逗号替换成其他符号,比如竖线 或者直接去掉。
{dede:field.name function='str_replace(",", "|", @me)'/}
- 这行代码的意思是:获取
field.name(这里用field.name举例,实际应替换为field.keywords,但织梦对关键字字段的处理可能稍有不同,直接用field.keywords通常也可以)的值,并将其中的所有英文逗号 替换成竖线 。 - 如果想去掉逗号,就把 改成空字符串 。
方法B:使用 explode 和 implode 函数(更灵活)
这是最推荐的方法,可以完全控制关键词的显示格式。

{dede:field.keywords runphp='yes'}
// 将 keywords 字符串按逗号分割成数组
$kwArray = explode(',', trim(@me));
// 去掉数组中的空元素
$kwArray = array_filter($kwArray);
// 用你想要的符号将数组重新连接成字符串
// 用空格隔开:
@me = implode(' ', $kwArray);
// 用 " | " 隔开:
// @me = implode(' | ', $kwArray);
// 用 <span> 标签包裹:
// @me = implode(' <span>·</span> ', $kwArray);
{/dede:field.keywords}
如何找到模板文件?
您的模板文件路径取决于您使用的模板,默认路径是 templets/您的模板文件夹名/页通常是 article_image.htm 或类似名称的文件。
批量修改已有图集的关键字
如果您有大量图集的关键字都缺少逗号,手动修改非常麻烦,这时可以通过直接操作数据库来解决。
⚠️ 警告:操作数据库有风险,请务必先备份您的数据库!
解决方法(SQL批量替换):
-
登录您的网站数据库管理工具(如 phpMyAdmin)。
-
选择您的DedeCMS数据库。
-
点击【SQL】按钮,执行以下命令:
UPDATE `dede_archives` SET `keywords` = REPLACE(`keywords`, ' ', ',') WHERE typeid = 2;
命令解释:
UPDATEdede_archives`操作dede_archives` 这张表(存放所有文章和图集信息的核心表)。SETkeywords= REPLACE(keywords:将keywords字段中的所有空格替换成英文逗号,您可以根据实际情况替换,比如将 替换成 。WHERE typeid = 2:这是一个条件,限定只修改typeid为 2 的记录,也就是只修改图集,不影响普通文章(普通文章typeid通常不为2),如果您的图集typeid不是2,请修改此处的值。
-
执行成功后,您再去后台刷新图集列表,就会发现关键字已经被批量加上了逗号。
总结与排查步骤
当遇到“关键字没有逗号”的问题时,请按以下顺序排查:
- 检查后台录入:首先去后台编辑该图集,确认在“关键字”框里是否用英文逗号正确分隔了,这是最根本的原因。
- 检查前台模板:如果后台正确,但前台显示不对,就去修改图集内容页模板(如
article_image.htm),使用runphp='yes'的方法来自定义关键词的输出格式。 - 批量处理:如果是大量数据的问题,且确认后台录入时都是用空格等分隔的,再考虑使用 SQL批量替换 的方法,但操作前务必备份数据库。
希望这个详细的解答能帮到您!
