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

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

admin4个月前 (04-08)AI技术109

基于真实项目经验的前端实战分享

安全清理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 生态系统的无...

Unity 机器学习 基础

ML-Agents 资产导入 Unity 场景创建 Unity 代码部分 Anaconda 执行 rollerball_config.yaml 机器学习逻辑处理...

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

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

常见的神经网络模型

前馈神经⽹络中包含激活函数( 、tanh函数等)、损失函数(均⽅差损失函数、 等)、优化算法(BP算法)等。常⽤的模型结构有:感知机、 、全连接神经⽹络、卷积神经⽹络、...

前端开发高级应用:Minimax视频生成提示词中文还是英文好实战案例|Duuu笔记

优先使用英文提示词,因其更契合模型训练语料并能稳定触发视觉特征;其次可采用中英混合策略兼顾文化专有名词;纯中文适用于强本土化场景;最终需通过多指标对比验证最优语言形式。 ☞☞☞AI 智能聊天, 问答...

深入理解前端开发:零基础教程:怎么用 Gemini 自动生成短视频脚本与拍摄大纲完全指南|Duuu笔记

需明确输入指令、理解输出逻辑并合理拆解内容:一、构建含角色/任务/格式等要素的提示词;二、追加分镜与时间轴约束优化专业性;三、转译为带道具编号与颜色标记的执行清单;四、用Gemini校验注意力断点并迭...

发表评论

访客

看不清,换一张

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