Этот раздел охватывает наиболее распространенные проблемы, с которыми вы можете столкнуться при использовании Field Forge, и способы их решения. Для каждой проблемы мы описываем симптомы, вероятные причины и пошаговые решения.
Подсказка помощи открывает главную страницу вместо статьи
Симптомы: Нажатие на маленький? значок помощи в админке Field Forge открывает главную страницу Field Forge или домашнюю страницу документации вместо конкретной статьи для этой настройки.
Решение: Обновите Field Forge до текущей версии. Ссылки на помощь в админке теперь ведут на точные URL разделов Руководства пользователя или Руководства разработчика. Если кэшированная админка все еще имеет старую ссылку, обновите страницу один раз.
Деактивация Forge Suite на клоне влияет на другой сайт
Симптомы: Вы клонировали или восстановили сайт WordPress, затем нажали Forge Suite > Деактивировать на клоне. Другой сайт, использующий ту же лицензию, кажется, потерял состояние PRO или Connect. Причина: Более старые версии доверяли идентификатору установки Freemius, хранящемуся вfs_accounts. Клонированная база данных может содержать идентификатор установки и URL оригинального сайта, поэтому даже деактивация Freemius, ограниченная установкой, может затронуть оригинальную удаленную установку.
Решение: Обновите Field Forge до последней версии. Forge Suite теперь сравнивает сохраненный URL сайта Freemius с текущим WordPress site_url() / home_url() перед любой удаленной деактивацией. Если состояние принадлежит другому сайту, оно пропускает удаленный вызов Freemius и очищает только локальное состояние лицензии для текущей установки WordPress. Повторно подключите клон через Field Forge > Лицензия > Подключиться к Avakode, когда вы хотите, чтобы он снова был лицензирован.
Поля не отображаются в редакторе постов
Симптомы: Вы создали группу полей, но поля не появляются при редактировании поста или страницы. Возможные причины и решения:- Правила местоположения не соответствуют посту. Откройте группу полей и проверьте раздел Правила местоположения. Убедитесь, что условия соответствуют посту, который вы редактируете. Например, если правило говорит «Тип поста равен Продукту», но вы редактируете Страницу, поля не появятся.
- Группа полей установлена как Неактивная. В списке групп полей проверьте, что в столбце Статус указано «Активная». Если указано «Неактивная», откройте группу полей и измените ее статус.
- Другой плагин скрывает метабокс. Некоторые плагины для создания страниц или плагины для очистки админки скрывают метабоксы. Проверьте Опции экрана (в правом верхнем углу экрана редактирования) и убедитесь, что метабокс вашей группы полей отмечен.
- В группе полей нет полей. Пустая группа полей с нулем полей не будет отображать метабокс. Откройте группу полей и добавьте хотя бы одно поле.
- Проблема с кэшем. Если вы только что создали группу полей, попробуйте обновить страницу редактора постов. В некоторых средах хостинга кэш объектов может задерживать появление новых метабоксов.
get_field() возвращает Null
Симптомы: Шаблон вашей темы используетget_field('field_name'), но он возвращает null или пустое значение, даже если данные были введены в редакторе.
Возможные причины и решения:
- Неправильное имя поля. Имя, переданное в
get_field(), должно совпадать с именем поля (slug), а не с меткой. Откройте редактор группы полей и проверьте столбец Имя. Например, если метка «Заголовок героя», но имяhero_title, используйтеget_field('hero_title'). - Отсутствует ID поста. Если вы вызываете
get_field()вне цикла (например, в шаблоне заголовка или подвала), вы должны явно передать ID поста:get_field('hero_title', $post_id). Без второго параметра он по умолчанию ссылается на текущий пост в цикле, который может не существовать в вашем контексте. - Использование данных страницы опций без ‘options’. Для полей страницы опций вы должны передать
'options'в качестве второго параметра:get_field('site_phone', 'options'). Без него Field Forge ищет поле на текущем посте и ничего не находит. - Field Forge деактивирован. Если Field Forge не активен и ваша тема не имеет резервного варианта,
get_field()будет неопределен и вызовет фатальную ошибку (или вернет null, если другой плагин предоставляет заглушку). Проверьте, что Field Forge активирован в Плагинах. - Данные были введены с помощью ACF, но не мигрированы. Если данные изначально были сохранены ACF и вы не выполнили миграцию, таблицы Field Forge будут пустыми. Перейдите в Field Forge > Миграция и импортируйте значения.
- ACF активен во время проверки страницы опций LangForge. Когда ACF владеет
get_field(), Field Forge теперь связывает пустые чтения опций ACF с той же таблицей опций Field Forge, учитывающей язык, используемой слоем совместимости ACF. Это предназначено для миграции/QA окон, где ACF, Field Forge и LangForge активны вместе.
Изменения в поле внутри группы не сохраняются
Симптомы: Вы изменяете текст, значение текстовой области или WYSIWYG, которое находится внутри поля Группы, нажимаете Обновить, и значение возвращается к предыдущему содержимому при перезагрузке. Другие поля в том же посте сохраняются нормально. Поля вне Группы сохраняются нормально. Почему это происходит: Это была регрессия, специфичная для Групп, данные которых были импортированы из ACF (или мигрированы из предыдущего плагина) и, следовательно, хранились иерархически — сама группа занимает одну строку в таблице значений Field Forge, и каждое подполе связано с идентификатором записи группы. Подполя формы админки в этой структуре отправлялись под ключом POST, который обработчик сохранения Field Forge не читал, поэтому изменения подполей тихо терялись. Группы, которые никогда не затрагивались импортом ACF, продолжали работать, потому что они использовали устаревший путь хранения, который обработчик сохранения читал. Что делает текущая версия: Обработчик сохранения теперь распознает иерархические подполе группы и направляет их через тот же валидатор + путь хранения, что и любое другое поле. Исправление охватывает текст, текстовые области, WYSIWYG, числа, выбор и другие «простые» типы полей внутри Групп, а также Группы, вложенные внутри Повторителей и макетов Гибкого Контента. Восстановление уже потерянных изменений: Изменения, сделанные до исправления, никогда не сохранялись — нет записи о них для восстановления. Введите содержимое снова и нажмите Обновить; значение будет сохранено правильно.Значения накапливают обратные слеши при каждом сохранении
Симптомы: Поле с кавычками в его значении (чаще всего встраивание iframe, блок WYSIWYG, содержащийdata-* атрибуты, или текстовая область с сырым HTML) начинает показывать дополнительные обратные слеши каждый раз, когда пост сохраняется: width="900" становится width=\"900\", затем width=\\\"900\\\" и так далее — до дюжины или более обратных слешей после нескольких раундов редактирования. Повторное редактирование поля, создание переводов или использование сторонних инструментов «дублирования постов» ускоряет накопление.
Почему это происходит: WordPress автоматически добавляет обратный слеш перед каждой кавычкой в данных формы. Обработчик сохранения Field Forge раньше хранил полученное значение, не удаляя добавленные слеши, поэтому каждый раунд сохранения сохранял предыдущие слеши и добавлял новый слой сверху. Значения, которые никогда не содержали кавычек, не пострадали.
Что делает текущая версия: Обработчик сохранения один раз на верхнем уровне удаляет экранирование входных данных формы, так что сохраненное значение соответствует тому, что на самом деле ввел пользователь. Будущие сохранения больше не добавляют слеши.
Очистка уже поврежденных значений:
- Откройте каждый затронутый пост в админке. Если значение отображается с видимыми обратными слешами перед кавычками, сохраненное содержимое повреждено.
- В редакторе поля вручную удалите обратные слеши и сохраните один раз — исправленное значение будет сохраняться в дальнейшем.
- Для массового ремонта на сайте с множеством поврежденных строк скрипт WP-CLI может пройтись по
stripslashes()по значениям вwp_fieldforge_values, пока значение не стабилизируется. Ограничьте проход до текстоподобных типов полей (wysiwyg,textarea,text,url,email) — двоичные идентификаторы и цветовые значения не должны быть затронуты. Свяжитесь с поддержкой, если вам нужен точный запрос.
Миграция ACF неполная или зависла
Симптомы: Индикатор прогресса миграции останавливается на полпути, или не все посты имеют свои данные после миграции. Возможные причины и решения:- Тайм-аут PHP. Большие сайты могут достигать лимита времени выполнения PHP. Миграция выполняется партиями по 50 постов, чтобы избежать этого, но очень медленные серверы могут все равно зависать. Увеличьте
max_execution_timeв ваших настройках PHP (или php.ini) до как минимум 300 секунд, затем перезапустите миграцию. - Лимит памяти. Посты с множеством сложных полей (вложенные повторители, большие галереи) могут потреблять значительное количество памяти. Увеличьте
memory_limitдо как минимум 256M в ваших настройках PHP. - ACF был деактивирован до завершения миграции. ACF должен оставаться активным на протяжении всего процесса миграции, потому что Field Forge считывает данные через функции ACF. Реактивируйте ACF и перезапустите миграцию.
- Фоновая обработка завершилась без ошибок. Проверьте страницу состояния миграции Field Forge на наличие сообщений об ошибках. Если фоновый процесс был прерван (перезагрузка сервера, обслуживание хостинга), нажмите «Возобновить миграцию», чтобы продолжить с того места, где он остановился.
- Частичная миграция ожидается на Free. Бесплатная версия мигрирует только определения групп полей, а не значения полей. Если ваши посты имеют правильные поля, но без данных, обновите до PRO, чтобы мигрировать значения.
- Несоответствие локального QA bootstrap. На локальных сайтах Forge QA, которые определяют
FORGE_SKIP_LICENSE_REVALIDATION, либоforge_e2e_plan=pro, либо действительная запись локальной лицензииfieldforge_license_data['plan']='pro'разблокирует миграцию значений. Тот же локальный констант также переводит Freemius в анонимный режим для запросов администратора Field Forge, поэтому свежий QA сайт не должен блокироваться экраном согласия Freemius перед открытием страниц Field Forge.
Локальный JSON не синхронизируется
Симптомы: Вы или ваш разработчик внесли изменения в файлы JSON, но группы полей в базе данных не обновляются. Возможные причины и решения:- Локальный JSON не включен. Перейдите в Field Forge > Настройки и убедитесь, что синхронизация локального JSON включена.
- Неправильный путь к директории. Field Forge ищет файлы JSON в папке
fieldforge-json/внутри вашей активной темы (или в пользовательском пути, если он настроен). Убедитесь, что папка существует и содержит файлы.json. Путь чувствителен к регистру. - Права на файлы. Веб-серверу нужен доступ на чтение к директории JSON. На большинстве хостов права 755 для папки и 644 для файлов являются правильными.
- Уведомление о синхронизации отклонено. Когда Field Forge обнаруживает обновленные файлы JSON, он показывает уведомление о синхронизации в админке. Если кто-то отклонил уведомление, не нажав Синхронизировать, изменения не были применены. Перейдите в Field Forge > Группы полей и проверьте наличие ожидающих уведомлений о синхронизации.
- Тема была изменена. Если активная тема изменилась, Field Forge ищет в директории новой темы. Убедитесь, что файлы JSON существуют в текущей активной теме.
- Вы импортируете ACF Local JSON, а не синхронизируете Field Forge JSON. Исходные файлы ACF должны находиться в
acf-json/и обрабатываются инструментом миграции ACF. Собственные файлы синхронизации Field Forge должны находиться вfieldforge-json/.
Страница опций не отображается
Симптомы: Вы создали страницу опций, но она не отображается в боковой панели админки WordPress. Возможные причины и решения:- PRO не активирован. Страницы опций требуют лицензию PRO. Перейдите в Field Forge > Лицензия и убедитесь, что ваша лицензия активна.
- Несоответствие возможностей. Если страница опций была создана с пользовательской возможностью, ваша учетная запись может ее не иметь. Войдите как Администратор, чтобы подтвердить существование страницы, затем при необходимости отрегулируйте настройку возможности.
- Конфликт позиции меню. Если другой плагин или элемент меню занимает тот же номер позиции, страница опций может быть скрыта за ним. Попробуйте изменить позицию меню в настройках страницы опций.
- Кэш. Некоторые плагины кэширования или кэши объектов могут кэшировать админское меню. Очистите кэш и обновите панель администратора.
Изменения на странице опций исчезают после сохранения
Симптомы: Вы открываете страницу опций (настройки темы «Общие», пользовательская страница опций или любая страница, зарегистрированная черезacf_add_options_page / fieldforge_add_options_page), редактируете значение или добавляете новую строку повторителя, нажимаете Сохранить, видите зеленое уведомление «Опции сохранены», а затем при перезагрузке форма показывает СТАРОЕ значение обратно. Новая строка повторителя исчезла, измененная ссылка на карту вернулась, выбранная страница Политики конфиденциальности пуста.
Почему это происходит (любая из четырех коренных причин, все исправлены в v1.0.10):
- Вкладка переведенного языка читает данные языка по умолчанию. Слой совместимости не учитывал переключатель администратора LangForge
?lf_lang=, поэтому вкладка EN/UZ отображала значения RU. Редактирование их затем записывало обратно в хранилище языка по умолчанию, и переведенный язык оставался пустым. - Сложные имена подполей отклонялись белым списком сохранения. Подполя, имя которых содержало нижнее подчеркивание —
map_link,privacy_policy,social_name,social_link— тихо терялись из обработки POST, потому что белый список разбивал имя на_и требовал, чтобы каждая часть была зарегистрированным полем. Их значения никогда не достигали базы данных. - Вложенный
have_rowsискал хранилище под неправильным префиксом. Тема, вызывающаяhave_rows('socials')внутриhave_rows('common', 'option'), искала ключи, названные простоsocials, а неcommon_socials. На фронтенде отображался пустой раздел, даже когда данные были правильно сохранены. - Скрытое количество строк не обновлялось, когда вы нажимали Добавить строку или Удалить строку. Данные новой строки были сохранены, но поле количества все еще показывало старое число. При повторном рендере сервер перебирал ($i = 0; $i < count) и полностью пропускал новую строку. Строка оставалась в базе данных, невидимой как для формы админки, так и для публичного сайта.
- Жестко обновите страницу админки (Cmd+Shift+R / Ctrl+Shift+R), чтобы получить новый admin.js. Сброс кэша автоматический при загрузке нового файла, но устаревший кэш браузера сохранит старое поведение.
- Убедитесь, что OPcache вашего хостинга подхватил новые PHP файлы. На Hostinger / LiteSpeed совместном хостинге OPcache может удерживать старые классы файлов до часа после загрузки. Переключите версию PHP в панели или загрузите небольшой скрипт
, чтобы сбросить. - Если ваш сайт использует плагин перевода, отличный от LangForge (WPML, Polylang), фильтр
fieldforge/options_post_id, подключенный LangForge, не сработает. Совместимость плагина перевода для страниц опций находится в планах; пока что ACF Pro + WPML’s ACFML дополнение является поддерживаемым стеком на этих сайтах.
Подполя изображения / ссылки на страницу / текстовой области отображают сырые числовые ID в редакторе
Симптомы: В поле Повторитель на экране редактирования поста столбцы, такие как Изображение или Изображение @2x, отображают простое число (800, 2954) в текстовом вводе вместо предварительного просмотра изображения с кнопками Выбрать / Удалить. Столбец URL / Ссылка на страницу показывает числовой ID поста. Столбец текстовой области показывает однострочный текстовый ввод, который обрезает длинное содержимое.
Причина (исправлено 2026-04-24): Рендерер Повторителя жестко кодировал каждое подполе для отображения как , игнорируя фактический тип подполей. Поля верхнего уровня того же типа отображались правильно через рендерер ввода, учитывающий тип — только путь повторителя пропускал диспетчеризацию.
Исправление: Обновите Field Forge до последней версии. Подполя повторителя теперь диспетчеризуются через тот же рендерер, учитывающий тип, который используют поля верхнего уровня: подполе изображения возвращается с предварительными миниатюрами + кнопками Выбрать / Удалить, подполе page_link и post_object отображаются как выпадающие списки опубликованных страниц + постов, текстовые области отображаются как многострочные текстовые области. Поведение сохранения и схема HTML имени ввода остаются неизменными, так что ранее отредактированные значения сохраняются.
Вложенный повторитель внутри повторителя показывает число в текстовом вводе
Симптомы: Повторитель имеет подполе, которое само является Повторителем (например, блок наград за год, где каждый год содержит список отдельных наград). На экране редактирования поста внешние строки отображаются правильно, но вложенный столбец отображает простое однозначное или двузначное число в текстовом вводе — число соответствует количеству внутренних строк для этой внешней строки. Нажатие на «число» ничего не делает, и нет способа редактировать внутренние элементы из редактора. Публичный фронтенд отображается правильно, потому что путь чтения никогда не был нарушен. Причина (исправлено 2026-04-24): Диспетчер на уровне строки, введенный 2026-04-24, обрабатывал простые типы подполей (изображение, текстовая область, page_link, post_object и т. д.), но все еще направлял вложенные составные типы — Повторитель, Группа, Гибкий Контент — через запасной текстовый ввод. Запасная строка преобразовывала значение количества строк вложенного повторителя, что и привело к появлению цифры вместо реального интерфейса. Исправление: Обновите Field Forge до последней версии. Рендерер повторителя теперь обнаруживает, когда тип подполей является одним изrepeater / group / flexible_content и делегирует общему составному рендереру с вложенным идентификатором записи, который загрузчик значений хранит на каждой строке. Вложенные повторители теперь отображают свои собственные строки с ручками перетаскивания, кнопками удаления и полностью функциональными вводами подполей (изображения, текстовые области и т. д.), а вложенные группы отображают свои сетки подполей. Поведение сохранения и схема HTML имени ввода остаются неизменными — существующие данные становятся редактируемыми при следующей загрузке страницы без необходимости миграции данных.
Кнопка «Добавить строку» повторителя отображается без метки (пустая таблетка внизу повторителя)
Симптомы: Внизу повторителя (и вложенных повторителей и блоков Гибкого Контента) есть пустой овал с розовой обводкой, где должна быть кнопка «Добавить строку» / «Добавить макет». Нажатие на нее все еще добавляет строку, но нет видимой метки, чтобы направить редактора. Причина (исправлено 2026-04-24): Для повторителей, мигрированных из ACF,button_label хранится как пустая строка, а не null. Рендерер использовал $field['button_label'] ?? __('Add Row'), чтобы вернуться к метке по умолчанию, но ?? срабатывает только на null — пустая строка проходит, поэтому кнопка отображалась без текста.
Исправление: Обновите Field Forge до последней версии. Запасной вариант теперь использует !empty(...), так что как null, так и пустые строки разрешаются в метку по умолчанию «Добавить строку» / «Добавить макет». Установка пользовательского button_label в редакторе группы полей по-прежнему работает точно так же, как и раньше.
Ширина подполя внутри повторителя игнорируется (все столбцы отображаются с равной шириной)
Симптомы: В редакторе группы полей повторитель имеет подполе с явными значениямиWidth % (например, Год 20% и Награды 80%), но на экране редактирования поста каждый столбец подполей занимает равную долю строки — два подполя занимают 50%/50%, четыре — 25%/25%/25%/25% и т. д. Настройка Width %, похоже, сохраняется, но не имеет видимого эффекта.
Причина (исправлено 2026-04-24): Макет строки повторителя использовал контейнер flex с flex: 1 на каждой ячейке, переопределяя любое значение wrapper.width, которое имело подполе. Поля верхнего уровня выдавали встроенный стиль из ширины их обертки, но путь ячейки повторителя не имел такой ветви.
Исправление: Обновите Field Forge до последней версии. Каждая ячейка подполей повторителя теперь выдает атрибут data-width="N" и встроенный стиль flex: 0 0 calc(N% - 8px); max-width: calc(N% - 8px), производный от wrapper.width подполя, внутри строки flex с gap: 8px и flex-wrap: wrap. Ширины учитываются как для внешних повторителей, так и для вложенных повторителей/групп/гибких элементов. Ячейки без настроенной ширины по-прежнему возвращаются к flex: 1 и делят строку поровну.
Значок ширины % в редакторе не обновляется, когда вы вводите
Симптомы: В редакторе группы полей каждое подполе имеет маленький розовый значок рядом с меткой типа (например, «Текст 20%»), который отражает егоwrapper.width. Ввод нового значения в поле Ширина % изменяет ввод, но оставляет значок неизменным до тех пор, пока страница не будет сохранена и перезагружена — создавая впечатление, что изменение не сохраняется.
Причина (исправлено 2026-04-24): Значок отображался один раз из значения на стороне сервера при первоначальной загрузке. Обработчик живого ввода обновлял состояние поля JS, но не касался элемента значка, поэтому два визуальных элемента расходились до следующего полного рендеринга.
Исправление: Обновите Field Forge до последней версии. Обработчик ввода wrapper.width теперь зеркалит текущее значение в розовом значке в реальном времени — добавляя значок, когда ширина впервые устанавливается, обновляя его текст по мере ввода и удаляя его, когда поле очищается. Никаких функциональных изменений, только улучшение визуальной согласованности.
Переведенная страница (WPML) отображает текст исходного языка для полей группы
Симптомы: После перевода поста с помощью WPML публичный фронтенд переведенного языка показывает содержимое исходного языка для полей, хранящихся внутри группы — даже если метабокс Field Forge в админке четко показывает правильный перевод. Типичное проявление: блок деталей проекта отображает английские метки под русским URL (или наоборот). Причина (исправлено 2026-04-24): WPML дублирует postmeta исходного поста на перевод во время перевода и не поддерживает его в синхронизации с последующими правками. Ваши правки подполей группы переведенного поста сохраняются в собственной таблице Field Forge (wp_fieldforge_values) против ID переведенного поста, но слой совместимости ACF читал значения группы только из get_post_meta(), который для переведенного поста все еще возвращал нетронутую копию исходного языка.
Исправление: Обновите Field Forge до последней версии. Слой совместимости теперь предпочитает значения из wp_fieldforge_values, когда запись существует для текущего поста, возвращается к get_post_meta() только когда запись не найдена, и защитно заполняет отсутствующие подполе из postmeta ACF, чтобы частично мигрированные группы деградировали плавно. Миграция данных не требуется — существующие переводы становятся правильными при следующей загрузке страницы.
Wysiwyg / Изображение / Текстовое содержимое исчезает после вложенного have_rows цикла
Симптомы: Шаблон темы итеративно обрабатывает одно поле повторителя или flexible_content внутри другого (например, блок video или image, вложенный внутри группы topside), и сразу после внутреннего цикла вызывает the_sub_field('textblock') или the_sub_field('img') на внешней строке — значение возвращается пустым, поэтому окружающий разметка кажется сломанным. Изображения отображаются с src="" и показывают только текст alt как запасной вариант; текстовые блоки полностью исчезают.
Причина (исправлено 2026-04-24): Когда итерация have_rows() завершалась, слой совместимости безусловно очищал текущий указатель строки, даже если итерация была вложена внутри все еще активного внешнего цикла. Реальное поведение ACF заключается в том, что текущая строка внешнего цикла сохраняется до завершения внешней итерации.
Исправление: Обновите Field Forge до последней версии. По завершении итерации слой совместимости теперь восстанавливает текущую строку до самой последней все еще активной итерации в стеке и очищает ее только тогда, когда активных итераций нет. Шаблоны, которые смешивают вложенные вызовы have_rows — распространенный шаблон ACF — теперь работают, как ожидалось.
Кнопка «Добавить строку» повторителя не работает
Симптомы: Нажатие на «Добавить строку» в поле повторителя ничего не делает, или кнопка серого цвета. Возможные причины и решения:- Достигнуто максимальное количество строк. Если у повторителя установлено максимальное количество строк и вы достигли этого лимита, кнопка Добавить строку отключена. Проверьте конфигурацию повторителя на наличие значения максимального количества строк.
- Ошибка JavaScript. Откройте консоль разработчика вашего браузера (F12 или Cmd+Option+I) и проверьте наличие ошибок JavaScript. Конфликт с другим плагином или скриптом темы может помешать работе повторителя. Общие виновники — плагины для создания страниц или плагины для оптимизации админки, которые агрессивно объединяют скрипты.
- Лицензия PRO неактивна. Повторитель является типом поля PRO. Если ваша лицензия истекла или была деактивирована, функциональность повторителя может быть ограничена. Проверьте Field Forge > Лицензия.
- Совместимость браузера. Попробуйте другой браузер или очистите кэш браузера. Устаревшие версии браузеров иногда имеют проблемы с динамическими элементами форм.
Отсутствуют макеты гибкого контента
Симптомы: Когда вы нажимаете «Добавить макет» в поле гибкого контента, выпадающий список пуст или некоторые макеты отсутствуют. Возможные причины и решения:- Макеты не были определены. Откройте редактор группы полей и проверьте поле гибкого контента. Каждый макет должен быть явно добавлен с именем и подполями. Если макет был случайно удален, используйте Историю изменений, чтобы восстановить его.
- Достигнуто максимальное количество макетов. Если для конкретного типа макета было установлено максимальное значение, он исчезнет из выпадающего списка, как только это ограничение будет достигнуто. Удалите существующий экземпляр этого макета, чтобы освободить слот.
- Условная логика скрывает макеты. Если на макетах настроена условная логика, некоторые могут быть скрыты в зависимости от значений других полей. Проверьте настройки условной логики.
- Проблема с лицензией PRO. Гибкий контент требует PRO. Проверьте статус вашей лицензии.
Проблемы с производительностью при большом количестве групп полей
Симптомы: Админка кажется медленной при редактировании постов, или список групп полей загружается долго. Возможные причины и решения:- Слишком много полей в одном посте. Если один пост соответствует многим группам полей (в результате более 50 полей), редактор может стать медленным. Консолидируйте группы полей, где это возможно, или используйте поля вкладок, чтобы организовать большие группы в разделы. Вкладки загружают поля лениво, улучшая воспринимаемую производительность.
- Сложная условная логика. Обширная условная логика с множеством взаимосвязанных правил требует больше обработки JavaScript. Упростите условия, где это возможно.
- Ограничения хостинга. Совместный хостинг с ограниченным ЦП и памятью может испытывать трудности с сложными админскими страницами. Рассмотрите возможность перехода на управляемый хостинг WordPress, если производительность админки постоянно плохая.
- Кэш объектов. Установите плагин кэширования объектов (например, Redis или Memcached), чтобы сократить количество запросов к базе данных. Field Forge выигрывает от кэширования объектов, потому что определения групп полей кэшируются после первого загрузки.
Конфликт с ACF (оба активны)
Симптомы: Странное поведение, дублирующиеся метабоксы, поля показывают значения из неправильного плагина или ошибки PHP, упоминающие повторное объявление функции. Возможные причины и решения:- Деактивируйте один плагин. Одновременная работа ACF и Field Forge предназначена только для миграции. После миграции деактивируйте ACF. Field Forge предоставляет все те же функции, так что ваш код темы продолжает работать.
- Конфликт функций. Если оба плагина пытаются зарегистрировать
get_field(), PHP выдает фатальную ошибку о дублирующихся объявлениях функций. Текущие сборки Field Forge откладывают использование ACF, когда ACF активен или активируется через админку WordPress/инструменты плагинов, так что ACF Pro может быть активирован для миграции без возникновения фатальной ошибки повторного объявленияget_field(). Если вы все еще видите эту ошибку, сначала обновите Field Forge, перезагрузите плагины и снова активируйте ACF. - Запасной вариант страницы опций во время миграции. Если ACF активен и возвращает пустое значение опции, в то время как Field Forge имеет значение опции, специфичное для языка, Field Forge предоставляет это значение через фильтр загрузки значений ACF. Этот узкий мост поддерживает согласованность запросов страниц опций, учитывающих LangForge, во время миграции; это не делает долгосрочную двойную работу ACF/Field Forge рекомендуемой настройкой.
- Дублирующиеся метабоксы. Если вы видите два набора одних и тех же полей в посте, один от ACF и один от Field Forge, это означает, что оба плагина имеют совпадающие группы полей и правила местоположения. Деактивируйте ACF, чтобы устранить дубликаты.
Значения полей потеряны после переключения темы
Симптомы: После переключения на новую тему пользовательские данные полей кажутся отсутствующими на фронтенде. Возможные причины и решения:- Шаблоны темы не были обновлены. Данные полей все еще находятся в базе данных — они не исчезают при переключении тем. Проблема в том, что новая тема не содержит кода шаблона (
get_field(),the_field()и т. д.), чтобы отобразить их. Попросите вашего разработчика добавить код вывода полей в шаблоны новой темы. - Путь локального JSON изменился. Если вы использовали синхронизацию локального JSON, файлы JSON находились в папке старой темы. Скопируйте директорию
fieldforge-json/из старой темы в новую или перенастройте путь локального JSON в Field Forge > Настройки. - Группы полей целы. Перейдите в Field Forge > Группы полей, чтобы подтвердить, что все ваши группы полей все еще существуют. Они хранятся в базе данных, а не в теме, так что они выживают при переключении темы.
Ошибки генерации TypeScript
Симптомы: Функция генерации TypeScript производит неправильные типы, выдает ошибки или выводит пустые файлы. Возможные причины и решения:- Требуется лицензия PRO. Генерация TypeScript является функцией PRO. Убедитесь, что ваша лицензия активна.
- Не определены группы полей. Интерфейсы TypeScript генерируются из ваших определений групп полей. Если у вас нет групп полей, вывод будет пустым.
- Неподдерживаемые типы полей в пользовательских плагинах. Если вы зарегистрировали пользовательские типы полей через плагин, генератор TypeScript может не знать, как их сопоставить. Проверьте сгенерированный вывод на наличие типов
anyи добавьте пользовательские сопоставления типов с помощью фильтраfieldforge/typescript/type_map. - Права на запись файлов. Если выходной файл не может быть записан, проверьте, что целевая директория имеет права на запись для веб-сервера.
Ошибки импорта/экспорта
Симптомы: Импорт JSON файла не удается, или экспортированный файл пуст или поврежден. Возможные причины и решения:- Неверный формат JSON. Если вы вручную редактировали файл экспорта JSON, ошибка синтаксиса (отсутствующая запятая, лишняя скобка) приведет к сбою импорта. Используйте валидатор JSON (например, jsonlint.com), чтобы проверить файл перед импортом.
- Файл слишком большой. Очень большие экспорты (сотни групп полей) могут превышать лимиты PHP
upload_max_filesizeилиpost_max_size. Увеличьте эти значения в вашей конфигурации PHP или разделите экспорт на более мелкие файлы. - Неизвестные или неправильно оформленные определения полей. Field Forge отклоняет импорты, содержащие неизвестный тип поля, неправильно оформленные подполе, неправильно оформленные макеты Гибкого Контента или недействительные правила местоположения. Обновите оба сайта до последней версии Field Forge и экспортируйте JSON снова из исходного сайта, вместо того чтобы редактировать эти разделы вручную.
- Несоответствие версий. Импорт файла, экспортированного из более новой версии Field Forge в более старую версию, может завершиться неудачей, если новая версия добавила типы полей или настройки, которые старая версия не распознает. Обновите Field Forge до последней версии перед импортом.
- Проблемы с правами. Веб-серверу нужен доступ на запись к директории
uploadsдля обработки временных файлов во время импорта. Проверьте права на папку. - Дублирующиеся ключи полей. Если импорт содержит ключи полей, которые уже существуют в вашей базе данных, Field Forge показывает уведомление о конфликте. Выберите, чтобы перезаписать существующие группы или пропустить дубликаты.