Khi migrate site hoặc clean dữ liệu test, thư viện WordPress có thể có vài nghìn ảnh. UI Media Library mặc định pagination 20-40 ảnh/trang — xoá thủ công sẽ mất hàng giờ.

Cách 1: Bulk delete qua URL trick

Vào Media Library, đổi URL từ upload.php?mode=grid sang upload.php?mode=list, qua Screen Options → set Number of items per page = 999. Tick all → bulk delete.

Cách 2: SQL trực tiếp (cẩn thận!)

Vào phpMyAdmin / Adminer:

DELETE FROM wp_posts WHERE post_type = 'attachment';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT id FROM wp_posts);
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT id FROM wp_posts);

Lưu ý: SQL chỉ xoá record DB, file vật lý vẫn nằm ở /wp-content/uploads/. Cần SSH/FTP xoá folder uploads riêng.

Cách 3: WP-CLI (cleanest)

# List
wp post list --post_type=attachment --format=ids

# Delete all
wp post delete $(wp post list --post_type=attachment --format=ids) --force

WP-CLI xoá cả DB record và file vật lý cùng lúc — không cần SSH thêm.

Backup trước khi chạy

Bất kể cách nào, BACKUP database + folder uploads trước. Nhỡ tay xoá nhầm là không phục hồi được.