织梦如何一键设置自定义tag标签?

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

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

织梦一键设置自定义tag标签
(图片来源网络,侵删)

我将为你详细讲解这两种最常用、最有效的方法。


后台批量操作(最安全、最直接)

这种方法适用于你已经有很多文章,现在需要为它们统一添加或修改tag标签,它不需要修改任何代码,完全在后台完成。

场景1:为单篇文章设置/修改Tag

这是最基础的操作,你应该已经知道了。

  1. 登录织梦后台。
  2. 进入【核心】 -> 【内容频道管理】 -> 【文章栏目管理】,选择一个你想要发布文章的栏目。
  3. 点击【增加顶级栏目】或选择一个已有栏目,进入“栏目编辑”页面。
  4. 在栏目编辑页面,找到 “高级选项” 或类似的标签页。
  5. 找到 “自动提取关键字”“自动提取摘要” 的选项,务必勾选上,这是织梦自动生成Tag和摘要的前提。
  6. 保存栏目设置。
  7. 现在去发布或编辑一篇文章,在文章编辑页面的下方,你会看到 “关键字(Tag)” 这个输入框,系统会根据你勾选的设置,自动从文章内容中提取一些词语作为默认的Tag。
  8. 你可以直接使用这些默认的,也可以手动修改、删除或添加,用英文逗号()隔开。
  9. 保存文章即可。

场景2:为多篇文章批量添加/修改Tag(核心方法)

这才是真正的“批量设置”。

织梦一键设置自定义tag标签
(图片来源网络,侵删)
  1. 准备工作:确保你的栏目已经开启了“自动提取关键字”(如上一步所述)。

  2. 进入批量管理

    • 在后台左侧菜单,进入【核心】 -> 【批量维护】
    • 在“批量维护”页面,找到并点击 关键词维护】
  3. 选择文章并更新Tag

    • 关键词维护”页面,你可以看到所有文章的列表。
    • 在列表的上方,有强大的筛选功能,你可以按 栏目发布日期关键字是否为空 等条件来筛选出你想要操作的文章,你可以筛选出“关键字为空”的所有文章。
    • 勾选你想要批量设置Tag的所有文章,你也可以点击列表上方的 “全选” 按钮来选择当前页面显示的所有文章。
    • 勾选完成后,点击列表下方的 处理” 按钮。
  4. 执行更新操作

    织梦一键设置自定义tag标签
    (图片来源网络,侵删)
    • 点击后,会弹出一个新的处理窗口。
    • 在这个窗口中,你会看到 “关键字替换”“关键字追加” 两个选项。
      • 关键字替换:会清空这些文章原有的所有Tag,然后填入你下面输入的新Tag。(慎用,会覆盖原有内容)
      • 关键字追加:会保留这些文章原有的Tag,并在其后面追加你输入的新Tag。(推荐使用,更安全)
    • 在下方的文本框中,输入你想要设置的Tag,多个Tag之间用英文逗号()隔开织梦教程,dedecms,网站建设
    • 选择好操作方式(建议选“追加”)并输入Tag后,点击 “执行” 按钮。
  5. 完成

    • 系统会开始处理,处理完成后会提示你成功更新了多少篇文章。
    • 你可以去前台查看文章,或者去文章编辑页验证,Tag标签已经成功批量设置了。

修改代码实现自动添加Tag(高级、一劳永逸)

如果你希望以后发布的所有文章都自动带上你预设的一些固定Tag(例如网站的名称、核心业务等),可以通过修改核心代码来实现。

警告:修改文件前,请务必备份原文件!以免出错导致网站无法正常运行。

操作步骤:

  1. 找到核心文件

    • 登录你的网站FTP或主机文件管理器。
    • 找到并下载织梦程序根目录下的文件:/include/common.func.php,这是一个公共函数库文件。
  2. 添加自定义函数

    • 用代码编辑器(如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;
    }
  3. 修改文章发布处理文件

    • 找到并下载文件:/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);
        }
        // ... 其他代码 ...
  4. 完成并测试

    • 保存并上传你修改过的三个文件:common.func.php, archives_add.php, archives_edit.php
    • 去后台发布一篇新文章。
    • 发布成功后,你会发现文章的Tag标签栏里,不仅有系统自动提取的关键词,还有你在代码中预设的 织梦,DedeCMS,我的网站 等标签。

总结与建议

方法 优点 缺点 适用场景
后台批量操作 安全、简单、无需技术基础,可针对任意历史文章操作。 需要手动操作,对于大量文章可能步骤稍多。 强烈推荐,适用于所有需要修改已有文章Tag的情况,是日常维护的首选。
代码修改 一劳永逸,新文章自动带上预设Tag,提高效率。 有风险(修改核心文件),需要一定的PHP知识,更新织梦版本时可能被覆盖。 适用于有固定品牌或业务标签,且希望所有新文章都带上这些标签的网站。

给你的最终建议:

  1. 对于已有的文章:使用方法一进行批量处理,安全高效。
  2. 对于未来的文章:如果你有固定的Tag需求,可以尝试方法二,实现自动化。

希望这个详细的教程能帮助你完美解决织梦Tag标签的设置问题!

-- 展开阅读全文 --
头像
dede addfields 无效怎么办?
« 上一篇 2025-12-18
C语言如何用lua_pushtable压入表?
下一篇 » 2025-12-18

相关文章

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

目录[+]