Локальна синхронізація 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 оновиться, щоб відповідати вашій версії.