重要警告与准备工作
在直接操作 WordPress 数据库之前,务必进行完整备份。错误的 SQL 命令可能导致数据永久丢失。备份方法可参考:WordPress 数据库备份教程。
操作步骤
第一步:确认目标数据
在执行删除操作前,强烈建议先运行查询语句,确认将要被删除的文章正是你预期的那些。请将以下 SQL 语句中的 128 替换为你想要删除的文章所属的分类术语ID。
SELECT *
FROM `wp_posts`, `wp_term_relationships`
WHERE wp_posts.ID = wp_term_relationships.object_id
AND wp_term_relationships.term_taxonomy_id = 128;
说明:此查询会列出所有关联到指定分类ID(term_taxonomy_id)的文章及其详细信息。请仔细核对结果。
第二步:执行删除操作
确认数据无误后,可以执行删除命令。同样,请将 128 替换为你的目标分类ID。
DELETE `wp_posts`
FROM `wp_posts`, `wp_term_relationships`
WHERE wp_posts.ID = wp_term_relationships.object_id
AND wp_term_relationships.term_taxonomy_id = 128;
命令解析:这条 SQL 语句会从 wp_posts 表中,删除所有与 wp_term_relationships 表中指定 term_taxonomy_id 相关联的文章记录。
注意事项与补充说明
- ID 查找:分类的“术语ID”通常可以在 WordPress 后台的“文章”->“分类目录”页面,将鼠标悬停在分类名称上,浏览器状态栏显示的链接中查看
tag_ID参数。 - 关联数据:此操作仅删除文章本身。文章对应的附件、自定义字段(Post Meta)等关联数据可能需要额外清理。更彻底的做法是使用 WordPress 插件或在删除循环中调用
wp_delete_post()函数。 - 替代方案:对于非技术人员,建议使用“批量操作”插件或在 WordPress 后台手动筛选分类后批量移至回收站,这样操作更安全。
- 表前缀:如果你的 WordPress 数据库使用了自定义表前缀(非
wp_),请将上述 SQL 语句中的表名(如wp_posts)替换为你实际的前缀(如myprefix_posts)。