wpclean.ru wordpress WPClean.ru

Как удалить неиспользуемые виды постов WordPress без плагинов

При оптимизации сайта на WordPress очень часто возникает необходимость удалить неиспользуемые пользовательские типы записей (Custom Post Types, CPT). Такие записи могут занимать место в базе данных, замедлять работу сайта и создавать путаницу в админке. В этой статье мы подробно рассмотрим, как удалить все записи определенного типа и сам тип записи, не прибегая к установке плагинов.

Почему важно удалять неиспользуемые виды постов

Пользовательские типы записей создаются для специфических целей: портфолио, отзывы, товары и т.п. Если проект меняется, а CPT становится неактуален, то оставлять записи бесполезно:

  • Они занимают место в базе данных.
  • Создают нагрузку при запросах.
  • Могут мешать SEO — если доступны в выдаче.
  • Усложняют админ-панель и работу редакторов.

Поэтому важно грамотно от них избавиться без риска повредить сайт.

Удаление записей пользовательского типа через SQL-запрос

Самый быстрый способ — удалить все записи нужного типа напрямую из базы данных. Для этого можно использовать SQL-запросы через phpMyAdmin или консоль MySQL.

Пример запроса для удаления всех записей типа my_custom_type:

DELETE FROM wp_posts WHERE post_type = 'my_custom_type';
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

Объяснения:

  • Первая команда удаляет все записи нужного типа.
  • Вторая удаляет связанные мета-данные, чтобы не оставалось мусора.

Важно: перед выполнением запросов сделайте резервную копию базы данных!

Удаление терминов и связей таксономий для CPT

Если у CPT были свои таксономии, то стоит почистить и их связи:

DELETE tr FROM wp_term_relationships tr
LEFT JOIN wp_posts p ON p.ID = tr.object_id
WHERE p.ID IS NULL;

Этот запрос удалит все связи терминов с удаленными постами.

Удаление записей CPT с помощью PHP-кода

Если вы предпочитаете удалять записи программно, например, чтобы добавить проверку или логирование, то подойдет следующий код. Его можно добавить в файл темы или создать отдельный скрипт, который запускается один раз:

function wpclean_delete_cpt_posts( $post_type ) {
    $args = [
        'post_type'      => $post_type,
        'posts_per_page' => -1,
        'post_status'    => 'any',
        'fields'         => 'ids',
    ];
    $posts = get_posts( $args );
    foreach ( $posts as $post_id ) {
        wp_delete_post( $post_id, true ); // true — удаление без перемещения в корзину
    }
}

// Использование
wpclean_delete_cpt_posts('my_custom_type');

Такой подход удобно применять, если нужно удалить записи с дополнительной логикой.

Как удалить регистрацию CPT из кода

После удаления записей стоит убрать регистрацию CPT из кода сайта (обычно в functions.php или в плагине), чтобы WordPress не продолжал создавать интерфейс для него и не пытался работать с ним.

Пример регистрации CPT:

function wpclean_register_my_cpt() {
    register_post_type( 'my_custom_type', [
        'labels' => [
            'name' => 'Мои записи'
        ],
        'public' => true,
        'has_archive' => true,
    ]);
}
add_action( 'init', 'wpclean_register_my_cpt' );

Чтобы полностью удалить CPT, просто удалите или закомментируйте этот код и очистите кэш сайта.

Рекомендации по безопасности при удалении CPT и записей

Удаление данных напрямую — это всегда риск. Вот несколько советов:

  • Обязательно делайте резервную копию базы данных перед началом.
  • Выполняйте удаление на тестовой копии сайта, если возможно.
  • Удаляйте записи партиями, если их очень много, чтобы избежать таймаутов.
  • Проверяйте, не используется ли CPT где-то в шаблонах или плагинах.

Примеры полезных плагинов для управления CPT и оптимизации

Если в будущем понадобится удобный интерфейс для работы с CPT, можно рассмотреть плагины:

  • Clearfy — оптимизация и очистка базы данных, в том числе работа с CPT.
  • WPRemark — расширенный контроль над комментариями и записями.

Но если хочется полностью контролировать процесс и минимизировать нагрузку, то ручное удаление, описанное выше, — лучший вариант.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее