ворд-пресс.рф
Разработка

ACF Local JSON: хранение групп полей в Git и синхронизация

Настройка хранения схем ACF в файлах JSON вместо ручного переноса между тестовым и рабочим WordPress.

Local JSON позволяет хранить конфигурацию групп полей ACF в файлах, а не переносить каждую группу вручную между тестовым и рабочим сайтом. Это удобно для Git и командной разработки, но требует дисциплины синхронизации.

Базовая настройка

  1. Создайте в активной теме или дочерней теме папку acf-json.
  2. Убедитесь, что WordPress может записывать в неё файлы в вашем окружении.
  3. Сохраните группу полей в админке ACF.
  4. Проверьте появление JSON и добавьте исходный файл схемы в репозиторий.
  5. После выкладки откройте ACF в целевом окружении и проверьте, требуется ли синхронизация.

При смене темы файлы из прежней темы могут перестать загружаться. Для проектов, где модель данных не должна зависеть от оформления, продумайте загрузку JSON из собственного плагина.

Своя папка в плагине

Пример добавляет путь к существующим точкам загрузки, но не заменяет их. Размещайте код в собственном плагине после инициализации WordPress.

<?php
add_filter( 'acf/settings/load_json', function ( $paths ) {
    $dir = plugin_dir_path( __FILE__ ) . 'acf-json';
    if ( is_dir( $dir ) ) {
        $paths[] = $dir;
    }
    return $paths;
} );

Для сохранения JSON в эту папку потребуется отдельная настройка acf/settings/save_json. Не добавляйте фильтр сохранения, если каталог недоступен для записи или схема управляется централизованно через CI.

Как организовать процесс в Git

  • Изменяйте схемы в одном основном окружении, а не параллельно на production и staging.
  • Просматривайте diff JSON перед merge, особенно изменения ключей полей и правил расположения.
  • После деплоя синхронизируйте группы на целевом сайте в предусмотренном ACF интерфейсе.
  • Не коммитьте секреты, персональные данные и значения полей вместе с их схемой.
  • Поддерживайте резервную копию БД перед массовыми изменениями модели.

Типичная ошибка

Перенос JSON переносит определения полей, но не значения, которые пользователи уже ввели в БД. Для переноса данных нужен отдельный процесс миграции.

Проверка

После выкладки откройте существующую запись, убедитесь, что поля отображаются и их значения не потерялись. Затем сохраните и проверьте вывод на сайте. Не перезаписывайте рабочие JSON-файлы вслепую.

Источник: https://www.advancedcustomfields.com/resources/local-json/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.