使用织梦后台的“文档关键词自动维护”功能(官方推荐,最简单)
这是织梦系统自带的功能,无需修改代码,适合新手。
操作步骤:
- 登录织梦后台:使用管理员账号登录你的网站后台。
- 进入关键词管理:在左侧菜单栏中,找到
核心->批量维护->文档关键词自动维护。
(这是一个示例图,实际界面可能略有不同)
-
添加关键词和链接:
- 在打开的页面中,你会看到一个表格,可以填写以下信息:
- 输入你希望被自动替换的词,织梦CMS”。
- 关联URL:输入这个词要链接到的地址。这里可以填写你的Tag链接地址。
- 你的Tag“织梦CMS”的链接是
https://www.yoursite.com/tags.php?/zhimengcms/ - 你也可以填写一个具体的文章链接,或者一个栏目链接。
- 你的Tag“织梦CMS”的链接是
- 替换次数:设置该关键词在每篇文章中最多被替换的次数,建议设置为 1,避免过度优化被搜索引擎惩罚。
- 是否高亮:选择“是”可以让被替换的关键词在后台显示为黄色,方便识别。
- 替换范围:默认“文章内容”即可。
- 在打开的页面中,你会看到一个表格,可以填写以下信息:
-
保存并执行:
- 填写完一个关键词后,点击底部的
保存按钮。 - 添加完所有你需要的关键词后,点击页面底部的
开始执行按钮。
- 填写完一个关键词后,点击底部的
注意事项:
- 执行时机:这个功能是批量处理的,它只会在你点击“开始执行”时,对当前所有已发布的文章进行一次替换。新发布的文章不会自动处理。
- 新文章处理:如果你希望新发布的文章也自动内链,你需要定期(比如每周)回到这个页面点击“开始执行”。
- 关键词冲突:如果多个关键词包含关系(织梦”和“织梦CMS”),系统会按照你列表的顺序进行匹配和替换,建议把更长的、更精确的词放在上面。
修改 arc.archives.class.php 文件(全自动,推荐)
这个方法可以实现新发布的文章自动内链,无需手动执行,是更优化的解决方案。
操作步骤:
-
找到并备份文件:
- 登录你的网站FTP或主机文件管理器。
- 找到并下载以下文件:
/include/arc.archives.class.php - 非常重要: 在修改之前,务必备份这个原始文件!
-
编辑文件:
- 用代码编辑器(如VS Code, Sublime Text, Notepad++)打开
arc.archives.class.php文件。 - 按快捷键
Ctrl + F搜索SaveToDb()函数,找到大约在 第2000行左右 的位置(不同版本行号可能不同)。
- 用代码编辑器(如VS Code, Sublime Text, Notepad++)打开
-
添加自动内链代码: 在
SaveToDb()函数中,找到//保存到附加表这一行代码,在其上方的合适位置(例如在$this->Fields['body'] = $this->FilterHTML($this->Fields['body']);这行之后)插入以下代码块:// ------------------------------------- // | 织梦Tag自动内链开始 // ------------------------------------- if ($this->Channel->ID > 0) { // 确保是频道模型,避免在自定义模型中出错 $this->Fields['body'] = $this->ReplaceTags($this->Fields['body']); } // ------------------------------------- // | 织梦Tag自动内链结束 // ------------------------------------- -
添加
ReplaceTags方法: 在arc.archives.class.php文件的末尾,?>标签之前,添加以下ReplaceTags方法:/** * 替换文章内容中的Tag为链接 * @param string $body 文章内容 * @return string 处理后的文章内容 */ function ReplaceTags($body) { global $dsql; // 获取当前文章的所有Tag $tags = GetTags($this->Fields['id']); if (!empty($tags)) { $tagArray = explode(',', $tags); foreach ($tagArray as $tag) { $tag = trim($tag); if (empty($tag)) continue; // 构建Tag链接 $tagUrl = $GLOBALS['cfg_cmsurl'] . '/tags.php?/' . $tag . '/'; // 对Tag中的特殊字符进行转义,用于正则表达式 $escapedTag = preg_quote($tag, '/'); // 使用正则表达式替换,确保是完整的单词匹配,避免替换部分词 // 匹配“织梦CMS”,但不会匹配“我的织梦CMS很好” $body = preg_replace_callback('/(' . $escapedTag . ')(\s|[,,。!?]|$)/i', function($matches) use ($tagUrl) { return '<a href="' . $tagUrl . '" title="' . $matches[1] . '" target="_blank">' . $matches[1] . '</a>' . $matches[2]; }, $body); } } return $body; } -
保存文件并上传:
- 保存修改后的
arc.archives.class.php文件。 - 通过FTP上传到你网站的
/include/目录下,覆盖原文件。
- 保存修改后的
效果说明:
- 全自动:你每发布一篇新文章,系统会自动提取文章的Tag,并在文章内容中查找这些Tag,将其自动替换为链接。
- 精准匹配:代码中的正则表达式
(\s|[,,。!?]|$)确保了Tag只在作为独立词语或被标点符号/空格包围时才被替换,避免了错误替换。 - 安全:
preg_quote函数防止了Tag中包含特殊正则字符导致的错误。
使用织梦插件(最省心)
如果你不想自己修改代码,可以使用第三方开发的插件来实现。
操作步骤:
- 寻找插件:在织梦官方论坛、DedeCMS吧或一些织梦资源网站(如织梦58、源码爱好者等)搜索“织梦 Tag 自动内链插件”。
- 下载和安装:根据插件的说明文档进行下载、上传和安装,通常安装过程很简单,上传文件后,在后台启用插件即可。
- 配置插件:进入插件的设置页面,配置需要替换的关键词、链接规则、替换次数等参数。
优点:
- 无需修改核心文件,升级织梦时不易丢失。
- 通常有图形化管理界面,操作方便。
缺点:
- 需要寻找可靠的插件来源,可能存在安全隐患。
- 插件可能与你的织梦版本或其他插件不兼容。
总结与建议
| 方法 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| 后台维护 | 无需代码,官方功能,安全 | 需手动执行,新文章不自动 | 新手,偶尔需要更新内链的用户 |
| 修改代码 | 全自动,新文章自动处理,精准匹配 | 需要修改核心文件,有代码风险 | 有一定基础,追求长期SEO优化的用户 |
| 使用插件 | 安装简单,图形化管理 | 可靠性待考,可能不兼容 | 不想写代码,希望快速实现功能的用户 |
我的建议是:
- 对于大多数网站,方法二(修改
arc.archives.class.php)是最佳选择,它一劳永逸,真正实现了自动化,对SEO最有利。 - 如果你是新手,或者只是临时给一批老文章加内链,可以先从方法一开始。
- 如果你对代码有畏惧心理,或者网站非常复杂,不想动核心文件,可以考虑方法三,但请务必从可信的渠道下载插件。
希望这个详细的教程能帮到你!
