有时候我们产品数量太多需要清理的时候,如果通过后台一个一个删除会很慢,因此可以直接通过数据库进行清理,注意:下面的命令会 彻底清空 WooCommerce 所有产品及相关数据(包括产品分类关系、属性、库存、元数据等),不可恢复!
执行前请 完整备份数据库,并确认表前缀(默认是 wp_
,多站点或自定义可能不同:
-- 删除所有产品(posts 表里 post_type=product 和 product_variation)
DELETE FROM wp_posts WHERE post_type IN ('product','product_variation');
-- 删除与产品相关的 postmeta
DELETE pm FROM wp_postmeta pm
JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.post_type IN ('product','product_variation');
-- 删除 term relationships(分类、标签、属性关系)
DELETE tr FROM wp_term_relationships tr
JOIN wp_posts p ON tr.object_id = p.ID
WHERE p.post_type IN ('product','product_variation');
-- (可选)清理孤立的 term_taxonomy 计数
UPDATE wp_term_taxonomy tt
SET tt.count = (
SELECT COUNT(*) FROM wp_term_relationships tr WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);
-- 删除 WooCommerce 产品属性 (product attributes taxonomy terms)
DELETE t, tt, tm
FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_id = t.term_id
LEFT JOIN wp_termmeta tm ON tm.term_id = t.term_id
WHERE tt.taxonomy LIKE 'pa_%';