·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

求插件或者代码,发新帖,根据标题内容自动添加已经存在的标签 New

219 2
发表于 2024-8-10 20:18:33 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
求插件或者代码,发新帖,根据标题内容自动添加已经存在的标签


比如,已经有了Discuz社区这个标签,新帖的标题中含有
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

CrystαlLv.8 发表于 2024-8-10 20:19:25 | 查看全部
要去判断已有标签,性能上其实不太好,一般都是直接分词提取
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-18 14:32:45 | 查看全部
要实现发新帖时根据标题内容自动添加已经存在的标签,你可以通过编写一个自定义的Discuz插件来实现这个功能。以下是一个简单的实现思路和代码示例:

### 实现思路:
1. **监听发帖事件**:通过Discuz的插件机制,监听发帖事件(`forum_post`)。
2. **提取标题关键词**:从帖子标题中提取关键词。
3. **匹配已有标签**:将提取的关键词与已有的标签进行匹配。
4. **自动添加标签**:如果匹配成功,自动将匹配到的标签添加到帖子中。

### 代码示例:

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_autotag {
  6.     function forum_post($param) {
  7.         global $_G;

  8.         $tid = $param['tid']; // 获取帖子ID
  9.         $subject = $param['subject']; // 获取帖子标题

  10.         // 获取所有已有标签
  11.         $tags = C::t('common_tag')->fetch_all();

  12.         // 提取标题中的关键词(这里简单使用空格分割)
  13.         $keywords = explode(' ', $subject);

  14.         $matchedTags = array();

  15.         // 匹配已有标签
  16.         foreach ($tags as $tag) {
  17.             foreach ($keywords as $keyword) {
  18.                 if (strpos($tag['tagname'], $keyword) !== false) {
  19.                     $matchedTags[] = $tag['tagname'];
  20.                 }
  21.             }
  22.         }

  23.         // 去重
  24.         $matchedTags = array_unique($matchedTags);

  25.         // 自动添加匹配到的标签
  26.         if (!empty($matchedTags)) {
  27.             C::t('forum_thread')->update($tid, array('tags' => implode(',', $matchedTags)));
  28.         }
  29.     }
  30. }
复制代码


### 安装步骤:
1. **创建插件目录**:在 `source/plugin/` 目录下创建一个新的插件目录,例如 `autotag`。
2. **创建插件文件**:在 `autotag` 目录下创建 `discuz_plugin_autotag.xml` 文件,用于定义插件的基本信息。
3. **编写插件主文件**:在 `autotag` 目录下创建 `plugin_autotag.php` 文件,并将上述代码粘贴进去。
4. **安装插件**:进入Discuz后台,找到插件管理,安装并启用 `autotag` 插件。

### `discuz_plugin_autotag.xml` 示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[自动标签插件]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[发帖时根据标题内容自动添加已有标签]]></item>
  6.     <item id="author"><![CDATA[Your Name]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net]]></item>
  8.     <item id="adminid">1</item>
  9.     <item id="installfile"><![CDATA[]]></item>
  10.     <item id="uninstallfile"><![CDATA[]]></item>
  11.     <item id="upgradefile"><![CDATA[]]></item>
  12.     <item id="pluginvar"></item>
  13.     <item id="pluginlang"></item>
  14.     <item id="pluginstyle"></item>
  15.     <item id="pluginhooks">
  16.         <item id="forum_post">
  17.             <item id="class"><![CDATA[plugin_autotag]]></item>
  18.             <item id="method"><![CDATA[forum_post]]></item>
  19.         </item>
  20.     </item>
  21. </root>
复制代码


### 注意事项:
1. **性能优化**:如果标签数量较多,建议对标签进行缓存,避免每次发帖时都查询数据库。
2. **关键词提取**:可以根据实际需求使用更复杂的关键词提取算法,例如使用分词工具。
3. **标签匹配规则**:可以根据需求调整标签匹配规则,例如使用正则表达式进行更精确的匹配。

通过以上步骤,你可以实现一个简单的自动标签功能。如果有更复杂的需求,可以根据实际情况进行扩展和优化。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.159.67,GMT+8, 2025-4-25 19:27 , Processed in 0.340409 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表