dede如何自动给内容加关键字链接?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 DEDE建站 正文

下面我将为你提供一个详细、分步的教程,包含两种实现方法:手动修改代码法安装现成插件法

dede内容自动加关键字链接
(图片来源网络,侵删)

手动修改代码法(最常用、最稳定)

这种方法通过修改核心文件,实现全自动化的关键字链接替换,优点是功能强大、可定制性高;缺点是升级DedeCMS时可能会被覆盖,需要重新修改。

第1步:修改文章生成核心类文件

这个文件是每次生成或更新文章时都会调用的文件,我们在这里添加关键字链接的逻辑。

  1. 找到文件include/arc.archives.class.php

  2. 编辑文件: 用Dreamweaver、Notepad++等代码编辑器打开该文件。

    dede内容自动加关键字链接
    (图片来源网络,侵删)
  3. 添加关键代码: 在文件中找到 function MakeHtml() 函数(通常在文件末尾附近),在这个函数里找到处理文章内容的部分,即 $this->Fields['body'] = $this->ReplaceLitpic($this->Fields['body']); 这一行。

    在这一行代码的下面,添加如下代码:

    // ----------------- 自动关键字链接 Start -----------------
    $this->Fields['body'] = $this->ReplaceKeyword($this->Fields['body']);
    // ----------------- 自动关键字链接 End -----------------

    代码解释

    • 我们调用了当前类(arc.archives.class.php)中的 ReplaceKeyword 方法。
    • 这个方法的作用就是将文章内容 $this->Fields['body'] 中的关键字替换为带链接的格式。
  4. 定义 ReplaceKeyword 方法: 现在需要在 arc.archives.class.php 文件中找到 class Archives 类,并在其内部添加 ReplaceKeyword 这个自定义方法,把它放在类的末尾,function Close() 函数之前是一个好习惯。

    dede内容自动加关键字链接
    (图片来源网络,侵删)

    在类的末尾添加如下代码:

    /**
     *  文档内容关键字替换
     *
     * @access    public
     * @param     string  $body  文档内容
     * @return    string
     */
    function ReplaceKeyword($body)
    {
        global $dsql;
        $keywords = '';
        $query = "SELECT keyword, rpurl FROM `#@__keywords` WHERE `rpurl` != '' ORDER BY rank DESC";
        $dsql->SetQuery($query);
        $dsql->Execute();
        while ($row = $dsql->GetArray())
        {
            // 过滤掉已在链接中的关键字,避免重复链接
            $body = preg_replace("/(<a.*?>)([^>]*?)(" . $row['keyword'] . ")([^>]*?)(<\/a>)/is", '\\1\\2\\4\\5', $body);
            // 执行关键字替换
            $body = str_replace($row['keyword'], "<a href='" . $row['rpurl'] . "' target='_blank' title='" . $row['keyword'] . "'>" . $row['keyword'] . "</a>", $body);
            $keywords .= ($keywords == '' ? $row['keyword'] : ',' . $row['keyword']);
        }
        return $body;
    }

    代码解释

第2步:更新或生成文章

完成以上修改后,你需要让系统重新处理文章,才能看到效果。

  • 对于新发布的文章:直接发布即可,链接会自动加上。
  • 对于已存在的旧文章
    1. 进入“内容管理 -> 文章维护”。
    2. 勾选你需要更新的文章。
    3. 点击“更新HTML”按钮。
    4. 系统会重新生成这些文章的HTML页面,此时关键字链接就会被自动添加上去。

安装现成插件法(简单、快速,但可能不兼容新版)

如果你不想修改核心文件,或者担心升级问题,可以尝试使用现成的插件,网上有很多类似的“DedeCMS自动关键字链接”插件。

操作步骤

  1. 搜索插件:在DedeCMS相关的论坛、资源网站(如Dede58、织梦吧等)搜索“自动关键字链接”或“关键词自动链接”插件。
  2. 下载插件:下载插件包,通常包含一个安装说明文件(.txt)和必要的PHP文件。
  3. 上传安装:按照说明文件,将PHP文件上传到DedeCMS的指定目录(通常是 /include//dede/)。
  4. 执行安装:在后台找到插件对应的安装入口(可能是一个 install.php 文件),访问它以完成数据库表的写入或配置的修改。
  5. 启用功能:在后台的“系统 -> 系统基本参数”或插件管理页面中,找到相关设置项,启用该功能。
  6. 更新文章:同样,对于旧文章需要执行“更新HTML”操作。

插件法的优缺点

  • 优点:安装简单,不直接修改核心文件,升级DedeCMS时可能不受影响。
  • 缺点:插件质量参差不齐,可能与你的DedeCMS版本不兼容,或者存在安全漏洞,功能可能不如手动修改的灵活。

重要注意事项和最佳实践

  1. 关键字数量控制: 自动链接虽然方便,但滥用会导致用户体验下降(页面满是链接),甚至被搜索引擎认为是“过度优化”而受到惩罚。

    • 建议:只在后台设置最核心、最重要的5-10个关键词进行自动链接,其他的可以手动添加。
  2. 链接的“度”

    • 不要链接文章标题本身就是最重要的锚文本,再在正文中链接一次是多余的。
    • 一篇文章内,同一个关键词只链接一次:这可以通过修改 ReplaceKeyword 函数中的 str_replacepreg_replace 并使用 limit 参数来实现,但默认的 str_replace 会替换所有匹配项,从SEO角度看,一篇文章内链接一次更自然。
  3. 重复链接”的补充说明: 方法一中的代码已经通过正则表达式 preg_replace("/(<a.*?>)([^>]*?)(" . $row['keyword'] . ")([^>]*?)(<\/a>)/is", ...) 过滤了在已有链接内的关键字,这是非常关键的,能保证HTML代码的规范性。

  4. 升级备份: 如果你选择手动修改代码,一定要在修改前备份 include/arc.archives.class.php 文件,这样在升级DedeCMS后,你可以轻松地恢复修改,而不是重新编写。

方法 优点 缺点 推荐人群
手动修改代码 功能强大、稳定、灵活、可完全控制 升级DedeCMS后可能被覆盖,需要重新修改 有一定代码基础,追求稳定和功能完善的站长
安装现成插件 安装简单,不修改核心文件 插件质量不一,可能不兼容,功能受限 不想碰代码,追求快速上手的初学者

对于大多数用户来说,方法一(手动修改代码)是更可靠、更长远的选择,只要遵循“少而精”的原则,它能为你的网站带来很好的SEO收益。

-- 展开阅读全文 --
头像
织梦5.7首页如何调用联动类型数据?
« 上一篇 01-12
织梦官网模板下载地址在哪?
下一篇 » 01-12

相关文章

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

目录[+]