Як видалити всі записи (пости) у рубриці WordPress
Привіт:) Іноді при розробці WordPress сайту потрібно швидко видалити всі пости з конкретної рубрики (категорії). Розберу декілька способів.
За допомогою плагіну
- Встановіть та активуйте безкоштовне доповнення
WP Bulk Delete
. - Відкрийте адмін-меню
WP Bulk Delete > Delete Posts
та перейдіть до вкладкиBy Taxonomy
. - В опції
Post type of items to delete
вкажітьЗаписи
. - В
Post Taxonomy
оберітьКатегорії
. - Нижче через клік оберіть одну чи декілька рубрик.
- В опції
Post Status
можете обрати статус постів, які необхідно видалити. - Натисніть кнопку
Delete Posts
.
Через базу даних
У цьому вся способі необхідно виконати SQL-запит до бази даних. Рекомендую використовувати зручну графічну утиліту phpMyAdmin
.
Перед початком будь-яких дій раджу зробити повну резервну копію бази даних та всіх файлів сайту, щоб відновити його роботу, якщо щось піде не так.
У вікні програми, на вкладці SQL
, вставте та виконайте по черзі наступні запити:
/* Подивитися, які посади будуть видалені */
SELECT *
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 = ID_рубрики;
В останньому рядку не забудьте замість рядка ID_рубрик
вставити ID рубрики, пости з якої потрібно видалити.
Цей код покаже, які записи буде видалено.
Щоб остаточно видалити, використовуйте наступний запит:
/* Видалити всі пости з конкретної рубрики, включаючи саму рубрику */
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 = ID_рубрики;
У цьому коді також замініть останній рядок.
SQL-запит видаляє всі записи, і навіть саму рубрику.