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

В процессе развития сайта на WordPress иногда накапливаются неиспользуемые типы записей (custom post types), которые создавались для экспериментов, устаревших плагинов или тем. Такие посты занимают место в базе данных, замедляют работу админки и усложняют поддержку сайта. В этой статье мы подробно разберём, как безопасно и эффективно удалить неиспользуемые типы постов, а также их записи, используя примеры кода и готовые плагины.

Что такое типы постов в WordPress и зачем их удалять

Типы постов (post types) — это разновидности содержимого в WordPress. Помимо стандартных «пост» и «страница», можно создавать кастомные типы постов для товаров, отзывов, портфолио и других целей. Если на сайте остались устаревшие или ненужные типы постов, они:

  • Загромождают базу данных лишними таблицами или записями.
  • Могут влиять на производительность и скорость загрузки.
  • Запутывают пользователей и администраторов сайта.
  • Создают потенциальные уязвимости, если связаны с заброшенными плагинами.

Удаление неиспользуемых типов постов — важный шаг для поддержания чистоты и скорости работы WordPress.

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

Для начала нужно понять, какие типы постов есть на сайте и какие из них не используются. Вот несколько способов:

  • Через админку: зайдите в меню «Записи» и другие разделы, проверьте наличие нестандартных типов.
  • С помощью SQL-запроса: выполните в базе данных запрос для просмотра уникальных значений из колонки post_type таблицы wp_posts.
    SELECT DISTINCT post_type FROM wp_posts;
  • Плагины: используйте плагины для диагностики, например, WPCheck с utm-метками https://wpshop.ru/plugins/wpcheck/.

После выявления ненужных типов постов можно приступать к их безопасному удалению.

Удаление записей неиспользуемых типов постов с помощью кода

Важно сначала создать резервную копию базы данных, чтобы избежать потери важных данных. Далее можно использовать следующий пример кода, который удалит все записи с определённым типом поста.

function wpcheck_delete_cpt_posts( $post_type ) {
    if ( ! post_type_exists( $post_type ) ) {
        global $wpdb;
        $table = $wpdb->posts;

        // Удаляем записи указанного типа
        $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE post_type = %s", $post_type ) );

        // Удаляем метаданные постов
        $wpdb->query( $wpdb->prepare( "DELETE pm FROM {$wpdb->postmeta} pm INNER JOIN $table p ON pm.post_id = p.ID WHERE p.post_type = %s", $post_type ) );

        // Удаляем связи с таксономиями
        $wpdb->query( $wpdb->prepare( "DELETE tr FROM {$wpdb->term_relationships} tr INNER JOIN $table p ON tr.object_id = p.ID WHERE p.post_type = %s", $post_type ) );

        error_log( 'wpcheck: Удалены посты типа ' . $post_type );
    } else {
        error_log( 'wpcheck: Тип поста ' . $post_type . ' всё ещё зарегистрирован. Удаление невозможно.' );
    }
}

Вызывайте функцию с нужным типом поста, например:

wpcheck_delete_cpt_posts( 'old_custom_type' );

Этот код удалит все записи, связанные с типом old_custom_type, а также их метаданные и связи с таксономиями.

Как удалить регистрацию типа поста (Custom Post Type)

Если тип поста регистрируется плагином или темой, нужно:

  1. Отключить или удалить плагин, который его создаёт.
  2. Если тип поста регистрируется в функции темы, удалить или закомментировать код регистрации.
  3. После этого WordPress перестанет распознавать тип поста, и записи с ним станут «призрачными».

Чтобы убедиться, что тип поста больше не регистрируется, можно использовать код:

if ( post_type_exists( 'old_custom_type' ) ) {
    // Тип поста зарегистрирован
} else {
    // Тип поста не зарегистрирован
}

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

Плагины для удобного удаления типов постов и их записей

Если не хотите работать с кодом, можно использовать плагины:

  • WP Bulk Delete — позволяет массово удалить записи по типу поста, статусу, дате и другим параметрам.
  • Custom Post Type UI — помогает управлять и удалять кастомные типы постов, если они создавались через этот плагин.
  • WPCheck — продвинутый инструмент для мониторинга и диагностики, который может помочь выявить и устранить неиспользуемые типы постов.
    Ссылка на WPCheck

Плагины упрощают работу, но всегда делайте резервные копии перед массовыми удалениями.

Оптимизация базы данных после удаления

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

  • Воспользуйтесь плагином WP-Optimize или Advanced Database Cleaner.
  • Запустите SQL-команду оптимизации:
    OPTIMIZE TABLE wp_posts, wp_postmeta, wp_term_relationships;
  • Проверьте, что все связанные данные удалены, чтобы база была в чистоте.

Регулярная оптимизация позволит поддерживать скорость и стабильность WordPress.

Безопасность и рекомендации

Удаление типов постов — серьёзная операция. Вот советы, чтобы не допустить ошибок:

  • Всегда делайте полный бэкап сайта и базы данных перед удалением.
  • Проверяйте наличие зависимостей — таксономии, метаданные, связи с другими плагинами.
  • Если тип поста создавался плагином, лучше сначала деактивировать плагин, затем удалить записи.
  • Тестируйте изменения на локальной копии или тестовом сайте.
  • Документируйте изменения — какие типы удалены, когда и кем.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как использовать функцию wp_unique_slug для решения проблем с URL в WordPress
16.05.2026
Как почистить базу данных WordPress от старых 301 редиректов
18.03.2026
Как удалить неиспользуемые поля профиля в WordPress: практическое руководство
05.03.2026
Диагностика и решение проблем с не отправляющимися email в WooCommerce
27.05.2026
Как удалить или отключить плагин в WordPress: практические способы и советы
19.11.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше