워드프레스에서 글 개수가 많지 않으면 관리자 페이지 내에서 쉽게 모든 글을 삭제할 수 있지만, 글 개수가 몇 천 개가 되는 경우 알림판에서 삭제하려면 상당한 시간이 걸립니다. 화면 옵션에서 한 페이지에 표시할 항목 개수를 최대 999개까지 설정할 수 있지만, 항목 개수를 높이면 관리자 페이지에서 작업할 때 시간이 많이 걸리거나 에러가 발생할 수 있습니다. 글 개수가 많을 경우 phpMyAdmin 등 MySQL 클라이언트에서 삭제하면 빠르고 효과적으로 삭제할 수 있습니다.
워드프레스: 특정 카테고리의 모든 글 삭제 및 카테고리 글 개수 동기화
많은 글이나 많은 댓글을 삭제하는 경우 화면 옵션에서 페이지당 항목 수를 최대 999개로 조정하여 삭제를 시도할 수 있습니다.
하지만 경험상 이 개수를 높이면 해당 페이지를 로드할 때 상당한 시간이 걸리고 삭제 등의 작업을 할 때에는 에러가 발생할 수도 있습니다. 처음에는 200개 정도로 높여보고 시스템이 벅벅 대지 않으면 숫자를 300개, 500개 등으로 점진적으로 높여볼 수 있습니다.
일전에 휴지통에 있는 10만 개가 넘는 글을 삭제하는 작업을 맡은 적이 있습니다.
글 개수가 너무 많아서 휴지통에서 휴지통 비우기를 시도하면 에러가 발생했습니다. Bulk Delete 같은 플러그인을 사용하여 대량 글 삭제가 가능합니다. 하지만 삭제할 글이 너무 많으면 이 플러그인을 사용할 경우 오류가 발생할 수도 있습니다.
최근에는 특정 카테고리의 모든 글을 삭제하는 작업을 맡은 적이 있습니다. 카테고리 내의 글 개수가 너무 많아서 마찬가지로 알림판에서 삭제하는 것이 쉽지 않았습니다.
이런 경우 DB 관리자에 접속하여 다음과 같은 쿼리를 실행하어 쉽게 특정 카테고리의 모든 글을 삭제할 수 있습니다.
[경고*작업을 진행하기 전에 반드시 백업을 실시하시기 바랍니다. DB 작업은 되돌릴 수 없으며, 실행 후에는 백업본이 없는 경우 복구가 불가능하게 됩니다.*]
DELETE FROM wp_7_posts WHERE ID IN (
SELECT object_id FROM wp_7_term_relationships WHERE term_taxonomy_id = 2
);
DELETE FROM wp_7_term_relationships WHERE object_id NOT IN (
SELECT ID FROM wp_7_posts
);
DELETE FROM wp_7_postmeta WHERE post_id NOT IN (
SELECT ID FROM wp_7_posts
);
DB 테이블 프리픽스가 [**wp_7_**]으로 되어 있는데요. 실제 DB 테이블 프리픽스로 변경하시기 바랍니다(예: [**wp_**]). [**wp_7_**]인 이유는 멀티사이트 내의 사이트에서 글을 삭제하는 작업이었기 때문입니다.
또한, 카테고리 ID도 확인하여 수정하세요.
위와 같이 하면 특정 카테고리 내의 모든 글이 삭제될 것입니다. 하지만 작업 후에 모든 글이 삭제되었지만 카테고리 글 개수가 0으로 바뀌지 않고 기존 숫자가 표시되었습니다. 이런 경우 다음과 같은 쿼리를 실행하여 카테고리 글 개수를 업데이트할 수 있습니다.
UPDATE wp_7_term_taxonomy tt
SET count = (
SELECT COUNT(tr.object_id)
FROM wp_7_term_relationships tr
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
)
WHERE tt.taxonomy = 'category';
phpMyAdmin 등 MySQL 관리자에서 다음과 같이 SQL 명령을 실행할 수 있습니다.
클라우드웨이즈(Cloudways)의 경우 DB에서 작업할 경우 곧바로 반영되지 않고, 서버 캐시, 특히 Object Cache를 삭제해야 DB 작업 내용이 반영됩니다.
거듭 말씀드리지만 디비 작업은 위험하므로 작업 진행 전에 꼭 디비 백업을 하시기 바랍니다. UpdraftPlus와 같은 플러그인을 사용하여 백업하면 편리합니다. 하지만 멀티사이트의 경우 UpdraftPlus 유료 버전을 사용해야 백업이 가능합니다. 멀티사이트이면 phpMyAdmin 등에 접속하여 백업하시기 바랍니다.
참고
https://avada.tistory.com/2897
https://avada.tistory.com/2335
https://avada.tistory.com/3046