WPGraphQL — це шар API GraphQL для WordPress. Він відкриває публікації, сторінки, таксономії та користувачів як схему GraphQL, яку може запитувати JavaScript фронтенд. Це чудово — за винятком однієї великої прогалини: він не знає про кастомні поля.
Якщо ви хочете запитувати кастомні поля через WPGraphQL, у вас традиційно є три варіанти:
Підхід Field Forge: автоматично реєструвати типи WPGraphQL в момент, коли обидва плагіни активні. Жодного коду. Жодної ручної реєстрації. Ваші кастомні поля стають доступними для запитів через GraphQL миттєво.
Обидва плагіни повинні бути активними. WPGraphQL — це шар API GraphQL; Field Forge надає визначення типів і резолвери для кастомних полів.
Коли Field Forge активується (або WPGraphQL активується після Field Forge), Field Forge сканує ваші групи полів і автоматично реєструє:
HeroSectionFields, TeamMemberFields)Ваші кастомні поля миттєво доступні для запитів:
“graphql query GetPage { page(id: "home", idType: SLUG) { title fieldforge { heroSection { title subtitle backgroundImage { id sourceUrl altText mediaDetails { width height } } ctaButton { text url openInNewTab } } } } } “
Ключ fieldforge додається до кожного запитуваного типу публікації, відкриваючи групи кастомних полів, призначені для цієї публікації.
Field Forge також дозволяє вам завантажити чисту мову визначення схеми GraphQL (SDL) для ваших груп полів. Це корисно для:
Натисніть Завантажити GraphQL SDL в адмінці Field Forge, щоб отримати файл .graphql:
“`graphql type HeroSectionFields { title: String subtitle: String backgroundImage: MediaItem ctaButton: CtaButtonGroup }
type CtaButtonGroup { text: String url: String openInNewTab: Boolean }
type TeamMemberFields { name: String photo: MediaItem bio: String skills: [SkillSubField] }
type SkillSubField { skillName: String proficiency: Int } “`
GraphQL обробляє вкладені типи природно. Field Forge генерує:
“`graphql type TeamPage { teamMembers: [TeamMemberRow] }
type TeamMemberRow { name: String photo: MediaItem bio: String } “`
“`graphql type LandingPage { pageSections: [PageSectionLayout] }
union PageSectionLayout = HeroLayout | FeaturesLayout | CTALayout
type HeroLayout { title: String subtitle: String backgroundImage: MediaItem }
type FeaturesLayout { sectionTitle: String features: [FeatureItem] }
type CTALayout { headline: String button: ButtonGroup } “`
Запитування типів об’єднання в GraphQL вимагає вбудованих фрагментів:
“graphql query GetLandingPage { page(id: "home", idType: SLUG) { fieldforge { pageSections { __typename ... on HeroLayout { title subtitle backgroundImage { sourceUrl } } ... on FeaturesLayout { sectionTitle features { title description } } ... on CTALayout { headline button { text url } } } } } } “
Це стандартна ідіома GraphQL. Результат — повністю типізований масив, де кожен елемент має правильну форму для свого макету.
Реляційні поля (об’єкт публікації, зв’язок, користувач, таксономія) створюють правильні типи з’єднання GraphQL:
“graphql type ProductFields { relatedProducts: [Post] # Тип публікації автоматично вирішується до типу Post WPGraphQL author: User # Тип користувача автоматично вирішується category: [Category] # Таксономічні терміни автоматично вирішуються } “
Типи Post, User та Category є вбудованими типами WPGraphQL. Field Forge інтегрується з ними нативно — поле пов’язаної публікації вирішується до повного об’єкта Post WPGraphQL з усіма його полями, доступними для запитів.
“graphql query GetProduct { post(id: "product-a") { fieldforge { productDetails { relatedProducts { title slug featuredImage { node { sourceUrl } } } } } } } “
Якщо ви використовуєте GraphQL Code Generator у вашому фронтенд-проекті, автоматично зареєстрована схема GraphQL Field Forge працює з коробки. Налаштуйте codegen.yml, щоб інспектувати ваш WordPress GraphQL кінцевий пункт:
“yaml schema: https://wp.example.com/graphql documents: './src/**/*.graphql' generates: ./src/gql/: preset: client plugins: [] “
Запустіть graphql-codegen, і ви отримаєте повністю типізовані хуки запитів GraphQL для вашого фронтенду, з інтегрованими типами Field Forge без зусиль.
WPGraphQL для ACF — це окремий плагін, розроблений командою WPGraphQL, який відкриває групи полів ACF (і SCF) для GraphQL. Він працює, але це окремий плагін для управління, і іноді відстає від оновлень ACF.
Field Forge об’єднує інтеграцію GraphQL як основну функцію. Вам не потрібно встановлювати окремий плагін. Інтеграція підтримується як частина циклу випуску Field Forge. Кожен тип поля підтримується нативно.
Для сайтів, що використовують ACF + WPGraphQL для ACF, перехід на Field Forge означає один плагін менше і кращу інтеграцію.
Запити GraphQL у налаштуванні Field Forge + WPGraphQL виграють від кастомного сховища таблиць та інтеграції об’єктного кешу Field Forge. Складний запит, що отримує багато публікацій з кількома групами полів, виконується за кількома SQL запитами, а не сотнями, які б згенерував наївний підхід на основі wp_postmeta.
Отримайте Field Forge — від $35/рік →
Генерація GraphQL та інтеграція WPGraphQL є в кожному платному плані.