| 开发者 |
gatographql
leoloso |
|---|---|
| 更新时间 | 2025年10月17日 23:24 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 6.8 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
Yes, you can. Either there are specific integrations for them (eg: Polylang), of there are elements in the GraphQL schema to interact with generic elements.
For instance, you can use field customPost to retrieve WooCommerce products, and field metaValue to retrieve Advanced Custom Fields and Yoast SEO metadata.
The Gato GraphQL website contains extensive documentation:
Sure you can. There are videos demonstrating how to use Gato GraphQL in:
Yes you can. Use the GitHub template GatoGraphQL/ExtensionStarter to create an extension, and follow the documentation there.
With Gato GraphQL you can query data from the WordPress database, and then inject the results into a WP-CLI command (either to select a specific resource, or update an option with some value, or other). Check out guide Complementing WP-CLI for a thorough description on how to do it.
With Gato GraphQL you can create an endpoint that exposes the data from your WordPress site. Then, within the framework of your choice, you can query the data and render the HTML. Among others, you can use any of these libraries/frameworks:
Yes you can. Gato GraphQL can be included within any PHP-based application (not only WordPress), based on Laravel, Symfony, or any other. Check guide Running Gato GraphQL without WordPress for the explanation on how to do it.
Yes you can. Check guide Working with (Gutenberg) blocks for the different ways in which we can query block data, and guide Mapping JS components to (Gutenberg) blocks for an example.
Yes, it does. Gato GraphQL can be installed on a multisite network. In addition, Gato GraphQL provides fields on the GraphQL schema to retrieve multisite network data, allowing to use GraphQL to sync content across the multisite.
Check out the Gato GraphQL vs WP REST API comparison.
Check out the Replacing the WP REST API guide.
Check out the Gato GraphQL vs WPGraphQL comparison.
Check out the Replacing WPGraphQL guide.
Yes you can. Even more, only the WordPress-specific packages to fetch WordPress data (posts, users, comments, etc) used by your application would need to be ported to the new framework/CMS, and nothing else. Check guide Migrating your app from WordPress to another PHP framework or CMS to learn more.
Power Extensions are sold in a bundle containing all of them. They are needed to enhance the security of public APIs, add HTTP caching to speed up the application, execute multiple queries in a single request, connect to external services, send emails, and others.
Premium Extensions are sold individually. Each extension provides some specific functionality, such as an integration with some specific WordPress plugin or external service, or the ability to automate tasks.
Yes it does. If you have purchased any Gato GraphQL product and found out that it's not the right tool to satisfy your needs, you have 30 days to ask for a refund.
Yes, you can launch your own sandbox site to play with Gato GraphQL + all extensions, for free.
Yes it is. The source code for the plugin is in GitHub repo GatoGraphQL/GatoGraphQL. The JavaScript source code for the blocks is under layers/GatoGraphQLForWP/plugins/gatographql/blocks.
CodeNameJSONObject input type (#3210)object param to resolveMetaKeysValue (#3177)parent field to CustomPost (#3159)slugPath field to CustomPost (comprising the slug for all ancestor posts) (#3163)GenericCustomPost.ancestors and Page.ancestors (#3167)children and childCount to GenericCustomPost (#3168)Category.ancestors (#3169)CustomPost.menuOrder (#3172)menuOrder arg to custom post mutations (#3173)WithMeta.metaKeys as sensitive field (#3197)isOneOf introspection field out of extensions (as feature has been merged to GraphQL spec) (#3198)post(by: { id: 0 }) returns null (instead of the post in the loop) (#3165)CustomPost.rawStatus (as it exists in the database, eg: publish instead of future) (#3142)future and inherit statuses to the CustomPostStatus enum (#3142)createMediaItem mutation (#3146)srcs, widths, and heights (to fetch data for several sizes) to type Media (#3149)_arrayDeepFlatten from the Helper Function Collection extension (#3153)@exportFrom directive from Multiple Query Execution (#3121)@passOnwards directive from Field to Input (#3122)NonEmptyString custom scalar (#3124)IdentifierString custom scalar (#3125)IncludeExcludeFilterInput (#3127)_strArrayReplace and _strArrayReplaceMultiple from the PHP Functions via Schema extension (#3129)optionObjectValues (#3133)customPostType param on the updateCustomPost mutation optional (#3120)NonEmptyString for slug on custom post mutations (#3126)get_posts when passing many CPTs (#3128)Logger: logInfo and logError => log(severity: ...) (#3093)Logger service into Logger and SystemLogger (#3098)SUCCESS/INFO/WARNING/ERROR) in the logs (#3099)meta mutation input (#3088)NullableListValueJSONObject fails (#3083)meta input field to the createPage mutation (#3085)commitHash param (#3056)getCommentPostID to getCommentCustomPostID (#3073)_load_textdomain_just_in_time error message in WP 6.8 (#3084)customPost field as result of mutation (#3087)DangerouslyNonSpecificScalar instead of AnyScalarScalar type for metaValue field, to allow retrieving lists (eg: for ACF) (#3080)meta: ListValueJSONObject! and metaKeys: [String!]! for types Comment/CustomPost/TaxonomyTerm/User (#3060)ListValueJSONObject (#3060)_objectRecursiveReplace, from the Schema Functions extension (#3074)metaValue handle any scalar type (previously only String) (#3061)metaValues handle any scalar type (previously only built-in ones), such as JSONObject (#3061)post CPT to updatePost will show an error (#3070)_objectMerge, from the Schema Functions extension (#3050)password type in multi-inputs in Settings (#3047)password type to activate extensions in Settings (#3048)template_include can receive null values (error may happen when WooCommerce is installed) (#3049)changelogURL for the extensions, to show the new version's changelog when updating them (#3042)"0000-00-00 00:00:00", then use the non-GMT date (#3041)date input on custom post mutations (createPost, updatePost, createCustomPost, and updateCustomPost) (#3036)gmtDate input on custom post mutations (createPost, updatePost, createCustomPost, and updateCustomPost) (#3038)DateTimeInterface (for PHP 7.2) (#3037)_warn field and @warn directive (#3034)_generateRandomString in the Helper Function Collection extension (#3027)_generateRandomString@strTranslate(to:)_arrayEncodeAsJSONString and _objectEncodeAsJSONString (#3013)_arrayOfJSONObjectsExtractPropertiesAndConvertToObject (#3018)private (#3019)_arrayEncodeAsJSONString and _objectEncodeAsJSONString_arrayOfJSONObjectsExtractPropertiesAndConvertToObject@strTranslate directive send not more than 128 strings to translatevalidateDirectiveArgValue, passing the $directiveArgs param when validating a single directive arg (#2989)assertIsValid non-nullable (#2998)StringListValueJSONObject (#2991)@required attribute disregarded) (#3009)assertCommercialLicenseHasBeenActivated (#2978)admin_init hook (#2974)_arrayFlattenplugin_action_links hook to allow standalone plugins to use it (#2971)flush_rewrite_rules only at the end (or CPTs are not loaded properly) (#2970)allowed_block_types_all to receive null (#2965)CACHE_DIR to CONTAINER_CACHE_DIR (#2923)auto-draft status (#2911)useGutenbergEditorWithCustomPostType (#2960)from email not provided in _sendEmail mutation, use the blog's admin emailisGutenbergEditorEnabled (#2801)isGutenbergEditorEnabled in predefined persisted queries (#2802)post_tag and category) (#2823)PostTag and PostCategory types (#2824)Root.tags/categories and CustomPost.tags/categories fields (#2827)featuredImage field on GenericCustomPost (#2806)blocks, blockDataItems, and blockFlattenedDataItems, avoid error when post has no content (#2814)attrs field when creating persisted query blocks (#3adde2e)assign_terms capability on setCategory and setTag mutations (#2772)Media.parentCustomPost (#2788)Root.updateMediaItem (#2790)add_attachment (#2796)@strQuoteRegex in predefined persisted queries (#2758)new and auto-draft old status in {$old_status}_to_{$new_status} hook (#1376)draft_to_publish, also trigger from new, auto-draft, pending, future, and private states_strQuoteRegex and directive @strQuoteRegex_arrayIntersect (#2735)_intSubstract to _intSubtract@intSubstract to @intSubtractpolylangEnabledLanguages to polylangLanguagespolylangLanguage, polylangDefaultLanguage and polylangLanguages return type PolylangLanguage instead of Stringlanguage to languageBy and polylangLanguage to polylangLanguageBy_arrayIntersectsiteURL field (#2697)_strRegexFindMatches (#2708)$translateFromLanguage, $includeLanguagesToTranslate and $excludeLanguagesToTranslate to persisted queries (#2694 / #2700):IntValueJSONObject (#2703)IDValueJSONObject (#2704)valueWhenNonExistingKeyOrPath to field _objectPropertycreateMediaItem when filename has more then one dot_strBase64Encode (#2673)GenericCustomPost.update, Root.updateCustomPost and Root.createCustomPost (#2663)GenericCategory.taxonomy and GenericTag.taxonomy (#2666)@export(as: $someVar) (#2661)blocks field to work with WordPress 6.5 (#2657)_arrayFlipToObject and _objectIntersectKey from the PHP Functions via Schema extension_arrayOfJSONObjectsExtractProperty from the Helper Function Collection extensioncreateMediaItemmyMediaItemCount, myMediaItems and myMediaItem_dataMatrixOutputAsCSV from the Helper Function Collection extensionvalidateFieldArgValue method receives extra argument $fieldArgsGET variables when executing Persisted Queries via POSTXML scalar type_strDecodeXMLAsJSON from the Helper Function Collection extension_strParseCSV from the Helper Function Collection extensionfailIfNonExistingKeyOrPath: false when selecting a block's attributes.{something} property (as it may sometimes not be defined)any to select the postreset method was called on a non array)AnyStringScalar wildcard scalar typeAnyScalar_arrayGenerateAllCombinationsOfItems from the "Helper Function Collection" extensionmysite.com with the site domainoperationName param can be obtained from the URL even when doing POSTString in fields Root.optionValue and WithMeta.metaValue