Frequently Asked Questions
Can I use WPGraphQL with xx JavaScript framework?
Yes! WPGraphQL works with any client that can make HTTP requests to the GraphQL endpoint. It integrates seamlessly with frameworks like Next.js, Gatsby, Astro, and more.
How does WPGraphQL handle privacy and telemetry?
WPGraphQL uses the Appsero SDK to collect telemetry data only after user consent. This helps improve the plugin while respecting user privacy.
How is WPGraphQL funded?
WPGraphQL is free and open-source. It is supported by contributors, backers, and sponsors, including Automattic, which provides significant support as WPGraphQL becomes a Canonical Plugin.
Learn more about supporting WPGraphQL on Open Collective.
Where can I get support?
You can join the WPGraphQL Discord community for support, discussions, and announcements.
Changelog
2.5.4
New Features
- feat: refactor experiment registry for better testability (https://github.com/jasonbahl/automation-tests/pull/3453)
Other Changes
- release: next version 📦 (https://github.com/jasonbahl/automation-tests/pull/3452)
- ci: replace custom docker with wp-env (https://github.com/jasonbahl/automation-tests/pull/3451)
2.5.3
Other Changes
- fix(#3438, #1999): Media item privacy inheritance and attachment status queries (https://github.com/jasonbahl/automation-tests/pull/3444)
- chore: cleanup orphaned files and configs (https://github.com/jasonbahl/automation-tests/pull/3442)
2.5.2
Bug Fixes
- fix: Prevent fatal error when updating options via /wp-admin/options.php (https://github.com/jasonbahl/automation-tests/pull/3440)
2.5.1
Bug Fixes
- fix: Add fallback sizes to MediaItemSizeEnum when intermediate sizes are disabled (https://github.com/jasonbahl/automation-tests/pull/3433)
2.5.0
Note: Version 2.4.0 was skipped due to an issue with the release automation workflow where the version was bumped twice (once manually and once by the workflow). The fixes included in this release were originally intended for v2.4.0, but to maintain consistency with the WordPress.org deployment, we're releasing as v2.5.0 instead. The workflow has been updated to prevent this issue in future releases.
New Features
- feat: Implement WPGraphQL Experiments API (https://github.com/jasonbahl/automation-tests/pull/3428)
- feat: Add namespaced get/set API to AppContext (with deprecation for dynamic properties) (https://github.com/jasonbahl/automation-tests/pull/3429)
Bug Fixes
- fix: Release Workflow Version Skipping Issue (https://github.com/jasonbahl/automation-tests/pull/3426)
- fix: use get_query_args and merge args instead of override via set_query_arg (https://github.com/jasonbahl/automation-tests/pull/3424)
2.3.8
New Features
- feat: Implement WPGraphQL Experiments API (https://github.com/jasonbahl/automation-tests/pull/3428)
- feat: Add namespaced get/set API to AppContext (with deprecation for dynamic properties) (https://github.com/jasonbahl/automation-tests/pull/3429)
Bug Fixes
- fix: Release Workflow Version Skipping Issue (https://github.com/jasonbahl/automation-tests/pull/3426)
- fix: use get_query_args and merge args instead of override via set_query_arg (https://github.com/jasonbahl/automation-tests/pull/3424)
2.3.7
Bug Fixes
- fix: Prevent bad string injection in plugin update message (#3318) (https://github.com/jasonbahl/automation-tests/pull/3419)
2.3.6
Bug Fixes
- fix: update failing e2e tests for graphiql (https://github.com/jasonbahl/automation-tests/pull/3414)
- fix: Prevent printed scripts from breaking GraphQL responses (https://github.com/jasonbahl/automation-tests/pull/3413)
- fix: prevent changeset deletions from being synced back to develop (https://github.com/jasonbahl/automation-tests/pull/3412)
- fix: wp 6.8 test failures (https://github.com/jasonbahl/automation-tests/pull/3410)
- fix: Move graphql_root_value filter execution to runtime for access to request params (https://github.com/jasonbahl/automation-tests/pull/3406)
- fix: make void and call on (https://github.com/jasonbahl/automation-tests/pull/3371)
Other Changes
- chore: update npm deps (https://github.com/jasonbahl/automation-tests/pull/3408)
- chore: update composer deps (https://github.com/jasonbahl/automation-tests/pull/3407)
- refactor: prepare deprecations for v3 removal (https://github.com/jasonbahl/automation-tests/pull/3400)
2.3.5
Bug Fixes
- fix: prevent changeset deletions from being synced back to develop (https://github.com/jasonbahl/automation-tests/pull/3412)
- fix: wp 6.8 test failures (https://github.com/jasonbahl/automation-tests/pull/3410)
- fix: Move graphql_root_value filter execution to runtime for access to request params (https://github.com/jasonbahl/automation-tests/pull/3406)
Other Changes
- chore: update npm deps (https://github.com/jasonbahl/automation-tests/pull/3408)
- chore: update composer deps (https://github.com/jasonbahl/automation-tests/pull/3407)
- refactor: prepare deprecations for v3 removal (https://github.com/jasonbahl/automation-tests/pull/3400)
2.3.4
Bug Fixes
- fix: make void and call on (https://github.com/jasonbahl/automation-tests/pull/3371)
2.3.3
Bug Fixes
- fix: update skipped since tags (https://github.com/jasonbahl/automation-tests/pull/3372)
- fix: check for preloaded AppContext::get_loader() (https://github.com/jasonbahl/automation-tests/pull/3384)
- fix: cleanup logic (https://github.com/jasonbahl/automation-tests/pull/3383)
Other Changes
- chore: improve type safety of and schema registration (https://github.com/jasonbahl/automation-tests/pull/3382)
- refactor: cleanup class to reduce complexity and improve type safety (https://github.com/jasonbahl/automation-tests/pull/3381)
- perf: refactor to lazy-load dataloaders (https://github.com/jasonbahl/automation-tests/pull/3380)
- chore: update Composer dev-deps and PHPCs ruleset (https://github.com/jasonbahl/automation-tests/pull/3379)
- chore: expose array shape for (https://github.com/jasonbahl/automation-tests/pull/3374)
- chore: expose array shapes for register_graphql_enum_type() (https://github.com/jasonbahl/automation-tests/pull/3373)
- chore: narrow/fix php types on WPGraphQL, Server, Utils namespaces (https://github.com/jasonbahl/automation-tests/pull/3368)
2.3.2
Other Changes
- chore: improve type safety of and schema registration (https://github.com/jasonbahl/automation-tests/pull/3382)
- refactor: cleanup class to reduce complexity and improve type safety (https://github.com/jasonbahl/automation-tests/pull/3381)
- perf: refactor to lazy-load dataloaders (https://github.com/jasonbahl/automation-tests/pull/3380)
- chore: update Composer dev-deps and PHPCs ruleset (https://github.com/jasonbahl/automation-tests/pull/3379)
2.3.1
Other Changes
- chore: expose array shape for (https://github.com/jasonbahl/automation-tests/pull/3374)
- chore: expose array shapes for register_graphql_enum_type() (https://github.com/jasonbahl/automation-tests/pull/3373)
- chore: narrow/fix php types on WPGraphQL, Server, Utils namespaces (https://github.com/jasonbahl/automation-tests/pull/3368)
2.3.0
New Features
- feat: lazy loading fields for Object Types and Interface Types (https://github.com/jasonbahl/automation-tests/pull/3356)
- feat: Update Enum Type descriptions (https://github.com/jasonbahl/automation-tests/pull/3355)
Bug Fixes
- fix: don't initialize twice in class constructor (https://github.com/jasonbahl/automation-tests/pull/3369)
- fix: cleanup Model fields for better source-of-truth and type-safety. (https://github.com/jasonbahl/automation-tests/pull/3363)
- fix: bump and remove 7.3 references (https://github.com/jasonbahl/automation-tests/pull/3360)
Other Changes
- chore: improve type-safety for class (https://github.com/jasonbahl/automation-tests/pull/3367)
- chore: add array shapes to and (https://github.com/jasonbahl/automation-tests/pull/3366)
- chore: inline (non-breaking) native return types (https://github.com/jasonbahl/automation-tests/pull/3362)
- chore: implement array shapes for (https://github.com/jasonbahl/automation-tests/pull/3364)
- chore: Test compatibility with WordPress 6.8 (https://github.com/jasonbahl/automation-tests/pull/3361)
- ci: trigger Codeception workflow more often (https://github.com/jasonbahl/automation-tests/pull/3359)
- chore: Update Composer deps (https://github.com/jasonbahl/automation-tests/pull/3358)
2.2.0
New Features
- feat: add support for graphql_description on register_post_type and register_taxonomy (https://github.com/jasonbahl/automation-tests/pull/3346)
Other Changes
- chore: update placeholder that didn't properly get replaced during release (https://github.com/jasonbahl/automation-tests/pull/3349)
- chore: update interface descriptions (https://github.com/jasonbahl/automation-tests/pull/3347)
2.1.1
Bug Fixes
- fix: Avoid the deprecation warning when sending null header values (https://github.com/jasonbahl/automation-tests/pull/3338)
Other Changes
- chore: update README's for github workflows (https://github.com/jasonbahl/automation-tests/pull/3343)
- chore: update cursor rules to use .cursor/rules instead of .cursorrules (https://github.com/jasonbahl/automation-tests/pull/3333)
- chore: add WPGraphQL IDE to the extensions page (https://github.com/jasonbahl/automation-tests/pull/3332)
2.1.0
New Features
-
#3320: feat: add filter to Request::is_valid_http_content_type to allow for custom content types with POST method requests
Chores / Bugfixes -
#3314: fix: use version_compare to simplify incompatible dependent check
-
#3316: docs: update changelog and upgrade notice
-
#3325: docs: update quick-start.md
-
#3190: docs: add developer docs for
AbstractConnectionResolver
2.0.0
BREAKING CHANGE UPDATE
This is a major update that drops support for PHP versions below 7.4 and WordPress versions below 6.0.
We've written more about the update here:
- https://www.wpgraphql.com/2024/12/16/wpgraphql-v2-0-is-coming-heres-what-you-need-to-know
- https://www.wpgraphql.com/2024/12/16/wpgraphql-v2-0-technical-update-breaking-changes
1.32.1
Chores / Bugfixes
- #3308: fix: update term mutation was preventing terms from removing the parentId
1.32.0
New Features
- #3294: feat: introduce new fields for getting mediaItem files and filePaths
Chores / Bugfixes
- update stable tag
1.31.0
New Features
- #3278: feat: add option to provide custom file path for static schemas when using the
wp graphql generate-static-schemacommand
Chores / Bugfixes
- #3284: fix: fix: Updated docs link for example of hierarchical data
- #3283: fix: Error in update checker when WPGraphQL is active as an mu-plugin
- #3293: fix: correct the resolver for the MediaDetails.file field to return the file name
- #3299: chore: restore excluded PHPCS rules
- #3301: fix: React backwards-compatibility with WP < 6.6
- #3302: chore: update NPM dependencies
- #3297: fix: typo in
Extensions\Registry\get_extensions()method name - #3303: chore: cleanup git cache
- #3298: chore: submit GF, Rank Math, and Headless Login plugins
- #3287: chore: fixes the syntax of the readme.txt so that the short description is shown on WordPress.org
- #3284: fix: Updated docs link for example of hierarchical data
1.30.0
Chores / Bugfixes
- #3250: fix: receiving post for Incorrect uri
- #3268: ci: trigger PR workflows on release/* branches
- #3267: chore: fix bleeding edge/deprecated PHPStan smells [first pass]
- #3270: build(deps): bump the npm_and_yarn group across 1 directory with 3 updates
- #3271: fix: default cat should not be added when other categories are added
New Features
- #3251: feat: implement SemVer-compliant update checker
- #3196: feat: expose EnqueuedAsset.group and EnqueuedScript.location to schema
- #3188: feat: Add WPGraphQL Extensions page to the WordPress admin
1.29.3
Chores / Bugfixes
- #3245: fix: update appsero/client to v2.0.4 to prevent conflicts with WP6.7
- #3243: chore: fix Composer autoloader for WPGraphQL.php
- #3242: chore: update Composer dev deps
- #3235: chore: general updates to README.md and readme.txt
- #3234: chore: update quick-start.md to provide more clarity around using wpackagist
1.29.2
Chores / Bugfixes
- fix: move assets/blueprint.json under .wordpress-org directory
1.29.1
Chores / Bugfixes
- #3226: chore: add blueprint.json so WPGraphQL can be demo'd with a live preview on WordPress.org
- #3218: docs: update upgrading.md to highlight how breaking change releases will be handled
- #3214: fix: lazy-resolve Post.sourceUrl and deprecate Post.sourceUrlsBySize
- #3224: chore(deps-dev): bump symfony/process from 5.4.40 to 5.4.46 in the composer group
- #3219: test: add tests for querying different sizes of media items
- #3229: fix: Deprecated null value warning in titleRendered callback
1.29.0
New Features
- #3208: feat: expose commenter edge fields
- #3207: feat: introduce get_graphql_admin_notices and convert AdminNotices class to a singleton
Chores / Bugfixes
- #3213: chore(deps): bump the npm_and_yarn group across 1 directory with 4 updates
- #3212: chore(deps): bump dset from 3.1.3 to 3.1.4 in the npm_and_yarn group across 1 directory
- #3211: chore: add LABELS.md
- #3201: fix: ensure connectedTerms returns terms for the specified taxonomy only
- #3199: chore(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates
1.28.1
Chores / Bugfixes
- #3189: fix: [regression] missing placeholder in $wpdb->prepare() call
1.28.0
Upgrade Notice
This release contains an internal refactor for how the Type Registry is generated which should lead to significant performance improvements for most users. While there is no known breaking changes, because this change impacts every user we highly recommend testing this release thoroughly on staging servers to ensure the changes don't negatively impact your projects.
New Features
- #3172: feat: only
eagerlyLoadTypeon introspection requests.
Chores / Bugfixes
- #3181: ci: replace
docker-composecommands withdocker compose - #3182: ci: test against WP 6.6
- #3183: fix: improve performance of SQL query in the user loader
1.27.2
Chores / Bugfixes
- #3167: fix: missing .svg causing admin_menu not to be registered
1.27.1
Chores / Bugfixes
- #3066: fix: merge query arg arrays instead of overriding.
- #3151: fix: update dev-deps and fix
WPGraphQL::get_static_schema() - #3152: fix: handle regression when implementing interface with identical args.
- #3153: chore(deps-dev): bump composer/composer from 2.7.6 to 2.7.7 in the composer group across 1 directory
- #3155: chore(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates
- #3160: chore: Update branding assets
- #3162: fix: set_query_arg should not merge args
1.27.0
New Features
- #3143: feat: Enhance tab state management with query arguments and localStorage fallback
Chores / Bugfixes
- #3139: fix:
$settings_fieldsparam on "graphql_get_setting_section_field_value" filter not passing the correct type - #3137: fix: WPGraphQL Settings page fails to load when "graphiql_enabled" setting is "off"
- #3133: build: clean up dist
- #3146: test: add e2e test coverage for tabs in the settings page
1.26.0
New Features
- #3125: refactor: improve query handling in AbstractConnectionResolver
- new:
graphql_connection_pre_get_queryfilter - new:
AbstractConnectionResolver::is_valid_query_class() - new:
AbstractConnectionResolver::get_query() - new:
AbstractConnectionResolver::get_query_class() - new:
AsbtractConnectionResolver::query_class() - new:
AbstractConnectionResolver::$query_class
- new:
- #3124: refactor: split
AbstractConnectionResolver::get_args()and::get_query_args()into::prepare_*()methods - #3123: refactor: split
AbstractConnectionResolver::get_ids()into::prepare_ids() - #3121: refactor: split
AbstractConnectionResolver::get_nodes()andget_edges()intoprepare_*()methods - #3120: refactor: wrap
AbstractConnectionResolver::is_valid_model()in::get_is_valid_model()
Chores / Bugfixes
- #3125: refactor: improve query handling in AbstractConnectionResolver
- Implement PHPStan Generic Type
- Update generic Exceptions to InvariantViolation
- #3127: chore: update references to the WPGraphQL Slack Community to point to the new WPGraphQL Discord community instead.
- #3122: chore: relocate
AbstractConnectionResolver::is_valid_offset()with other abstract methods.
1.25.0
New Features
- #3104: feat: add
AbsractConnectionResolver::pre_should_execute(). Thanks @justlevine!
Chores / Bugfixes
- #3104: refactor:
AbstractConnectionResolver::should_execute()Thanks @justlevine! - #3112: fix: fixes a regression from v1.24.0 relating to field arguments defined on Interfaces not being properly merged onto Object Types that implement the interface. Thanks @kidunot89!
- #3114: fix: node IDs not showing in the Query Analyzer / X-GraphQL-Keys when using DataLoader->load_many()
- #3116: chore: Update WPGraphQLTestCase to v3. Thanks @kidunot89!
1.24.0
New Features
- #3084: perf: refactor PluginConnectionResolver to only fetch plugins once. Thanks @justlevine!
- #3088: refactor: improve loader handling in AbstractConnectionResolver. Thanks @justlevine!
- #3087: feat: improve query amount handling in AbstractConnectionResolver. Thanks @justlevine!
- #3086: refactor: add AbstractConnectionResolver::get_unfiltered_args() public getter. Thanks @justlevine!
- #3085: refactor: add AbstractConnectionResolver::prepare_page_info()and only instantiate once. Thanks @justlevine!
- #3083: refactor: deprecate camelCase methods in AbstractConnectionResolver for snake_case equivalents. Thanks @justlevine!
Chores / Bugfixes
- #3095: chore: lint for superfluous whitespace. Thanks @justlevine!
- #3100: fix: recursion issues with interfaces
- #3082: chore: prepare ConnectionResolver classes for v2 backport
1.23.0
New Features
- #3073: feat: expose
hasPasswordandpasswordfields on Post objects. Thanks @justlevine! - #3091: feat: introduce actions and filters for GraphQL Admin Notices
Chores / Bugfixes
- #3079: fix: GraphiQL IDE test failures
- #3084: perf: refactor PluginConnectionResolver to only fetch plugins once. Thanks @justlevine!
- #3092: ci: test against wp 6.5
- #3093: ci: Update actions in GitHub workflows and cleanup. Thanks @justlevine!
- #3093: chore: update Composer dev-deps and lint. Thanks @justlevine!
1.22.1
Chores / Bugfixes
- #3067: fix: respect show avatar setting
- #3063: fix: fixes a bug in cursor stability filters that could lead to empty order
- #3070: test(3063): Adds test for #3063
1.22.0
New Features
- #3044: feat: add
graphql_pre_resolve_menu_item_connected_nodefilter - #3039: feat: add
UniformResourceIdentifiableinterface toCommenttype - #3020: feat: introduce
graphql_query_analyzer_get_headersfilter
Chores / Bugfixes
- #3062: ci: pin wp-browser to "<3.5" to allow automated tests to run properly
- #3057: fix:
admin_enqueue_scriptscallback should expect a possiblenullvalue passed to it - #3048: fix:
isPostsPageon content type - #3043: fix: return empty when filtering
menuItemsby a location with no assigned items - #3045: fix:
UsersConnectionSearchColumnEnumvalues should be prefixed withuser_
1.21.0
New Features
- #3035: feat: provide better error when field references a type that does not exist
- #3027: feat: Add register_graphql_admin_notice API and intial use to inform users of the new WPGraphQL for ACF plugin
Chores / Bugfixes
- #3038: chore(deps-dev): bump the composer group across 1 directories with 1 update. Thanks @dependabot!
- #3033: fix: php deprecation error for dynamic properties on AppContext class
- #3031: fix(graphiql): Allow GraphiQL to run even if a valid schema cannot be returned. Thanks @linucks!
1.20.0
New Features
- #3013: feat: output GRAPHQL_DEBUG message if requested amount is larger than connection limit. Thanks @justlevine!
- #3008: perf: Expose graphql_should_analyze_queries as setting. Thanks @justlevine!
Chores / Bugfixes
- #3022: chore: add @justlevine to list of contributors! 🙌 🥳
- #3011: chore: update composer dev-dependencies and use php-compatibility:develop branch to 8.0+ lints. Thanks @justlevine!
- #3010: chore: implement stricter PHPDoc types. Thanks @justlevine!
- #3009: chore: implement stricter PHPStan config and clean up unnecessary type-guards. Thanks @justlevine!
- #3007: fix: call html_entity_decode() with explicit flags and decode single-quotes. Thanks @justlevine!
- #3006: fix: replace deprecated AbstractConnectionResolver::setQueryArg() call with ::set_query_arg(). Thanks @justlevine!
- #3004: docs: Update using-data-from-custom-database-tables.md
- #2998: docs: Update build-your-first-wpgraphql-extension.md. Thanks @Jacob-Daniel!
- #2997: docs: update wpgraphql-concepts.md. Thanks @Jacob-Daniel!
- #2996: fix: Field id duplicates uri field description. Thanks @marcinkrzeminski!
View Full Changelog: https://github.com/wp-graphql/wp-graphql/blob/develop/CHANGELOG.md
Upgrade Notice
1.10.0
PR (#2490) fixes a bug that some users were
using as a feature.
When a page is marked as the "Posts Page" WordPress does not resolve that page by URI, and this
bugfix no longer will resolve that page by URI.
You can read more
about why this change was made and find a snippet of code that will bring the old functionality back
if you've built features around it.
1.12.0
This release removes the ContentNode and DatabaseIdentifier interfaces from the NodeWithFeaturedImage Interface.
This is considered a breaking change for client applications using a ...on NodeWithFeaturedImage fragment that reference fields applied by those interfaces. If you have client applications doing this (or are unsure if you do) you can use the following filter to bring back the previous behavior:
add_filter( 'graphql_wp_interface_type_config', function( $config ) { if ( $config['name'] === 'NodeWithFeaturedImage' ) { $config['interfaces'][] = 'ContentNode'; $config['interfaces'][] = 'DatabaseIdentifier'; } return $config; }, 10, 1 );
1.13.0
The ContentRevisionUnion Union has been removed, and the RootQuery.revisions and User.revisions connections that used to resolve to this Type now resolve to the ContentNode Interface type.
This is technically a Schema Breaking change, however the behavior for most users querying these fields should remain the same.
For example, this query worked before, and still works now:
{
viewer {
revisions {
nodes {
__typename
... on Post {
id
uri
isRevision
}
... on Page {
id
uri
isRevision
}
}
}
}
revisions {
nodes {
__typename
... on Post {
id
uri
isRevision
}
... on Page {
id
uri
isRevision
}
}
}
}If you were using a fragment to reference: ...on UserToContentRevisionUnionConnection or ...on RootQueryToContentRevisionUnionConnection you would need to update those references to ...on UserToRevisionsConnection and ...on RootQueryToRevisionsConnection respectively.
1.14.6
This release includes a security patch. It's recommended to update as soon as possible.
If you're unable to update to the latest version, we have a snippet you can add to your site.
You can read more about it here: GHSA-cfh4-7wq9-6pgg
1.16.0
WPGraphQL Smart Cache
For WPGraphQL Smart Cache users, you should update WPGraphQL Smart Cache to v1.2.0 when updating
WPGraphQL to v1.16.0 to ensure caches continue to purge as expected.
Cursor Pagination Updates
This version fixes some behaviors of Cursor Pagination which may lead to behavior changes in your application.
As with any release, we recommend you test in staging environments. For this release, specifically any
queries you have using pagination arguments (first, last, after, before).
1.2.0
Composer dependencies are no longer versioned in Github. Recommended install source is WordPress.org or using Composer to get the code from Packagist.org or WPackagist.org.
1.24.0
The AbstractConnectionResolver has undergone some refactoring. Some methods using snakeCase have been deprecated in favor of their camel_case equivalent. While we've preserved the deprecated methods to prevent breaking changes, you might begin seeing PHP notices about the deprecations. Any plugin that extends the AbstractConnectionResolver should update the following methods:
getSource->get_sourcegetContext->get_contextgetInfo->get_infogetShouldExecute->get_should_executegetLoader->getLoader
1.25.0
This release includes a fix to a regression in the v1.24.0. Users impacted by the regression in 1.24.0 included, but are not necessarily limited to, users of the WPGraphQL for WooCommerce extension.
1.26.0
This release refactors some code in the AbstractConnectionResolver with an aim at making it more efficient and easier to extend. While we believe there are no breaking changes and have tested against popular extensions such as WPGraphQL Headless Login, WPGraphQL Gravity Forms, WPGraphQL Rank Math and others, we recommend running your own tests on a staging site to confirm that there are no regresssions caused by the refactoring.
1.28.0
This release contains an internal refactor for how the Type Registry is generated which should lead to significant performance improvements for most users.
While there are no intentional breaking changes, because this change impacts every user we highly recommend testing this release thoroughly on staging servers to ensure the changes don't negatively impact your projects.
1.30.0
This release includes a new feature to implement a SemVer-compliant update checker, which will prevent auto-updates for major releases that include breaking changes.
It also exposes the EnqueuedAsset.group and EnqueuedScript.location fields to the schema. Additionally, it adds a WPGraphQL Extensions page to the WordPress admin.
There are no known breaking changes in this release, however, we recommend testing on staging servers to ensure the changes don't negatively impact your projects.
1.32.0
In #3293 a bug was fixed in how the MediaDetails.file field resolves. The previous behavior was a bug, but might have been used as a feature. If you need the field to behave the same as it did prior to this bugfix, you can follow the instructions here to override the field's resolver to how it worked before.
1.4.0
The uri field was non-null on some Types in the Schema but has been changed to be nullable on all types that have it. This might require clients to update code to expect possible null values.
1.5.0
The MenuItem.path field was changed from non-null to nullable and some clients may need to make adjustments to support this.
1.6.7
There's been a bugfix in the Post Model layer which might break existing behaviors.
WordPress Post Type registry allows for a post_type to be registered as public (true or false)
and publicly_queryable (true or false).
WPGraphQL's Model Layer was allowing published content of any post_type to be exposed publicly. This
change better respects the public and publicly_queryable properties of post types better.
Now, if a post_type is public=>true, published content of that post_type can be queried by public
WPGraphQL requests.
If a post_type is set to public=>false, then we fallback to the publicly_queryable property.
If a post_type is set to publicly_queryable => true, then published content of the Post Type can
be queried in WPGraphQL by public users.
If both public=>false and publicly_queryable is false or not defined, then the content of the
post_type will only be accessible via authenticated queries by users with proper capabilities to
access the post_type.
Possible Action: You might need to adjust your post_type registration to better reflect your intent.
public=>true: The entries in the post_type will be public in WPGraphQL and will have a public
URI in WordPress.public=>false, publicly_queryable=>true: The entries in the post_type will be public in WPGraphQL,
but will not have individually respected URI from WordPress, and can not be queried by URI in WPGraphQL.public=>false,publicly_queryable=>false: The entries in the post_type will only be accessible in
WPGraphQL by authenticated requests for users with proper capabilities to interact with the post_type.
1.9.0
There are 2 changes that might require action when updating to 1.9.0.
- (#2464)
When querying for a nodeByUri, if your site has the "page_for_posts" setting configured, the behavior of the nodeByUri query for that uri might be different for you.
Previously a bug caused this query to return a "Page" type, when it should have returned a "ContentType" Type.
The bug fix might change your application if you were using the bug as a feature.
- (#2457)
There were a lot of bug fixes related to connections to ensure they behave as intended. If you were querying lists of data, in some cases the data might be returned in a different order than it was before.
For example, using the "last" input on a Comment or User query should still return the same nodes, but in a different order than before.
This might cause behavior you don't want in your application because you had coded around the bug. This change was needed to support proper backward pagination.
2.0.0
BREAKING CHANGE UPDATE
This is a major update that drops support for PHP versions below 7.4 and WordPress versions below 6.0.
We've written more about the update here:
- https://www.wpgraphql.com/2024/12/16/wpgraphql-v2-0-is-coming-heres-what-you-need-to-know
- https://www.wpgraphql.com/2024/12/16/wpgraphql-v2-0-technical-update-breaking-changes
2.6.0
New Features
- feat: refactor experiment registry for better testability (https://github.com/jasonbahl/automation-tests/pull/3453)
Other Changes
- ci: optimize CI matrix with minimal/full modes (https://github.com/jasonbahl/automation-tests/pull/3465)
- ci: evaluate Codecov alongside Coveralls for code coverage (https://github.com/jasonbahl/automation-tests/pull/3463)
- ci: gitignore build directory and improve asset loading (https://github.com/jasonbahl/automation-tests/pull/3461)
- test: only apply URL rewriting for Codeception tests, not Playwright e2e (https://github.com/jasonbahl/automation-tests/pull/3460)
- test: bump Codeception to v3.7 (https://github.com/jasonbahl/automation-tests/pull/3456)
- chore: update node, npm, and composer deps (https://github.com/jasonbahl/automation-tests/pull/3454)
- ci: replace custom docker with wp-env (https://github.com/jasonbahl/automation-tests/pull/3451)
Privacy Policy
WPGraphQL uses Appsero SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster and make product improvements.
Appsero SDK does not gather any data by default. The SDK starts gathering basic telemetry data only when a user allows it via the admin notice.
Learn more about how Appsero collects and uses this data.
Learn more about how Appsero collects and uses this data.