Локальна синхронізація JSON — Групи полів, дружні до Git | Field Forge - Кастомні поля, створені для швидкості
Завантажити Увійти

Локальна синхронізація JSON — Групи полів, дружні до Git

Проблема, яку це вирішує

Коли ви редагуєте групу полів у адмінці Field Forge, зміни зберігаються в базі даних WordPress. Чудово — поки ви не усвідомите:

  • Ваше локальне середовище розробки має одну версію групи полів
  • Стадія має трохи іншу версію (тому що хтось редагував її там)
  • Продукція має ще одну версію (тому що редактор контенту додав поле безпосередньо)
  • У вас немає історії, хто, що, коли і чому змінив

Без контролю версій групи полів виходять з синхронізації. Міграції з розробки до продукції стають схильними до помилок. Повернення до попередніх версій неможливе.

Локальна синхронізація JSON вирішує всі ці проблеми, роблячи групи полів файловими поряд з базою даних. База даних є джерелом істини для живого редагування; JSON файли є джерелом істини для контролю версій та розгортання.


Як це працює

Крок 1: Увімкніть локальну синхронізацію JSON

У Field Forge → Налаштування → Локальний JSON, увімкніть цю функцію. Вкажіть каталог у вашій активній темі, куди повинні зберігатися JSON файли (за замовчуванням: wp-content/themes/your-theme/fieldforge-json/).

Крок 2: Групи полів автоматично зберігаються як JSON

Щоразу, коли ви зберігаєте групу полів в адмінці Field Forge, плагін також записує JSON файл у вказаний каталог. Ім’я файлу — group_{id}_{slug}.json — наприклад, group_1_hero-section.json.

Вміст файлу:

json { "key": "hero-section", "title": "Герой Секція", "fields": [ { "key": "field_hero_title", "label": "Назва Героя", "name": "hero_title", "type": "text", "required": true, "max_length": 120 }, { "key": "field_hero_subtitle", "label": "Підзаголовок Героя", "name": "hero_subtitle", "type": "textarea", "rows": 2 }, { "key": "field_hero_image", "label": "Фонове Зображення", "name": "background_image", "type": "image", "return_format": "array" } ], "location": [ [ { "param": "post_template", "operator": "==", "value": "template-landing.php" } ] ], "position": "normal", "style": "default" }

Крок 3: Коміт до git

Додайте каталог fieldforge-json/ до git репозиторію вашої теми. Комітуйте зміни групи полів, як і будь-які інші зміни коду.

bash git add fieldforge-json/group_1_hero-section.json git commit -m "Додати поле фонове зображення до Герой Секції" git push

Кожна зміна групи полів тепер має автора, часову мітку та повідомлення коміту. Ви можете порівнювати зміни з часом, повертатися до попередніх версій і бачити, хто додав яке поле.

Крок 4: Розгортання JSON файлів в інші середовища

Коли ви розгортаєте свою тему на стадії або продукції, JSON файли йдуть разом з нею. Field Forge на цільовому середовищі виявляє нові або змінені JSON файли та імпортує їх автоматично.


Двостороння синхронізація

Локальна синхронізація JSON є двосторонньою — ви можете редагувати групи полів через адмінський інтерфейс (що оновлює як базу даних, так і JSON файл) АБО редагуючи JSON файли безпосередньо (що оновлює базу даних наступного разу, коли Field Forge завантажується).

Робочий процес з інтерфейсом

Редагуйте групи полів візуально в адмінці Field Forge. JSON файли автоматично оновлюються при збереженні. Комітуйте JSON файли до git. Розгортайте в інші середовища.

Робочий процес з кодом

Редагуйте JSON файли безпосередньо у вашому IDE (VS Code, PhpStorm тощо). При наступному завантаженні сторінки Field Forge виявляє зміни JSON і оновлює базу даних. Комітуйте JSON файли до git.

Обидва робочі процеси підтримуються. Команди зазвичай використовують інтерфейс для нових груп полів і редагування коду для невеликих коригувань.


Виявлення змін

Field Forge порівнює хеш вмісту кожного JSON файлу з версією бази даних при завантаженні. Якщо вони відрізняються, Field Forge:

  1. Показує повідомлення адміністратора: “Група полів ‘Герой Секція’ не синхронізована з локальним JSON”
  2. Пропонує варіанти: “Синхронізувати з бази даних до JSON” або “Синхронізувати з JSON до бази даних”
  3. Ви натискаєте напрямок, який хочете, і Field Forge оновлює відповідно

Це запобігає тихій дрейфу. Якщо хтось редагує групу полів на продукції безпосередньо (обминаючи робочий процес розробка → стадія → продукція), ви побачите повідомлення наступного разу, коли ви розгортаєте.


Безпека

Локальна синхронізація JSON дотримується найкращих практик безпеки WordPress:

  • .htaccess захист — каталог JSON захищений від прямого HTTP доступу за замовчуванням (файл .htaccess блокує його)
  • Права на файли — JSON файли створюються з стандартними правами на файли WordPress (644)
  • Валідація шляху — плагін читає JSON файли лише з вказаного каталогу (без переходу по шляху)

Підтримка батьківських і дочірніх тем

Field Forge перевіряє кілька шляхів завантаження для JSON файлів:

  1. Каталог fieldforge-json/ активної теми
  2. Каталог fieldforge-json/ батьківської теми (якщо активна дочірня тема)
  3. Будь-які користувацькі шляхи, зареєстровані через fieldforge/local_json/load_paths фільтр

Це означає, що батьківська тема може постачати групи полів через JSON, а дочірні теми можуть їх перевизначати або розширювати.


Розгляди для мультисайту

На мережі WordPress мультисайт, кожен сайт має свій власний каталог fieldforge-json/. Мережеві адміністратори можуть вибрати між:

  • JSON файли для кожного сайту — кожен сайт має свої групи полів
  • Спільні JSON файли — групи полів, визначені в батьківській темі, застосовуються до всіх сайтів, які її використовують
  • Гібрид — деякі групи полів спільні, деякі — для кожного сайту

Фільтри для налаштування

Користувацький шлях збереження

php add_filter('fieldforge/local_json/save_path', function($path) { return WP_CONTENT_DIR . '/custom-fieldforge-json'; });

Користувацькі шляхи завантаження (наприклад, з плагіна)

php add_filter('fieldforge/local_json/load_paths', function($paths) { $paths[] = WP_PLUGIN_DIR . '/my-plugin/fields'; return $paths; });


Порівняння з локальним JSON ACF

ACF впровадив подібну функцію локального JSON багато років тому. Реалізація Field Forge в значній мірі сумісна — JSON файли групи полів з ACF можуть бути імпортовані в каталог JSON Field Forge з незначними коригуваннями формату (Field Forge додає кілька метаданих, які ACF не відстежує).

Якщо ви мігруєте з ACF з існуючими JSON файлами, інструмент міграції Field Forge читає їх під час імпорту та автоматично перетворює їх у формат Field Forge.


Варіанти використання

Робочий процес розробки агентства

Кілька розробників працюють над сайтами клієнтів. Групи полів визначені в коді, комітяться до git, розгортаються через CI/CD. Нові члени команди завантажують репозиторій і отримують всі групи полів відразу.

Стадійні розгортання

Потік Dev → стадія → продукція, де зміни групи полів подорожують з оновленнями теми. Немає ручного етапу “ой, почекайте, мені потрібно експортувати та імпортувати групи полів”.

Розповсюдження теми

Створіть тему WordPress, яка постачається з попередньо визначеними групами полів. Користувачі встановлюють тему, Field Forge виявляє JSON файли, групи полів з’являються автоматично.

Пакування плагінів

Користувацький плагін, який вимагає специфічних груп полів. Включіть JSON файли в плагін, зареєструйте шлях завантаження через фільтр, групи полів активуються, коли активується плагін.


Готові до контролю версій ваших груп полів?

Отримайте Field Forge — від $35/рік →

Локальна синхронізація JSON включена в кожен платний план.

Асистент ШІ Forge Онлайн

Привіт! Я асистент ШІ Field Forge. Запитайте мене про будь-що щодо плагіна — налаштування, можливості, усунення несправностей чи розробку.

Щойно
Працює на Forge AI · Переглянути документацію