Этот рецепт предоставляет подробный, осторожный процесс миграции с контрольными списками и шагами проверки. Следуйте ему, чтобы обеспечить плавный переход.
Чек-лист перед миграцией
Прежде чем начать, выполните каждый пункт в этом списке:
| Шаг | Действие | Выполнено? |
|---|---|---|
| 1 | Создайте полный резервный копию сайта (файлы + база данных) | |
| 2 | Настройте тестовый/стадийный сайт и сначала выполните миграцию там | |
| 3 | Задокументируйте ваши текущие группы полей ACF (скриншот или экспорт) | |
| 4 | Обратите внимание на любые группы полей, зарегистрированные в PHP, в вашем теме functions.php | |
| 5 | Проверьте наличие плагинов, которые зависят от ACF (некоторые плагины включают свои собственные поля ACF) | |
| 6 | Установите Field Forge на вашем тестовом сайте (пока не деактивируйте ACF) | |
| 7 | Если вы мигрируете значения полей, активируйте лицензию Field Forge PRO | |
| 8 | Убедитесь, что ваш лимит памяти PHP составляет не менее 256M, а max_execution_time — не менее 300 |
Шаг 1: Обнаружение данных ACF
- Перейдите в Field Forge > Миграция
- Нажмите Обнаружить данные ACF
- Просмотрите результаты сканирования:
— Количество записей с данными ACF
— Общее количество значений полей для миграции
- Сделайте скриншот или запишите эти числа — вы будете использовать их для проверки полноты миграции позже
Шаг 2: Импорт групп полей
- Нажмите Импортировать группы полей
- Дождитесь завершения импорта
- Проверьте результаты:
— Откройте 2-3 группы полей и проверьте, что все поля, настройки и правила местоположения соответствуют вашей конфигурации ACF
— Обратите особое внимание на сложные поля: Повторители, Гибкий контент и Группы должны иметь все свои под-поля в целостности
- Если что-то выглядит неправильно, вы можете удалить импортированные группы и повторно запустить импорт — он считывает данные из ACF, которые не изменились
Шаг 3: Миграция значений полей (PRO)
- Вернитесь в Field Forge > Миграция, нажмите Импортировать группы полей с значениями
- Появится индикатор прогресса, показывающий обработку пакетов
- Для крупных сайтов миграция выполняется в фоновом режиме — вы можете безопасно закрыть вкладку браузера
- Дождитесь уведомления о завершении (проверьте, если закрыли вкладку)
- Обратите внимание на окончательное количество: количество обработанных записей и мигрированных значений
Шаг 4: Проверка после миграции
Выполните эти проверки перед деактивацией ACF:
| Проверка | Как проверить | Ожидаемый результат |
|---|---|---|
| Группы полей существуют | Field Forge > Группы полей | То же количество групп, что и в ACF |
| Поля отображаются в записях | Отредактируйте запись, которая имела данные ACF | Метабокс с полями появляется под редактором |
| Данные заполнены | Проверьте поля на нескольких записях | Значения совпадают с тем, что было введено в ACF |
| Данные повторителей целы | Откройте запись с повторителем | Все строки присутствуют с правильными данными |
| Гибкий контент цел | Откройте запись с гибким контентом | Все макеты присутствуют в правильном порядке |
| Данные страницы настроек | Перейдите на страницу настроек | Все глобальные значения присутствуют |
| Отображение на фронтенде | Просмотрите сайт в браузере | Страницы выглядят идентично до миграции |
get_field() работает | Тестируйте страницы, которые используют данные полей | Нет ошибок, отображаются правильные значения |
have_rows() работает | Тестируйте страницы с повторителями | Циклы работают правильно |
Шаг 5: Деактивировать ACF
- После успешного прохождения всех проверок перейдите в Плагины
- Деактивируйте Advanced Custom Fields PRO
- Обновите фронтенд и проверьте несколько страниц — все должно продолжать работать, потому что Field Forge предоставляет все те же функции
- Проверьте административную панель — все группы полей должны оставаться видимыми и функциональными
Шаг 6: Проверьте, что все работает без ACF
- Протестируйте каждый шаблон страницы, который использует пользовательские поля
- Протестируйте каждую форму, повторитель и секцию гибкого контента
- Проверьте страницы настроек и глобальные настройки сайта
- Протестируйте на нескольких устройствах (настольный компьютер, планшет, мобильный телефон)
- Попросите другого члена команды проверить ключевые страницы
Общие проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
| Фатальная ошибка после деактивации ACF | Плагин зависит от ACF напрямую (не через get_field()) | Реактивируйте ACF, определите зависимый плагин и свяжитесь с его автором для совместимости с Field Forge |
| Некоторые поля пустые | Значения полей не были мигрированы (бесплатная версия) | Обновите до PRO и выполните миграцию значений |
| Строки повторителей в неправильном порядке | Редкий крайний случай с глубоко вложенными данными | Повторно выполните миграцию; если проблема сохраняется, свяжитесь с поддержкой |
| Вложенные строки повторителей внутри гибкого контента дублируются после перетаскивания и сохранения | Более старые версии переиндексировали родительскую строку гибкого контента при сортировке вложенного повторителя, затем читали вложенные записи из неправильной родительской записи | Обновите Field Forge, выполните жесткое обновление редактора, один раз измените порядок вложенных строк и сохраните. Текущие версии переиндексируют только активный повторитель и читают вложенные записи по их прямому родительскому ID. |
| Значения вложенных групп / повторителей / гибкого контента отсутствуют | Старые базы данных ACF могут содержать дублирующиеся записи групп полей с одинаковым ключом/названием; пустой дубликат может скрыть заполненную группу во время импорта | Обновите Field Forge и повторно выполните миграцию. Текущие версии удаляют дубликаты групп ACF по ключу/названию и сохраняют версию с наибольшим количеством прямых дочерних полей перед импортом значений. |
| Условная логика не скрывает поля | Правила верхнего уровня: убедитесь, что «Условная логика» включена в настройках поля, триггерное поле правила имеет значение, а пара оператор/значение соответствует вашим данным. Вложенные правила (внутри повторителей / групп / гибких макетов) хранятся, но еще не оценены. | Снова откройте редактор группы полей, разверните затронутое поле и проверьте, что правило читает правильное имя поля. Для вложенных случаев переместите правило в верхний уровень поля, которое контролирует видимость родительского составного элемента. |
| Страница опций отсутствует | Страницы опций требуют PRO | Активируйте лицензию PRO, затем повторно выполните миграцию |
| Макет на фронтенде сломан | Тема зависит от специфических хуков ACF | Проверьте, использует ли тема хуки acf/ и переключитесь на эквиваленты fieldforge/ |
| Файлы экспорта JSON с ссылками на ключи ACF | Старые локальные JSON файлы от ACF | Удалите старые acf-json/ файлы в вашей теме и снова сохраните группы полей, чтобы Field Forge сгенерировал новые файлы в fieldforge-json/ (папка синхронизации по умолчанию) |