Nếu bạn có ít bài viết, việc xoá có thể thực hiện đơn giản thông qua giao diện quản trị. Tuy vậy, trong trường hợp bạn có hàng nghìn, thậm chí hàng chục nghìn mục và muốn xoá, hãy thử câu lệnh MySQL sau.
Giả sử, post type của mình có slug là codetot_news.
Lưu ý thay prefix SQL wp_ nếu bạn đang sử dụng table prefix khác.
Lần lượt chạy lệnh sau,
DELETE FROM wp_posts WHERE post_type='codetot_news';
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)
Tiếp đến, nếu bạn có taxonomy có liên quan tới post type này, ta cần reset bộ đếm của mỗi term.
UPDATE wp_term_taxonomy tt
SET count =
(SELECT count(p.ID) FROM wp_term_relationships tr
LEFT JOIN wp_posts p
ON (p.ID = tr.object_id AND p.post_type = 'codetot_news' AND p.post_status = 'publish')
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);
Hãy thử làm xem sao nhé.
Giám đốc tại Công ty CP CODE TỐT. Quản lý ngôn ngữ bản địa tiếng Việt tại WordPress. Là tác giả chính tại codetot.net, Khôi muốn ghi lại một sốvấn đề kỹ thuật trong quá trình phát triển các dự án website với khách hàng.