Локальная синхронизация JSON сохраняет определения ваших групп полей в виде файлов JSON внутри папки вашей темы. Эта функция существует в первую очередь для рабочих процессов разработки, где разработчик использует систему контроля версий (например, Git) для управления изменениями кода и развертывания их в разных средах (локальный компьютер, сервер предварительного просмотра, сервер производства). Для большинства менеджеров контента эта функция работает в фоновом режиме и не требует никаких действий, кроме как время от времени нажимать кнопку «Синхронизировать».
Не путайте это с папкой локального JSON ACF. Field Forge по умолчанию записывает свои собственные файлы в fieldforge-json/. Во время миграции из ACF Field Forge также может читать файлы acf-json/group_*.json ACF в качестве источника, когда записи групп полей ACF в базе данных отсутствуют.
В этом разделе объясняется, что делает синхронизация JSON, почему она существует, когда вы можете с ней столкнуться и что делать, когда вы видите уведомления о синхронизации в админке.
Почему существует локальная синхронизация JSON
Когда разработчик создает сайт, он обычно создает группы полей на своем локальном компьютере. Без синхронизации JSON определения групп полей хранятся только в базе данных. Чтобы перенести их на сервер предварительного просмотра или на сервер производства, разработчику придется вручную экспортировать и импортировать файлы JSON каждый раз, когда он вносит изменения. Синхронизация JSON автоматизирует этот процесс, записывая определения групп полей в файлы внутри папки темы. Эти файлы перемещаются вместе с кодом темы через систему контроля версий, и когда код развертывается, Field Forge обнаруживает новые или измененные файлы и применяет их.
Этот рабочий процесс невидим для менеджеров контента — поля просто появляются или обновляются по мере того, как разработчик вносит изменения.
Как это работает за кулисами
- Когда синхронизация JSON включена, каждый раз, когда группа полей сохраняется в админке, Field Forge записывает файл JSON в
fieldforge-json/внутри активной темы (имя папки по умолчанию; переопределяется через фильтрfieldforge/local_json/save_path) - Файл JSON содержит полное определение группы полей: поля, типы, настройки, макет, правила расположения, условную логику и порядок
- Разработчик включает эти файлы в свой репозиторий системы контроля версий (Git, SVN и т.д.)
- Когда обновленные файлы развертываются на сервере, Field Forge обнаруживает, что файлы JSON новее, чем версии в базе данных
- В админке появляется уведомление о синхронизации, предлагающее вам применить обновления
Что нужно знать менеджерам контента
Большую часть времени синхронизация JSON работает незаметно. Вот две ситуации, когда вам может понадобиться предпринять действия:
Ситуация 1: Вы видите уведомление «группы полей не синхронизированы»- Перейдите в Field Forge > Группы полей
- Вы увидите баннер или значок, указывающий на то, что одна или несколько групп полей не синхронизированы с их файлами JSON
- Нажмите кнопку Синхронизировать
- Field Forge обновляет группы полей в базе данных, чтобы они соответствовали файлам JSON
- Уведомление исчезает
- Это означает, что ваш разработчик внес изменения — обновленные поля теперь отражают его работу
Если вы редактируете группу полей в админке, пока синхронизация JSON включена, ваши изменения сохраняются в базе данных И записываются в файл JSON в теме. Если разработчик позже загрузит свою версию этого файла JSON, может возникнуть конфликт.
| Сценарий | Что происходит |
|---|---|
| Только разработчик изменил файл JSON | Синхронизация применяет их изменения чисто, когда вы нажимаете Синхронизировать |
| Только вы изменили группу полей в админке | Ваши изменения активны. Файл JSON был обновлен с вашими изменениями. Если разработчик загрузит ваш обновленный файл JSON, он увидит ваши изменения. |
| И вы, и разработчик изменили одну и ту же группу полей | Field Forge обнаруживает конфликт и показывает предупреждение. Вы выбираете, какую версию оставить. |
Включение или отключение синхронизации JSON
- Перейдите в Field Forge > Настройки
- Найдите переключатель Локальная синхронизация JSON
- Включите или отключите его
- Путь сохранения —
fieldforge-json/внутри папки активной темы. Для этого нет управления в интерфейсе — ваш разработчик может переопределить путь через фильтрfieldforge/local_json/save_path, если ему нужно другое местоположение. - Сохраните настройки
Ключевые детали о файлах JSON
- Файлы JSON — это простой текст, содержащий только структуру группы полей — они не содержат никакого контента постов, данных редактора, информации о пользователях или медиафайлов
- Сохранение группы полей с включенной синхронизацией немедленно записывает соответствующий файл JSON
- Удаление группы полей также удаляет ее файл JSON
- Путь к папке синхронизации может быть настроен вашим разработчиком, если он использует нестандартную структуру папок
- Синхронизация JSON работает с любой системой контроля версий (Git, SVN, Mercurial и т.д.)
- Если вы смените тему, файлы JSON в папке старой темы больше не будут обнаруживаться. Вашему разработчику может понадобиться переместить или скопировать их.
Советы по коммуникации для команд, использующих синхронизацию JSON
Если вы тесно работаете с разработчиком, который использует синхронизацию JSON:
- Общайтесь перед редактированием групп полей в админке. Если разработчик также работает над изменениями групп полей в своем коде, одновременные редактирования создают конфликты.
- Сообщите разработчику, когда вы добавляете или удаляете поля. Ему может понадобиться обновить шаблоны темы, чтобы отобразить новые поля или удалить ссылки на удаленные.
- Когда вы видите уведомление о синхронизации, нажмите Синхронизировать незамедлительно. Задержка с синхронизацией означает, что ваша база данных содержит устаревшие определения полей, в то время как файлы JSON имеют последнюю версию. Это может вызвать путаницу, если вы редактируете группу полей в это время.
> Полезно знать: Если вы менеджер контента, который никогда не работает с файлами темы или системой контроля версий, вы можете полностью игнорировать эту функцию. Она работает в фоновом режиме, если ваш разработчик включил ее. Единственное время, когда вам нужно что-то сделать, это когда появляется уведомление о синхронизации — просто нажмите кнопку Синхронизировать, и вы закончите.
> Совет: Если вы случайно внесли изменения в группу полей и хотите версию разработчика, используйте функцию синхронизации, чтобы перезаписать ваши изменения версией файла JSON. Напротив, если вы хотите, чтобы ваши изменения остались, сохраните группу полей в админке — файл JSON обновится, чтобы соответствовать вашей версии.