这个过程没有一个叫做“一键设置”的魔法按钮,但我们可以通过后台批量操作和修改代码(自动添加)两种方式来实现类似“一键”的效果。

(图片来源网络,侵删)
我将为你详细讲解这两种最常用、最有效的方法。
后台批量操作(最安全、最直接)
这种方法适用于你已经有很多文章,现在需要为它们统一添加或修改tag标签,它不需要修改任何代码,完全在后台完成。
场景1:为单篇文章设置/修改Tag
这是最基础的操作,你应该已经知道了。
- 登录织梦后台。
- 进入【核心】 -> 【内容频道管理】 -> 【文章栏目管理】,选择一个你想要发布文章的栏目。
- 点击【增加顶级栏目】或选择一个已有栏目,进入“栏目编辑”页面。
- 在栏目编辑页面,找到 “高级选项” 或类似的标签页。
- 找到 “自动提取关键字” 和 “自动提取摘要” 的选项,务必勾选上,这是织梦自动生成Tag和摘要的前提。
- 保存栏目设置。
- 现在去发布或编辑一篇文章,在文章编辑页面的下方,你会看到 “关键字(Tag)” 这个输入框,系统会根据你勾选的设置,自动从文章内容中提取一些词语作为默认的Tag。
- 你可以直接使用这些默认的,也可以手动修改、删除或添加,用英文逗号()隔开。
- 保存文章即可。
场景2:为多篇文章批量添加/修改Tag(核心方法)
这才是真正的“批量设置”。

(图片来源网络,侵删)
-
准备工作:确保你的栏目已经开启了“自动提取关键字”(如上一步所述)。
-
进入批量管理:
- 在后台左侧菜单,进入【核心】 -> 【批量维护】。
- 在“批量维护”页面,找到并点击 关键词维护】。
-
选择文章并更新Tag:
- 关键词维护”页面,你可以看到所有文章的列表。
- 在列表的上方,有强大的筛选功能,你可以按 栏目、发布日期、关键字是否为空 等条件来筛选出你想要操作的文章,你可以筛选出“关键字为空”的所有文章。
- 勾选你想要批量设置Tag的所有文章,你也可以点击列表上方的 “全选” 按钮来选择当前页面显示的所有文章。
- 勾选完成后,点击列表下方的 处理” 按钮。
-
执行更新操作:
(图片来源网络,侵删)- 点击后,会弹出一个新的处理窗口。
- 在这个窗口中,你会看到 “关键字替换” 和 “关键字追加” 两个选项。
- 关键字替换:会清空这些文章原有的所有Tag,然后填入你下面输入的新Tag。(慎用,会覆盖原有内容)
- 关键字追加:会保留这些文章原有的Tag,并在其后面追加你输入的新Tag。(推荐使用,更安全)
- 在下方的文本框中,输入你想要设置的Tag,多个Tag之间用英文逗号()隔开。
织梦教程,dedecms,网站建设。 - 选择好操作方式(建议选“追加”)并输入Tag后,点击 “执行” 按钮。
-
完成:
- 系统会开始处理,处理完成后会提示你成功更新了多少篇文章。
- 你可以去前台查看文章,或者去文章编辑页验证,Tag标签已经成功批量设置了。
修改代码实现自动添加Tag(高级、一劳永逸)
如果你希望以后发布的所有文章都自动带上你预设的一些固定Tag(例如网站的名称、核心业务等),可以通过修改核心代码来实现。
警告:修改文件前,请务必备份原文件!以免出错导致网站无法正常运行。
操作步骤:
-
找到核心文件:
- 登录你的网站FTP或主机文件管理器。
- 找到并下载织梦程序根目录下的文件:
/include/common.func.php,这是一个公共函数库文件。
-
添加自定义函数:
- 用代码编辑器(如Notepad++, VS Code)打开
common.func.php文件。 - 在文件的末尾,
?>标签的前面,添加以下PHP代码:
/** * 自动为文章添加预设的Tag标签 * @param string $body 文章内容 * @param string $tags 预设的标签,多个用英文逗号隔开 * @return string 返回处理后的内容 */ function autoAddPresetTags($body, $tags = '') { // 如果没有预设标签,则直接返回原文 if (empty($tags)) { return $body; } // 获取文章中的第一个图片,作为封面图(可选,但推荐) $litpic = ''; if (preg_match("/<img\s[^>]*?src=(['\"])([^'\">]+)\1[^>]*?>/i", $body, $match)) { $litpic = $match[2]; } // 调用系统自带的GetTags函数,获取文章内容中提取的关键词 // 注意:这个函数需要你的系统开启了关键字提取功能 $autoTags = GetTags($body); // 合并预设标签和自动提取的标签,并去重 $finalTags = array(); if (!empty($autoTags)) { $finalTags = explode(',', $autoTags); } $presetTags = explode(',', $tags); $finalTags = array_unique(array_merge($finalTags, $presetTags)); // 将处理好的标签重新组合成字符串 $tagString = implode(',', $finalTags); // 返回处理后的标签 // 注意:这里不直接修改body,而是返回标签字符串,由调用者决定如何使用 return $tagString; } - 用代码编辑器(如Notepad++, VS Code)打开
-
修改文章发布处理文件:
-
找到并下载文件:
/dede/archives_add.php(用于新增文章)和/dede/archives_edit.php(用于编辑文章),为了“一键设置”的效果,我们通常修改archives_add.php,让新文章自动带上。 -
修改
archives_add.php:-
用代码编辑器打开
archives_add.php。 -
找到类似下面的代码段(通常在文件末尾,
$dsql->Execute('addarc');之后):// ... 其他代码 ... if($arc->SaveToDB()) { $artUrl = GetArcUrl($arc->ID,$arc->typeid,$arc->senddate,$arc->title,$arc->ismake,$arc->arcrank,$arc->namerule,$arc->typedir,$arc->money); //更新点击量 $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET click=click+1 WHERE id='$arc->ID';"); ShowMsg("成功发布一篇新的文章!",$artUrl,0,1); } else { ShowMsg("未知原因,文章发布失败!",$ENV_GOBACK_URL,0,10000); } // ... 其他代码 ... -
在
SaveToDB()成功之后,ShowMsg(...)之前,插入我们刚刚创建的函数调用代码:// ... 其他代码 ... if($arc->SaveToDB()) { // ====== 在这里添加自定义Tag ====== $presetTags = '织梦,DedeCMS,我的网站'; // 在这里填写你想要预设的标签,用英文逗号隔开 $autoAddedTags = autoAddPresetTags($arc->body, $presetTags); // 如果函数返回了标签,则更新到数据库 if (!empty($autoAddedTags)) { $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET tags='$autoAddedTags' WHERE id='$arc->ID';"); } // ================================= $artUrl = GetArcUrl($arc->ID,$arc->typeid,$arc->senddate,$arc->title,$arc->ismake,$arc->arcrank,$arc->namerule,$arc->typedir,$arc->money); //更新点击量 $dsql->ExecuteNoneQuery("UPDATE `#@__archives` SET click=click+1 WHERE id='$arc->ID';"); ShowMsg("成功发布一篇新的文章!",$artUrl,0,1); } // ... 其他代码 ...
-
-
-
完成并测试:
- 保存并上传你修改过的三个文件:
common.func.php,archives_add.php,archives_edit.php。 - 去后台发布一篇新文章。
- 发布成功后,你会发现文章的Tag标签栏里,不仅有系统自动提取的关键词,还有你在代码中预设的
织梦,DedeCMS,我的网站等标签。
- 保存并上传你修改过的三个文件:
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台批量操作 | 安全、简单、无需技术基础,可针对任意历史文章操作。 | 需要手动操作,对于大量文章可能步骤稍多。 | 强烈推荐,适用于所有需要修改已有文章Tag的情况,是日常维护的首选。 |
| 代码修改 | 一劳永逸,新文章自动带上预设Tag,提高效率。 | 有风险(修改核心文件),需要一定的PHP知识,更新织梦版本时可能被覆盖。 | 适用于有固定品牌或业务标签,且希望所有新文章都带上这些标签的网站。 |
给你的最终建议:
- 对于已有的文章:使用方法一进行批量处理,安全高效。
- 对于未来的文章:如果你有固定的Tag需求,可以尝试方法二,实现自动化。
希望这个详细的教程能帮助你完美解决织梦Tag标签的设置问题!
