تفصیل
WPGraphQL is a free, open-source WordPress plugin that provides an extendable GraphQL schema and API for any WordPress site.
Get Started
- Install WPGraphQL:
wp plugin install wp-graphql --activate
- Try it out: Live Demo
- Read the Quick Start Guide.
- Join the Community on Discord and Star the Repo!
Key Features
- Flexible API: Query posts, pages, custom post types, taxonomies, users, and more.
- Extendable Schema: Easily add functionality with WPGraphQL’s API, enabling custom integrations.
- Compatible with Modern Frameworks: Works seamlessly with Next.js, Astro, SvelteKit, and more.
- Optimized Performance: Fetch exactly the data you need in a single query. Boost performance with WPGraphQL Smart Cache.
WPGraphQL is becoming a Canonical Plugin on WordPress.org, ensuring long-term support and a growing community of users and contributors.
Upgrading
It is recommended that anytime you want to update WPGraphQL that you get familiar with what’s changed in the release.
WPGraphQL publishes release notes on Github.
WPGraphQL has been following Semver practices for a few years. We will continue to follow Semver and let version numbers communicate meaning. The summary of Semver versioning is as follows:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
You can read more about the details of Semver at semver.org
Short Description
WPGraphQL adds a flexible and powerful GraphQL API to WordPress, enabling efficient querying and interaction with your site’s data.
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.
سکرین شاٹاں
ہرہک دے سوال
-
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.
-
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.
-
Where can I get support?
-
You can join the WPGraphQL Discord community for support, discussions, and announcements.
-
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.
ریویو
Contributors & Developers
“WPGraphQL” is open source software. The following people have contributed to this plugin.
حصہ پاوݨ آلے“WPGraphQL” دا آپݨی زبان وچ ترجمہ کرو۔
ڈیویلپمنٹ وچ دلچسپی ہے؟
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
تبدیلی لاگ
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
eagerlyLoadType
on introspection requests.
Chores / Bugfixes
- #3181: ci: replace
docker-compose
commands 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_fields
param 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_query
filter - 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
hasPassword
andpassword
fields 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_node
filter - #3039: feat: add
UniformResourceIdentifiable
interface toComment
type - #3020: feat: introduce
graphql_query_analyzer_get_headers
filter
Chores / Bugfixes
- #3062: ci: pin wp-browser to “<3.5” to allow automated tests to run properly
- #3057: fix:
admin_enqueue_scripts
callback should expect a possiblenull
value passed to it - #3048: fix:
isPostsPage
on content type - #3043: fix: return empty when filtering
menuItems
by a location with no assigned items - #3045: fix:
UsersConnectionSearchColumnEnum
values 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