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

Advanced Custom Fields (ACF) — один из самых популярных плагинов для добавления и управления пользовательскими полями в WordPress. С ростом сайта и количеством контента неиспользуемые или устаревшие поля ACF могут накапливаться в базе данных, что замедляет работу сайта и усложняет администрирование. В этой статье мы подробно разберём, как безопасно найти и удалить неиспользуемые поля ACF из базы данных WordPress, а также оптимизировать структуру данных.

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

С течением времени в базе данных накапливаются записи метаданных с пользовательскими полями, которые уже не используются в шаблонах и не связаны с активными полями ACF. Они занимают место, замедляют запросы и создают путаницу при работе с контентом.

Удаление таких данных помогает:

  • Сократить размер базы данных и ускорить её запросы.
  • Упростить управление пользовательскими полями и шаблонами.
  • Избежать ошибок и конфликтов из-за устаревших данных.

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

ACF хранит данные полей в таблице wp_postmeta (или с вашим префиксом). Ключи метаданных обычно совпадают с именами полей ACF. Для начала нужно получить список всех ключей полей, которые реально используются в активных группах полей ACF.

Получение списка активных полей ACF

Вы можете получить массив всех полей из групп через функцию get_field_objects() или обратиться к опциям:

function clearfy_get_active_acf_field_keys() {
    $field_groups = acf_get_field_groups();
    $active_keys = [];

    foreach ($field_groups as $group) {
        $fields = acf_get_fields($group['key']);
        if ($fields) {
            foreach ($fields as $field) {
                $active_keys[] = $field['name'];
            }
        }
    }
    return array_unique($active_keys);
}

Этот код собирает все имена активных полей ACF на сайте.

Поиск ключей метаданных, не совпадающих с активными полями

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

Удаление неиспользуемых полей ACF из базы данных

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

Пример функции для удаления данных неиспользуемых полей

function clearfy_delete_unused_acf_fields() {
    global $wpdb;

    // Получаем все активные ключи
    $active_keys = clearfy_get_active_acf_field_keys();

    // Получаем все уникальные ключи, начинающиеся с префикса ACF (обычно нет, но проверим все ключи)
    $all_keys = $wpdb->get_col("SELECT DISTINCT meta_key FROM {$wpdb->postmeta} WHERE meta_key NOT LIKE '\_%'");

    // Определяем неиспользуемые ключи
    $unused_keys = array_diff($all_keys, $active_keys);

    if (empty($unused_keys)) {
        return 'Нет неиспользуемых полей для удаления.';
    }

    // Формируем безопасный список ключей для SQL
    $placeholders = implode(',', array_fill(0, count($unused_keys), '%s'));

    // Удаляем метаданные с неиспользуемыми ключами
    $result = $wpdb->query($wpdb->prepare(
        "DELETE FROM {$wpdb->postmeta} WHERE meta_key IN ($placeholders)",
        ...$unused_keys
    ));

    return "Удалено записей метаданных: " . intval($result);
}

Данная функция удалит все записи в таблице wp_postmeta, ключи которых не используются в активных полях ACF.

Оптимизация и автоматизация процесса

Удаление вручную подходит для разовых чисток, но на больших сайтах стоит автоматизировать процесс, например, через WP-CLI или CRON задачи.

Пример WP-CLI команды для очистки неиспользуемых полей ACF

if (defined('WP_CLI') && WP_CLI) {
    WP_CLI::add_command('clearfy acf-cleanup', function() {
        $result = clearfy_delete_unused_acf_fields();
        WP_CLI::success($result);
    });
}

Команду wp clearfy acf-cleanup можно запускать в терминале для регулярной очистки.

Полезные плагины для работы с ACF и оптимизацией

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

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

Резюме и рекомендации

Удаление неиспользуемых полей ACF — важная часть оптимизации WordPress-сайта, которая помогает сократить размер базы данных и повысить производительность. Используйте функции и подходы из статьи, всегда делайте резервные копии перед изменениями и по возможности автоматизируйте процесс с помощью WP-CLI или плагинов.

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

⭐⭐⭐⭐⭐
Как удалить кэш WooCommerce и успешно решить проблемы с отображением
15.02.2026
Как удалить автосохранения и ревизии в WordPress для оптимизации базы данных
09.02.2026
Как удалить всплывающие окна в WordPress надежно и быстро
01.01.2026
Как отключить PHP error notices в WordPress: практические методы и примеры
09.03.2026
Как отключить Emoji в WordPress для ускорения сайта
06.12.2025
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙