织梦tag自动内链如何实现?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

使用织梦后台的“文档关键词自动维护”功能(官方推荐,最简单)

这是织梦系统自带的功能,无需修改代码,适合新手。

操作步骤:

  1. 登录织梦后台:使用管理员账号登录你的网站后台。
  2. 进入关键词管理:在左侧菜单栏中,找到 核心 -> 批量维护 -> 文档关键词自动维护

(这是一个示例图,实际界面可能略有不同)

  1. 添加关键词和链接

    • 在打开的页面中,你会看到一个表格,可以填写以下信息:
      • 输入你希望被自动替换的词,织梦CMS”。
      • 关联URL:输入这个词要链接到的地址。这里可以填写你的Tag链接地址
        • 你的Tag“织梦CMS”的链接是 https://www.yoursite.com/tags.php?/zhimengcms/
        • 你也可以填写一个具体的文章链接,或者一个栏目链接。
      • 替换次数:设置该关键词在每篇文章中最多被替换的次数,建议设置为 1,避免过度优化被搜索引擎惩罚。
      • 是否高亮:选择“是”可以让被替换的关键词在后台显示为黄色,方便识别。
      • 替换范围:默认“文章内容”即可。
  2. 保存并执行

    • 填写完一个关键词后,点击底部的 保存 按钮。
    • 添加完所有你需要的关键词后,点击页面底部的 开始执行 按钮。

注意事项:

  • 执行时机:这个功能是批量处理的,它只会在你点击“开始执行”时,对当前所有已发布的文章进行一次替换。新发布的文章不会自动处理
  • 新文章处理:如果你希望新发布的文章也自动内链,你需要定期(比如每周)回到这个页面点击“开始执行”。
  • 关键词冲突:如果多个关键词包含关系(织梦”和“织梦CMS”),系统会按照你列表的顺序进行匹配和替换,建议把更长的、更精确的词放在上面。

修改 arc.archives.class.php 文件(全自动,推荐)

这个方法可以实现新发布的文章自动内链,无需手动执行,是更优化的解决方案。

操作步骤:

  1. 找到并备份文件

    • 登录你的网站FTP或主机文件管理器。
    • 找到并下载以下文件:/include/arc.archives.class.php
    • 非常重要: 在修改之前,务必备份这个原始文件!
  2. 编辑文件

    • 用代码编辑器(如VS Code, Sublime Text, Notepad++)打开 arc.archives.class.php 文件。
    • 按快捷键 Ctrl + F 搜索 SaveToDb() 函数,找到大约在 第2000行左右 的位置(不同版本行号可能不同)。
  3. 添加自动内链代码: 在 SaveToDb() 函数中,找到 //保存到附加表 这一行代码,在其上方的合适位置(例如在 $this->Fields['body'] = $this->FilterHTML($this->Fields['body']); 这行之后)插入以下代码块:

    // -------------------------------------
    // | 织梦Tag自动内链开始
    // -------------------------------------
    if ($this->Channel->ID > 0) { // 确保是频道模型,避免在自定义模型中出错
        $this->Fields['body'] = $this->ReplaceTags($this->Fields['body']);
    }
    // -------------------------------------
    // | 织梦Tag自动内链结束
    // -------------------------------------
  4. 添加 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;
    }
  5. 保存文件并上传

    • 保存修改后的 arc.archives.class.php 文件。
    • 通过FTP上传到你网站的 /include/ 目录下,覆盖原文件。

效果说明:

  • 全自动:你每发布一篇新文章,系统会自动提取文章的Tag,并在文章内容中查找这些Tag,将其自动替换为链接。
  • 精准匹配:代码中的正则表达式 (\s|[,,。!?]|$) 确保了Tag只在作为独立词语或被标点符号/空格包围时才被替换,避免了错误替换。
  • 安全preg_quote 函数防止了Tag中包含特殊正则字符导致的错误。

使用织梦插件(最省心)

如果你不想自己修改代码,可以使用第三方开发的插件来实现。

操作步骤:

  1. 寻找插件:在织梦官方论坛、DedeCMS吧或一些织梦资源网站(如织梦58、源码爱好者等)搜索“织梦 Tag 自动内链插件”。
  2. 下载和安装:根据插件的说明文档进行下载、上传和安装,通常安装过程很简单,上传文件后,在后台启用插件即可。
  3. 配置插件:进入插件的设置页面,配置需要替换的关键词、链接规则、替换次数等参数。

优点

  • 无需修改核心文件,升级织梦时不易丢失。
  • 通常有图形化管理界面,操作方便。

缺点

  • 需要寻找可靠的插件来源,可能存在安全隐患。
  • 插件可能与你的织梦版本或其他插件不兼容。

总结与建议

方法 优点 缺点 推荐人群
后台维护 无需代码,官方功能,安全 需手动执行,新文章不自动 新手,偶尔需要更新内链的用户
修改代码 全自动,新文章自动处理,精准匹配 需要修改核心文件,有代码风险 有一定基础,追求长期SEO优化的用户
使用插件 安装简单,图形化管理 可靠性待考,可能不兼容 不想写代码,希望快速实现功能的用户

我的建议是:

  • 对于大多数网站,方法二(修改 arc.archives.class.php)是最佳选择,它一劳永逸,真正实现了自动化,对SEO最有利。
  • 如果你是新手,或者只是临时给一批老文章加内链,可以先从方法一开始。
  • 如果你对代码有畏惧心理,或者网站非常复杂,不想动核心文件,可以考虑方法三,但请务必从可信的渠道下载插件。

希望这个详细的教程能帮到你!

-- 展开阅读全文 --
头像
C语言程序设计教程与上机指导如何高效学习?
« 上一篇 02-05
dede手机端填单提交代码怎么写?
下一篇 » 02-05

相关文章

取消
微信二维码
支付宝二维码

目录[+]