当前位置:首页 > AI技术 > 正文内容

如何清理WordPress的未用标签和分类 wp terms关联删除清理实战案例|Duuu笔记

admin2周前 (03-31)AI技术23

安全清理WordPress未用标签/分类须严格按三步执行:先删wp_term_relationships中无对应文章的记录,再删wp_term_taxonomy中count=0且taxonomy为category或post_tag的记录,最后删wp_terms中无对应term_id的记录。

WordPress未用标签/分类为什么删不干净

直接执行

delete from wp_terms

会破坏数据库一致性,因为

wp_terms

表本身不存“是否被使用”的状态,它只靠

wp_term_taxonomy

wp_term_relationships

关联维系。你删了

wp_terms

里的某条记录,但对应

wp_term_taxonomy

还在,甚至可能指向一个不存在的

term_id

,后续后台编辑分类、调用

get_terms()

都可能报错或返回空。

安全清理的三步关联删除顺序

必须按依赖关系逆向清理:先清关系,再清分类元数据,最后清术语本身。顺序错一步,就会留下孤儿记录或触发外键约束(如果启用了 InnoDB 外键)。

第一步:删掉所有没被任何文章/页面/自定义类型引用的

term_taxonomy_id

关联 —— 即清空

wp_term_relationships

中无人认领的项

第二步:删掉

wp_term_taxonomy

count = 0

taxonomy IN ('category', 'post_tag')

的记录(注意:不要删

nav_menu

post_format

类型,它们逻辑不同)

第三步:删掉

wp_terms

中那些

term_id

不再出现在任何

wp_term_taxonomy.term_id

里的行(即已无分类/标签元数据挂载的术语)

SQL语句怎么写才不翻车

别手写 DELETE 嵌套子查询去一次清完——MySQL 5.7+ 对同一张表的子查询 DELETE 有限制,容易报错

You can't specify target table for update in FROM clause

。分三步执行更稳:

DELETE tr FROM wp_term_relationships tr

LEFT JOIN wp_posts p ON tr.object_id = p.ID

WHERE p.ID IS NULL;

DELETE tt FROM wp_term_taxonomy tt

WHERE tt.count = 0

AND tt.taxonomy IN ('category', 'post_tag');

DELETE t FROM wp_terms t

WHERE NOT EXISTS (

SELECT 1 FROM wp_term_taxonomy tt WHERE tt.term_id = t.term_id

);

执行前务必备份数据库;

wp_term_relationships

表很大时,第一条语句可能锁表较久,建议在低峰期操作。

插件和 WP-CLI 方案的隐藏风险

很多插件(比如 “Term Management Tools”)或 WP-CLI 命令(如

wp term list --format=ids --count=0

+

wp term delete

)看似方便,但它们默认只删

wp_term_taxonomy

wp_terms

,跳过

wp_term_relationships

清理。结果就是:前台查不到标签,后台却仍显示“× 个文章已关联”,点进去却 404 或空白——因为关系记录还在,只是对应的文章已被删或状态异常。

ima.copilot

腾讯大混元模型推出的智能工作台产品,提供知识库管理、AI问答、智能写作等功能

下载

真正干净的清理,绕不开直连数据库跑那三段 SQL。WP-CLI 的

wp term delete

只适合删单个明确无用的标签,批量清理时它不会自动判断是否“真没人用”。

最常被忽略的是:自定义文章类型、产品(WooCommerce)、问答(bbPress)等扩展可能注册了自己的 taxonomy,它们的

count

字段未必实时更新,得先运行

wp term recount

或对应插件的修复工具,否则

count = 0

不代表真没人用。

相关文章

【深度学习】Java DL4J 2024年度技术总结

一、Java DL4J深度学习概述 1.1 DL4J框架简介 1.2 与其他深度学习框架的比较 1.3 DL4J 的优势 1.3.1 与 Java 生态系统的无...

【大模型应用开发

二、大模型的泛化与微调 模型的泛化能力:是指一个模型在面对新的、未见过的数据时,能够正确理解和预测这些数据的能力。在机器学习和人工智能领域,模型的泛化能力是评估模型性能的重要指标之一。...

【DL】2023年你应该知道的 10 大深度学习算法

3. 循环神经网络 (RNN) 4. 生成对抗网络 (GAN) 5. 径向基函数网络 (RBFN) 6. 多层感知器 (MLP) 7. 自组织图 (SOM)...

神经网络分类总结

从网络性能角度可分为连续型与离散型网络、确定性与随机性网络。 从网络结构角度可为前向网络与反馈网络。 从学习方式角度可分为有导师学习网络和无导师学习网络。 按连续突触性...

推荐10个AI人工智能技术网站

除了研究和开发人工智能技术,OpenAI还积极参与人工智能伦理和安全的研究和探讨。 认为,人工智能技术的发展必须遵循伦理和法律的规范,以确保人工智能的应用不会对人类带来负面影响。...

一文讲清神经网络、BP神经网络、深度学习的关系

人工神经网络中的顶级代表。往往说《神经网络》就是指《BP神经网络》。 大家研究着各种神经网络,研究得不亦乐乎, 来了两个家伙Romelhart 和Mcclelland,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。