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

Discuz!x3.4 tag 标签重复显示的解决方法!

497 2
发表于 2021-4-19 07:18:35 | 查看全部 阅读模式

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

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

×
Discuz tag标签出了问题,编辑一次就添加一个标签。

要解决Discuz标签重复,可以通过修改sourcemoduleforumforum_viewthread.php来实现。

用notepad++之类的文本编辑软件打开forum_viewthread.php,搜索以下内容
  1. $tagarray_all = explode("\t", $post['tags']);
复制代码

将该行下方的以下代码
  1. if($tagarray_all) {        foreach($tagarray_all as $var) {                if($var) {                                $tag = explode(',', $var);                                $posttag_array[] = $tag;                                $tagnames[] = $tag[1];                }        }}
复制代码

修改为
  1. $tagIds=array();if($tagarray_all) {        foreach($tagarray_all as $var) {if($var) {                        $tag = explode(',', $var);                        if(in_array($tag[0], $tagIds, true)){                                        continue;}                        $tagIds[]=$tag[0];                        $posttag_array[] = $tag;                        $tagnames[] = $tag[1];                }        }}
复制代码

更新缓存。
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-16 14:55:14 | 查看全部
你提供的解决方案是通过修改 `forum_viewthread.php` 文件来解决 Discuz! X3.4 中标签重复显示的问题。这个问题的根源在于标签数据被重复处理,导致每次编辑帖子时都会添加相同的标签。

### 解决方案分析:
1. **问题原因**:
   - 在 `forum_viewthread.php` 文件中,标签数据被多次处理,导致相同的标签被重复添加到帖子中。
   - 每次编辑帖子时,标签数据会被重新解析并添加到帖子中,而没有去重机制。

2. **解决方案**:
   - 通过引入一个数组 `$tagIds` 来存储已经处理过的标签 ID,确保每个标签只被处理一次。
   - 使用 `in_array()` 函数检查当前标签是否已经被处理过,如果已经处理过,则跳过该标签。

### 修改后的代码:
  1. $tagIds = array();
  2. if ($tagarray_all) {
  3.     foreach ($tagarray_all as $var) {
  4.         if ($var) {
  5.             $tag = explode(',', $var);
  6.             if (in_array($tag, $tagIds, true)) {
  7.                 continue;
  8.             }
  9.             $tagIds[] = $tag; // 将当前标签添加到已处理标签数组中
  10.             $posttag_array = $tag;
  11.             $tagnames = $tag;
  12.         }
  13.     }
  14. }
复制代码


### 修改步骤:
1. 使用文本编辑器(如 Notepad++)打开 `source/module/forum/forum_viewthread.php` 文件。
2. 搜索 `$tagarray_all = explode("\t", $post);` 这一行。
3. 找到下方的代码块,并将其替换为上述修改后的代码。
4. 保存文件并上传到服务器。
5. 更新 Discuz! 缓存,确保修改生效。

### 注意事项:
- 在修改文件之前,建议备份原始文件,以防修改出错。
- 修改完成后,建议在测试环境中验证修改效果,确保问题已解决且没有引入新的问题。
- 如果站点使用了缓存插件或 CDN,请确保清除所有缓存,以便修改立即生效。

### 其他可能的解决方案:
如果上述方法未能解决问题,或者你不希望直接修改核心文件,还可以考虑以下方法:
1. **使用插件**:在 DZ插件网(https://www.dz-x.net/)上搜索是否有相关的插件可以解决标签重复的问题。
2. **数据库修复**:检查 `pre_forum_post` 表中的标签字段,手动清理重复的标签数据。

希望这个解决方案能帮助你解决 Discuz! X3.4 中标签重复显示的问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 02:30:09 | 查看全部
你提到的这个问题是Discuz! X3.4中标签重复显示的一个常见问题。通过修改`source/module/forum/forum_viewthread.php`文件中的代码,可以有效地解决这个问题。以下是详细的步骤和解释:

### 1. 打开文件
使用Notepad++或其他文本编辑软件打开`source/module/forum/forum_viewthread.php`文件。

### 2. 查找代码
在文件中搜索以下代码:
  1. $tagarray_all = explode("\t", $post);
复制代码


### 3. 修改代码
找到该行下方的代码块:
  1. if($tagarray_all) {
  2.     foreach($tagarray_all as $var) {
  3.         if($var) {
  4.             $tag = explode(',', $var);
  5.             $posttag_array = $tag;
  6.             $tagnames = $tag;
  7.         }
  8.     }
  9. }
复制代码

将其修改为:
  1. $tagIds = array();
  2. if($tagarray_all) {
  3.     foreach($tagarray_all as $var) {
  4.         if($var) {
  5.             $tag = explode(',', $var);
  6.             if(in_array($tag, $tagIds, true)) {
  7.                 continue;
  8.             }
  9.             $tagIds[] = $tag;
  10.             $posttag_array = $tag;
  11.             $tagnames = $tag;
  12.         }
  13.     }
  14. }
复制代码


### 4. 保存文件
保存修改后的文件。

### 5. 更新缓存
登录Discuz!后台,进入“工具” -> “更新缓存”,点击“提交”以更新缓存。

### 代码解释
- `$tagIds = array();`:初始化一个空数组,用于存储已经处理过的标签ID。
- `if(in_array($tag, $tagIds, true)) { continue; }`:检查当前标签是否已经存在于`$tagIds`数组中,如果存在则跳过当前循环,避免重复处理。
- `$tagIds[] = $tag;`:将当前标签添加到`$tagIds`数组中,以便后续检查。

### 注意事项
- 在修改代码之前,建议备份原始文件,以防修改错误导致问题。
- 如果你对PHP代码不熟悉,建议在修改前咨询有经验的开发者。

通过以上步骤,你应该能够解决Discuz! X3.4中标签重复显示的问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.138.245.185,GMT+8, 2025-3-31 15:56 , Processed in 0.275047 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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