WordPress 标签清理实践(五):基于 PHP/Go 脚本解决 English 语言下残留的中文标签问题 ,并实现自动化的标签合并与 URL 跳转
前言
本文将介绍如何彻底解决 English 语言下残留的中文标签问题,并通过 Go 脚本实现自动化的标签合并与 URL 跳转。
项目地址:https://github.com/shuijingwan/tag-merge
问题背景
在完成前几篇博客的操作后,我们发现 English 语言下仍然存在一些中文标签未处理:

截图 1:执行命令 php fix-en-chinese-tags.php 的输出,失败 10 个
这些失败的原因主要是 别名已被其他项目使用,例如:
❌ 修改失败: 此别名「console-command」已被其他项目使用。

截图 6:在后台 English 语言下,基于名称排序,发现还有一些中文标签没有处理到
问题分析

截图 8:失败案例分析
以「控制台命令」为例,实际情况如下:
| 语言 | 标签名称 | 别名 |
|---|---|---|
| 中文(中国) | 控制台命令 | 控制台命令 |
| 中文(中国) | Console/Command | console-command |
| English | 控制台命令 | 控制台命令 |
| English | Console/Command | console-command |
问题根源:
- 中文语言下存在两个不同的标签:「控制台命令」和「Console/Command」
- 当尝试将 English 语言的「控制台命令」改为「console command」时,slug
console-command已被「Console/Command」占用 - 翻译缓存中存在映射:
"控制台命令": "console command"
解决方案
核心思路:将中文语言下的标签名称改为英文,这样翻译后就能匹配到正确的 slug。
操作步骤
Step 1:翻译并修改中文语言下的标签

截图 10:编辑 English 语言下的标签
将 Console/Command console-command 修改为 console command console-command-en

截图 11:编辑中文语言下的标签
将 Console/Command console-command 修改为 console command console-command
注意:后台会自动为英文添加
-en后缀,这是正常的。



截图 2-4:验证标签关联
修改后,中文「鼠标光标」与英文「mouse cursor」的翻译关联关系保持不变。
Step 2:重新生成标签映射

截图12:重新执行命令 go run main.go 后
go run main.go
生成的 output/tag_mapping_result.csv 中会出现新的映射记录:
1206,控制台命令,2723,console command,缓存匹配成功
Step 3:执行标签合并

截图 13:执行合并命令
php merge-tags.php --all
php fix-en-chinese-tags.php
输出结果:
📊 本次共成功合并: 10 组映射 (merge-tags.php)
已处理 0 个(fix-en-chinese-tags.php)
失败 0 个(fix-en-chinese-tags.php)
Step 4:生成 Nginx 301 规则
截图 14:查看生成的规则

cd cmd/nginx-redirect/
go run main.go
输出:
📋 已存在 50 条 Nginx 规则
📝 从 merge_log.json 生成 20 条新规则,跳过 0 条重复规则
✅ 成功追加 20 条新规则至 ../../output/nginx_redirect.conf

截图 5:验证 301 跳转
访问 /en/tag/鼠标光标/ 会正确跳转到 /en/tag/mouse-cursor/
Step 5:手动处理剩余标签

截图 15:处理剩余 3 个标签
对于翻译缓存中不存在的标签,需要手动在后台修改。
成果总结
经过这一系列操作,我们实现了:
- ✅ English 语言下所有中文标签翻译为英文
- ✅ 自动合并重复标签
- ✅ 生成 301 跳转规则传递权重
- ✅ 彻底解决 404 错误问题
工具说明
本项目使用的主要工具:
| 工具 | 用途 |
|---|---|
main.go | 翻译碰撞,生成标签映射 CSV |
merge-tags.php | 执行标签合并 |
fix-en-chinese-tags.php | 修复 English 语言下的中文标签 |
nginx-redirect/main.go | 生成 Nginx 301 跳转规则 |
详细使用说明请参考项目 README。
结语
通过本文介绍的方法,我们彻底解决了 WordPress 站点的中英文标签混乱问题。整个过程大部分实现了自动化,大大提高了工作效率。希望这个系列的文章对你有所帮助!