Field Forge автоматически регистрирует нативные типы и резолверы с WPGraphQL, когда плагин WPGraphQL активен. WPGraphQL для ACF не требуется. Резолверы читают значения из таблиц Field Forge, поэтому мигрированные поля продолжают работать после деактивации ACF.
Запрос полей через GraphQL
query GetProduct($id: ID!) {
product(id: $id, idType: DATABASE_ID) {
title
fieldForgeProductFields {
price
saleBadge
productGallery {
databaseId
sourceUrl
mediaItemUrl
altText
}
featuredProduct {
__typename
databaseId
contentTypeName
uri
}
specifications {
label
value
}
}
}
}Сопоставление типов GraphQL
| Тип Field Forge | Тип GraphQL |
|---|---|
text, textarea, email, url, password | String |
number, range | Float |
true_false | Boolean |
image, file | MediaItem |
select, radio, button_group | String |
checkbox | [String] |
gallery | [MediaItem] |
post_object | ContentNode или [ContentNode], когда включен множественный выбор |
relationship | [ContentNode] |
taxonomy | TermNode или [TermNode] для полей checkbox / multi-select |
user, page_link | String в текущей области видимости нативного резолвера |
date_picker, time_picker, color_picker | String |
repeater | Пользовательский тип списка |
group | Пользовательский тип объекта |
flexible_content | Пользовательский тип списка с acfFcLayout и подполями макета |
Правила именования
- Каждый соответствующий тип записи получает одно поле на группу Field Forge:
fieldForge+ название группы в PascalCase. Пример:Product FieldsстановитсяfieldForgeProductFields. - Имена полей преобразуются из snake_case или kebab-case в camelCase. Пример:
hero_titleстановитсяheroTitle. - Flexible Content отображает имя макета как
acfFcLayout. - Если два имени GraphQL совпадают в одном типе объекта, Field Forge добавляет стабильный суффикс из ключа поля или ID группы.
Нативные резолверы охватывают скалярные значения, структурированные формы Group / Repeater / Flexible Content и поля, основанные на объектах. image, file и gallery разрешаются в объекты WPGraphQL MediaItem; post_object и relationship разрешаются в ContentNode; taxonomy разрешается в TermNode. То же сопоставление объектов работает внутри вложенных подполей Group, Repeater и Flexible Content.
Для анонимных запросов Field Forge фильтрует недоступные приватные, черновые, защищенные паролем или не GraphQL объекты записей перед их возвратом. Поля одного объекта возвращают null; списковые поля пропускают недоступные узлы. Термины возвращаются только тогда, когда их таксономия доступна для WPGraphQL.
—