Hướng dẫn xóa hàng loạt bài viết, danh mục bài viết (category post) trong wordpress bằng MySQL

Ngày đăng: 19/02/2023 trong bởi Nguyễn Huy Tập

Bài viết này hướng dẫn cách xóa hàng loạt bài viết trong một chuyên mục cố định, trong trường hợp số bài viết cực lớn đến mức không thể xóa bằng tay.

Xóa toàn bộ bài viết trong category theo thời gian đăng, theo post type, theo danh mục

Trong một số trường hợp website của bạn bị spam bài viết tại 1 thời điểm nhất định, bạn có thể dùng lệnh xóa toàn bộ bài viết đó.

Đầu tiên, đăng nhập MySQL bạn dùng lệnh: mysql -u root -p. Dùng lệnh USE tên_csdl; để chọn cơ sở dữ liệu cần thao tác.

Hướng dẫn xóa hàng loại danh mục bài viết (category post) trong wordpress bằng MySQL
Hướng dẫn xóa hàng loại danh mục bài viết (category post) trong wordpress bằng MySQL

Paste đoạn code sau và bấm thực hiện

delete a,b,c,d
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN wp_terms e ON ( e.term_id = d.term_id )
WHERE e.term_id =378 AND DATEDIFF(NOW(), post_date) > 10
AND a.post_type='post'

Bạn lưu ý:

  • Thay thế wp_ bằng Table Prefix của website bạn. thay 378 bằng id danh mục bạn muốn xóa
  • Nếu muốn xóa toàn bộ bài viết bạn xóa dòng e.term_id =378 AND 
  • Nếu muốn xóa toàn bộ bài viết đã đăng trước 10 ngày thì bạn thay 10 bằng số ngày bạn muốn xóa
  • Bạn có thể thay post type mà bạn muốn xóa, ví dụ trên là AND a.post_type=’post‘, nếu bạn muốn xóa sản phẩm thì thay post thành product

Xóa nhanh toàn bộ danh mục bài viết (category)

Trường hợp website của bạn bị spam, số lượng danh mục quá lớn bạn không thể xóa thủ công, bạn có thể dùng lênh sql và nhập lệnh sau:

delete from `wp_terms` where `term_id` in ( SELECT `term_id`
FROM `wp_term_taxonomy`
WHERE `taxonomy` = 'category' ) and `term_id` not like 1

Bạn lưu ý thay thế wp_ bằng Table Prefix trên website của bạn

Chúc các bạn thành công!