Локальная синхронизация JSON — Группы полей, совместимые с Git | Field Forge - Произвольные поля, созданные для скорости
Скачать Войти

Локальная синхронизация JSON — Группы полей, совместимые с Git

Проблема, которую это решает

Когда вы редактируете группу полей в админке Field Forge, изменения сохраняются в базе данных WordPress. Отлично — пока вы не осознаете:

  • В вашей локальной среде разработки есть одна версия группы полей
  • На staging есть немного другая версия (потому что кто-то редактировал её там)
  • На production есть ещё одна версия (потому что редактор контента добавил поле напрямую)
  • У вас нет истории, кто что изменил, когда и почему

Без системы контроля версий группы полей теряются в синхронизации. Миграции из разработки в продакшн становятся подвержены ошибкам. Откаты невозможны.

Локальная синхронизация 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": "Hero Section", "fields": [ { "key": "field_hero_title", "label": "Hero Title", "name": "hero_title", "type": "text", "required": true, "max_length": 120 }, { "key": "field_hero_subtitle", "label": "Hero Subtitle", "name": "hero_subtitle", "type": "textarea", "rows": 2 }, { "key": "field_hero_image", "label": "Background Image", "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 "Добавить поле фонового изображения в Hero Section" git push «

Теперь каждое изменение группы полей имеет автора, временную метку и сообщение коммита. Вы можете сравнивать изменения с течением времени, откатываться к предыдущим версиям и видеть, кто добавил какое поле.

Шаг 4: Развертывание JSON-файлов в другие среды

Когда вы развертываете свою тему на staging или production, JSON-файлы идут вместе с ней. Field Forge в целевой среде обнаруживает новые или измененные JSON-файлы и автоматически импортирует их.


Двунаправленная синхронизация

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

Рабочий процесс с приоритетом UI

Редактируйте группы полей визуально в админке Field Forge. JSON-файлы автоматически обновляются при сохранении. Коммитьте JSON-файлы в git. Разворачивайте в другие среды.

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

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

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


Обнаружение изменений

Field Forge сравнивает хэш содержимого каждого JSON-файла с версией базы данных при загрузке. Если они различаются, Field Forge:

  1. Показывает уведомление администратору: «Группа полей ‘Hero Section’ не синхронизирована с локальным JSON»
  2. Предлагает варианты: «Синхронизировать из базы данных в JSON» или «Синхронизировать из JSON в базу данных»
  3. Вы нажимаете направление, которое хотите, и Field Forge обновляет соответственно

Это предотвращает тихое расхождение. Если кто-то редактирует группу полей на production напрямую (обходя рабочий процесс dev → staging → prod), вы увидите уведомление в следующий раз, когда развернете.


Безопасность

Локальная синхронизация 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 multisite у каждого сайта есть свой собственный каталог 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. Новые члены команды клонируют репозиторий и сразу получают все группы полей.

Поэтапные развертывания

П pipeline разработки → staging → production, где изменения группы полей идут вместе с обновлениями темы. Нет ручного шага «подождите, мне нужно экспортировать и импортировать группы полей».

Распространение темы

Создайте тему WordPress, которая поставляется с предопределенными группами полей. Пользователи устанавливают тему, Field Forge обнаруживает JSON-файлы, группы полей появляются автоматически.

Упаковка плагина

Пользовательский плагин, который требует определенные группы полей. Упакуйте JSON-файлы внутри плагина, зарегистрируйте путь загрузки через фильтр, группы полей активируются, когда активируется плагин.


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

Получите Field Forge — от $35/год →

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

ИИ-ассистент Forge Онлайн

Привет! Я ИИ-ассистент Field Forge. Спрашивайте меня о чём угодно по плагину — настройка, возможности, устранение неполадок или разработка.

Только что
На базе Forge AI · Просмотр документации