Title: WPGraphQL
Author: Jason Bahl
Published: <strong>11 сар 14, 2020</strong>
Last modified: 3 сар 18, 2026

---

Search plugins

![](https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=3111985)

![](https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=3111985)

# WPGraphQL

 By [Jason Bahl](https://profiles.wordpress.org/jasonbahl/)

[Download](https://downloads.wordpress.org/plugin/wp-graphql.2.10.1.zip)

[Live Preview](https://mn.wordpress.org/plugins/wp-graphql/?preview=1)

 * [Details](https://mn.wordpress.org/plugins/wp-graphql/#description)
 * [Reviews](https://mn.wordpress.org/plugins/wp-graphql/#reviews)
 * [Development](https://mn.wordpress.org/plugins/wp-graphql/#developers)

 [Support](https://wordpress.org/support/plugin/wp-graphql/)

## Description

WPGraphQL is a free, open-source WordPress plugin that provides an extendable GraphQL
schema and API for any WordPress site.

**Get Started**

 1. Install WPGraphQL: `wp plugin install wp-graphql --activate`
 2. Try it out: [Live Demo](https://repl.wpgraphql.com)
 3. Read the [Quick Start Guide](https://wpgraphql.com/docs/quick-start).
 4. Join the [Community on Discord](https://discord.gg/AGVBqqyaUY) and [Star the Repo](https://github.com/wp-graphql/wp-graphql)!

**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](https://vercel.com/guides/wordpress-with-vercel),
   [Astro](https://docs.astro.build/en/guides/cms/wordpress/), [SvelteKit](https://www.okupter.com/blog/headless-wordpress-graphql-sveltekit),
   and more.
 * **Optimized Performance**: Fetch exactly the data you need in a single query.
   Boost performance with [WPGraphQL Smart Cache](https://github.com/wp-graphql/wp-graphql/tree/main/plugins/wp-graphql-smart-cache).

WPGraphQL is becoming a [Canonical Plugin](https://wordpress.org/news/2024/10/wpgraphql/)
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](https://github.com/wp-graphql/wp-graphql/releases).

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

### Privacy Policy

WPGraphQL uses [Appsero](https://appsero.com) 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](https://appsero.com/privacy-policy/).

Learn more about how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).

## Screenshots

 * [[
 * [[

## FAQ

### 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](https://opencollective.com/wp-graphql).

### 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](https://vercel.com/guides/wordpress-with-vercel),
[Gatsby](https://gatsbyjs.com), [Astro](https://docs.astro.build/en/guides/cms/wordpress/),
and more.

### Where can I get support?

You can join the WPGraphQL [Discord community](https://discord.gg/AGVBqqyaUY) for
support, discussions, and announcements.

### How does WPGraphQL handle privacy and telemetry?

WPGraphQL uses the [Appsero SDK](https://appsero.com/privacy-policy) to collect 
telemetry data **only after user consent**. This helps improve the plugin while 
respecting user privacy.

## Reviews

![](https://secure.gravatar.com/avatar/02a76d95b36cbc866cf2652b1a0739943346028e0564ba8735ed59744c41cfe7?
s=60&d=retro&r=g)

### 󠀁[Speedy](https://wordpress.org/support/topic/speedy-17/)󠁿

 [con](https://profiles.wordpress.org/conschneider/) 3 сар 26, 2025

GraphQL vs. REST API 10 : 0 Thank you for this plugin. Building my headless application
with WPGraphQL is fun. The repl interface to test queries is A+.

![](https://secure.gravatar.com/avatar/3168ee6eae340ca4a96c94efe8c2ed788e4787c98daec5f442c07aadfbf7d899?
s=60&d=retro&r=g)

### 󠀁[Performance performance performance](https://wordpress.org/support/topic/performance-performance-performance/)󠁿

 [psychosispicks](https://profiles.wordpress.org/psychosispicks/) 9 сар 7, 2023

I’m so glad I decided to transition to a headless WP, and WPGraphQL made this possible,
convenient and super fast.

![](https://secure.gravatar.com/avatar/acd1324f0b40dba22d7f0e6dcd13a7cba56e9c6aacd66f73e829d3acb4c28c26?
s=60&d=retro&r=g)

### 󠀁[Unreliable](https://wordpress.org/support/topic/unreliable-44/)󠁿

 [benknight](https://profiles.wordpress.org/benknight/) 5 сар 29, 2023 1 reply

I operate a large blog that uses WordPress as a headless CMS with a Next.JS frontend,
which is largely enabled by this plugin. Let me just say first that creating an 
entire alternative third-party data API is an ambitious undertaking and I appreciate
all the work the authors have put into it. But as a developer I have to throw out
a word of caution that this plugin often has major bugs that can have critical impact
on your production website. For example after a recent minor update we discovered
a bug where any URL with a special character in it started returning a 404, causing
several of our pages to suddenly become unavailable to users and delisted from Google,
and this went on for many months before we realized it. There have been many similar
instances. My general approach is to lean more on WordPress’s REST API over time
which is more reliable since it’s maintained by the WordPress team, and only use
WPGraphQL when it’s necessary. Also recommend turning off auto-updates and test 
your website extremely thoroughly after any upgrade.

![](https://secure.gravatar.com/avatar/48a7f4f320763869961fad5d20a07b8996259921c3bb7fab4b5a2d4f6914e844?
s=60&d=retro&r=g)

### 󠀁[Great! 10 stars if possible](https://wordpress.org/support/topic/great-10-stars-if-possible-2/)󠁿

 [chisnghiax](https://profiles.wordpress.org/chisnghiax/) 9 сар 7, 2022

Great!

![](https://secure.gravatar.com/avatar/76f1cb13f179e916222228b5452c294ab3d54740a875244305a8b09f3bcf6ea1?
s=60&d=retro&r=g)

### 󠀁[Great Plugin!](https://wordpress.org/support/topic/great-plugin-34916/)󠁿

 [2cubed](https://profiles.wordpress.org/2cubed/) 8 сар 26, 2022

One of the best plugins for WordPress. It’s right up there with ACF!

![](https://secure.gravatar.com/avatar/31a05155e279bd0f2b1f59c0768c20d89ff45c8461975a6a4f525377a912c3d2?
s=60&d=retro&r=g)

### 󠀁[Awesome, everybody should use it](https://wordpress.org/support/topic/awesome-everybody-should-use-it/)󠁿

 [mauretto1978](https://profiles.wordpress.org/mauretto1978/) 5 сар 31, 2022

Great plugin, everyone should use it. The IDE is a valuable plus, and it can be 
used to learn GraphQL from scratch. From the developer’s point of view, the plugin
is super easy to extend, thanks to the great documentation. Don’t forget to check
the official YouTube channel. If you need extra support for custom post types and
metas, I just released v1.0.70 of my plugin ACPT with full support to WPGraphQL.
Thank you so much John!

 [ Read all 48 reviews ](https://wordpress.org/support/plugin/wp-graphql/reviews/)

## Contributors & Developers

“WPGraphQL” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Jason Bahl ](https://profiles.wordpress.org/jasonbahl/)
 *   [ Tyler ](https://profiles.wordpress.org/tylerbarnes1/)
 *   [ Ryan Kanner ](https://profiles.wordpress.org/ryankanner/)
 *   [ Edwin Cromley ](https://profiles.wordpress.org/chopinbach/)
 *   [ Geoff Taylor ](https://profiles.wordpress.org/kidunot89/)
 *   [ David Levine ](https://profiles.wordpress.org/justlevine/)

[Translate “WPGraphQL” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-graphql)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-graphql/), check
out the [SVN repository](https://plugins.svn.wordpress.org/wp-graphql/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/wp-graphql/) by 
[RSS](https://plugins.trac.wordpress.org/log/wp-graphql/?limit=100&mode=stop_on_copy&format=rss).

## 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](https://github.com/wp-graphql/wp-graphql/pull/3320): feat: add filter
   to Request::is_valid_http_content_type to allow for custom content types with
   POST method requests
    **Chores / Bugfixes**
 * [#3314](https://github.com/wp-graphql/wp-graphql/pull/3314): fix: use version_compare
   to simplify incompatible dependent check
 * [#3316](https://github.com/wp-graphql/wp-graphql/pull/3316): docs: update changelog
   and upgrade notice
 * [#3325](https://github.com/wp-graphql/wp-graphql/pull/3325): docs: update quick-
   start.md
 * [#3190](https://github.com/wp-graphql/wp-graphql/pull/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](https://github.com/wp-graphql/wp-graphql/pull/3308): fix: update term
   mutation was preventing terms from removing the parentId

#### 1.32.0

**New Features**

 * [#3294](https://github.com/wp-graphql/wp-graphql/pull/3294): feat: introduce 
   new fields for getting mediaItem files and filePaths

**Chores / Bugfixes**

 * update stable tag

#### 1.31.0

**New Features**

 * [#3278](https://github.com/wp-graphql/wp-graphql/pull/3278): feat: add option
   to provide custom file path for static schemas when using the `wp graphql generate-
   static-schema` command

**Chores / Bugfixes**

 * [#3284](https://github.com/wp-graphql/wp-graphql/pull/3284): fix: fix: Updated
   docs link for example of hierarchical data
 * [#3283](https://github.com/wp-graphql/wp-graphql/pull/3283): fix: Error in update
   checker when WPGraphQL is active as an mu-plugin
 * [#3293](https://github.com/wp-graphql/wp-graphql/pull/3293): fix: correct the
   resolver for the MediaDetails.file field to return the file name
 * [#3299](https://github.com/wp-graphql/wp-graphql/pull/3299): chore: restore excluded
   PHPCS rules
 * [#3301](https://github.com/wp-graphql/wp-graphql/pull/3301): fix: React backwards-
   compatibility with WP < 6.6
 * [#3302](https://github.com/wp-graphql/wp-graphql/pull/3302): chore: update NPM
   dependencies
 * [#3297](https://github.com/wp-graphql/wp-graphql/pull/3297): fix: typo in `Extensions\
   Registry\get_extensions()` method name
 * [#3303](https://github.com/wp-graphql/wp-graphql/pull/3303): chore: cleanup git
   cache
 * [#3298](https://github.com/wp-graphql/wp-graphql/pull/3298): chore: submit GF,
   Rank Math, and Headless Login plugins
 * [#3287](https://github.com/wp-graphql/wp-graphql/pull/3287): chore: fixes the
   syntax of the readme.txt so that the short description is shown on WordPress.
   org
 * [#3284](https://github.com/wp-graphql/wp-graphql/pull/3284): fix: Updated docs
   link for example of hierarchical data

#### 1.30.0

**Chores / Bugfixes**

 * [#3250](https://github.com/wp-graphql/wp-graphql/pull/3250): fix: receiving post
   for Incorrect uri
 * [#3268](https://github.com/wp-graphql/wp-graphql/pull/3268): ci: trigger PR workflows
   on release/* branches
 * [#3267](https://github.com/wp-graphql/wp-graphql/pull/3267): chore: fix bleeding
   edge/deprecated PHPStan smells [first pass]
 * [#3270](https://github.com/wp-graphql/wp-graphql/pull/3270): build(deps): bump
   the npm_and_yarn group across 1 directory with 3 updates
 * [#3271](https://github.com/wp-graphql/wp-graphql/pull/3271): fix: default cat
   should not be added when other categories are added

**New Features**

 * [#3251](https://github.com/wp-graphql/wp-graphql/pull/3251): feat: implement 
   SemVer-compliant update checker
 * [#3196](https://github.com/wp-graphql/wp-graphql/pull/3196): feat: expose EnqueuedAsset.
   group and EnqueuedScript.location to schema
 * [#3188](https://github.com/wp-graphql/wp-graphql/pull/3188): feat: Add WPGraphQL
   Extensions page to the WordPress admin

#### 1.29.3

**Chores / Bugfixes**

 * [#3245](https://github.com/wp-graphql/wp-graphql/pull/3245): fix: update appsero/
   client to v2.0.4 to prevent conflicts with WP6.7
 * [#3243](https://github.com/wp-graphql/wp-graphql/pull/3243): chore: fix Composer
   autoloader for WPGraphQL.php
 * [#3242](https://github.com/wp-graphql/wp-graphql/pull/3242): chore: update Composer
   dev deps
 * [#3235](https://github.com/wp-graphql/wp-graphql/pull/3235): chore: general updates
   to README.md and readme.txt
 * [#3234](https://github.com/wp-graphql/wp-graphql/pull/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](https://github.com/wp-graphql/wp-graphql/pull/3226): chore: add blueprint.
   json so WPGraphQL can be demo’d with a live preview on WordPress.org
 * [#3218](https://github.com/wp-graphql/wp-graphql/pull/3218): docs: update upgrading.
   md to highlight how breaking change releases will be handled
 * [#3214](https://github.com/wp-graphql/wp-graphql/pull/3214): fix: lazy-resolve
   Post.sourceUrl and deprecate Post.sourceUrlsBySize
 * [#3224](https://github.com/wp-graphql/wp-graphql/pull/3224): chore(deps-dev):
   bump symfony/process from 5.4.40 to 5.4.46 in the composer group
 * [#3219](https://github.com/wp-graphql/wp-graphql/pull/3219): test: add tests 
   for querying different sizes of media items
 * [#3229](https://github.com/wp-graphql/wp-graphql/pull/3229): fix: Deprecated 
   null value warning in titleRendered callback

#### 1.29.0

**New Features**

 * [#3208](https://github.com/wp-graphql/wp-graphql/pull/3208): feat: expose commenter
   edge fields
 * [#3207](https://github.com/wp-graphql/wp-graphql/pull/3207): feat: introduce 
   get_graphql_admin_notices and convert AdminNotices class to a singleton

**Chores / Bugfixes**

 * [#3213](https://github.com/wp-graphql/wp-graphql/pull/3213): chore(deps): bump
   the npm_and_yarn group across 1 directory with 4 updates
 * [#3212](https://github.com/wp-graphql/wp-graphql/pull/3212): chore(deps): bump
   dset from 3.1.3 to 3.1.4 in the npm_and_yarn group across 1 directory
 * [#3211](https://github.com/wp-graphql/wp-graphql/pull/3211): chore: add LABELS.
   md
 * [#3201](https://github.com/wp-graphql/wp-graphql/pull/3201): fix: ensure connectedTerms
   returns terms for the specified taxonomy only
 * [#3199](https://github.com/wp-graphql/wp-graphql/pull/3199): chore(deps-dev):
   bump the npm_and_yarn group across 1 directory with 2 updates

#### 1.28.1

**Chores / Bugfixes**

 * [#3189](https://github.com/wp-graphql/wp-graphql/pull/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](https://github.com/wp-graphql/wp-graphql/pull/3172): feat: only `eagerlyLoadType`
   on introspection requests.

**Chores / Bugfixes**

 * [#3181](https://github.com/wp-graphql/wp-graphql/pull/3181): ci: replace `docker-
   compose` commands with `docker compose`
 * [#3182](https://github.com/wp-graphql/wp-graphql/pull/3182): ci: test against
   WP 6.6
 * [#3183](https://github.com/wp-graphql/wp-graphql/pull/3183): fix: improve performance
   of SQL query in the user loader

#### 1.27.2

**Chores / Bugfixes**

 * [#3167](https://github.com/wp-graphql/wp-graphql/pull/3167): fix: missing .svg
   causing admin_menu not to be registered

#### 1.27.1

**Chores / Bugfixes**

 * [#3066](https://github.com/wp-graphql/wp-graphql/pull/3066): fix: merge query
   arg arrays instead of overriding.
 * [#3151](https://github.com/wp-graphql/wp-graphql/pull/3151): fix: update dev-
   deps and fix `WPGraphQL::get_static_schema()`
 * [#3152](https://github.com/wp-graphql/wp-graphql/pull/3152): fix: handle regression
   when implementing interface with identical args.
 * [#3153](https://github.com/wp-graphql/wp-graphql/pull/3153): chore(deps-dev):
   bump composer/composer from 2.7.6 to 2.7.7 in the composer group across 1 directory
 * [#3155](https://github.com/wp-graphql/wp-graphql/pull/3155): chore(deps-dev):
   bump the npm_and_yarn group across 1 directory with 2 updates
 * [#3160](https://github.com/wp-graphql/wp-graphql/pull/3160): chore: Update branding
   assets
 * [#3162](https://github.com/wp-graphql/wp-graphql/pull/3162): fix: set_query_arg
   should not merge args

#### 1.27.0

**New Features**

 * [#3143](https://github.com/wp-graphql/wp-graphql/pull/3143): feat: Enhance tab
   state management with query arguments and localStorage fallback

**Chores / Bugfixes**

 * [#3139](https://github.com/wp-graphql/wp-graphql/pull/3139): fix: `$settings_fields`
   param on “graphql_get_setting_section_field_value” filter not passing the correct
   type
 * [#3137](https://github.com/wp-graphql/wp-graphql/pull/3137): fix: WPGraphQL Settings
   page fails to load when “graphiql_enabled” setting is “off”
 * [#3133](https://github.com/wp-graphql/wp-graphql/pull/3133): build: clean up 
   dist
 * [#3146](https://github.com/wp-graphql/wp-graphql/pull/3146): test: add e2e test
   coverage for tabs in the settings page

#### 1.26.0

**New Features**

 * [#3125](https://github.com/wp-graphql/wp-graphql/pull/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`
 * [#3124](https://github.com/wp-graphql/wp-graphql/pull/3124): refactor: split `
   AbstractConnectionResolver::get_args()` and `::get_query_args()` into `::prepare_*()`
   methods
 * [#3123](https://github.com/wp-graphql/wp-graphql/pull/3123): refactor: split `
   AbstractConnectionResolver::get_ids()` into `::prepare_ids()`
 * [#3121](https://github.com/wp-graphql/wp-graphql/pull/3121): refactor: split `
   AbstractConnectionResolver::get_nodes()` and `get_edges()` into `prepare_*()`
   methods
 * [#3120](https://github.com/wp-graphql/wp-graphql/pull/3120): refactor: wrap `
   AbstractConnectionResolver::is_valid_model()` in `::get_is_valid_model()`

**Chores / Bugfixes**

 * [#3125](https://github.com/wp-graphql/wp-graphql/pull/3125): refactor: improve
   query handling in AbstractConnectionResolver
    - Implement PHPStan Generic Type
    - Update generic Exceptions to InvariantViolation
 * [#3127](https://github.com/wp-graphql/wp-graphql/pull/3127): chore: update references
   to the WPGraphQL Slack Community to point to the new WPGraphQL Discord community
   instead.
 * [#3122](https://github.com/wp-graphql/wp-graphql/pull/3122): chore: relocate `
   AbstractConnectionResolver::is_valid_offset()` with other abstract methods.

#### 1.25.0

**New Features**

 * [#3104](https://github.com/wp-graphql/wp-graphql/pull/3104): feat: add `AbsractConnectionResolver::
   pre_should_execute()`. Thanks @justlevine!

**Chores / Bugfixes**
 – [#3104](https://github.com/wp-graphql/wp-graphql/pull/3104):
refactor: `AbstractConnectionResolver::should_execute()` Thanks @justlevine! – [#3112](https://github.com/wp-graphql/wp-graphql/pull/3104):
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](https://github.com/wp-graphql/wp-graphql/pull/3114): fix: 
node IDs not showing in the Query Analyzer / X-GraphQL-Keys when using DataLoader-
>load_many() – [#3116](https://github.com/wp-graphql/wp-graphql/pull/3116): chore:
Update WPGraphQLTestCase to v3. Thanks @kidunot89!

#### 1.24.0

**New Features**

 * [#3084](https://github.com/wp-graphql/wp-graphql/pull/3084): perf: refactor PluginConnectionResolver
   to only fetch plugins once. Thanks @justlevine!
 * [#3088](https://github.com/wp-graphql/wp-graphql/pull/3088): refactor: improve
   loader handling in AbstractConnectionResolver. Thanks @justlevine!
 * [#3087](https://github.com/wp-graphql/wp-graphql/pull/3087): feat: improve query
   amount handling in AbstractConnectionResolver. Thanks @justlevine!
 * [#3086](https://github.com/wp-graphql/wp-graphql/pull/3086): refactor: add AbstractConnectionResolver::
   get_unfiltered_args() public getter. Thanks @justlevine!
 * [#3085](https://github.com/wp-graphql/wp-graphql/pull/3085): refactor: add AbstractConnectionResolver::
   prepare_page_info()and only instantiate once. Thanks @justlevine!
 * [#3083](https://github.com/wp-graphql/wp-graphql/pull/3083): refactor: deprecate
   camelCase methods in AbstractConnectionResolver for snake_case equivalents. Thanks
   @justlevine!

**Chores / Bugfixes**

 * [#3095](https://github.com/wp-graphql/wp-graphql/pull/3095): chore: lint for 
   superfluous whitespace. Thanks @justlevine!
 * [#3100](https://github.com/wp-graphql/wp-graphql/pull/3100): fix: recursion issues
   with interfaces
 * [#3082](https://github.com/wp-graphql/wp-graphql/pull/3082): chore: prepare ConnectionResolver
   classes for v2 backport

#### 1.23.0

**New Features**

 * [#3073](https://github.com/wp-graphql/wp-graphql/pull/3073): feat: expose `hasPassword`
   and `password` fields on Post objects. Thanks @justlevine!
 * [#3091](https://github.com/wp-graphql/wp-graphql/pull/3091): feat: introduce 
   actions and filters for GraphQL Admin Notices

**Chores / Bugfixes**

 * [#3079](https://github.com/wp-graphql/wp-graphql/pull/3079): fix: GraphiQL IDE
   test failures
 * [#3084](https://github.com/wp-graphql/wp-graphql/pull/3084): perf: refactor PluginConnectionResolver
   to only fetch plugins once. Thanks @justlevine!
 * [#3092](https://github.com/wp-graphql/wp-graphql/pull/3092): ci: test against
   wp 6.5
 * [#3093](https://github.com/wp-graphql/wp-graphql/pull/3093): ci: Update actions
   in GitHub workflows and cleanup. Thanks @justlevine!
 * [#3093](https://github.com/wp-graphql/wp-graphql/pull/3093): chore: update Composer
   dev-deps and lint. Thanks @justlevine!

#### 1.22.1

**Chores / Bugfixes**

 * [#3067](https://github.com/wp-graphql/wp-graphql/pull/3067): fix: respect show
   avatar setting
 * [#3063](https://github.com/wp-graphql/wp-graphql/pull/3063): fix: fixes a bug
   in cursor stability filters that could lead to empty order
 * [#3070](https://github.com/wp-graphql/wp-graphql/pull/3070): test(3063): Adds
   test for [#3063](https://github.com/wp-graphql/wp-graphql/pull/3063)

#### 1.22.0

**New Features**

 * [#3044](https://github.com/wp-graphql/wp-graphql/pull/3044): feat: add `graphql_pre_resolve_menu_item_connected_node`
   filter
 * [#3039](https://github.com/wp-graphql/wp-graphql/pull/3043): feat: add `UniformResourceIdentifiable`
   interface to `Comment` type
 * [#3020](https://github.com/wp-graphql/wp-graphql/pull/3020): feat: introduce `
   graphql_query_analyzer_get_headers` filter

**Chores / Bugfixes**

 * [#3062](https://github.com/wp-graphql/wp-graphql/pull/3062): ci: pin wp-browser
   to “<3.5” to allow automated tests to run properly
 * [#3057](https://github.com/wp-graphql/wp-graphql/pull/3057): fix: `admin_enqueue_scripts`
   callback should expect a possible `null` value passed to it
 * [#3048](https://github.com/wp-graphql/wp-graphql/pull/3048): fix: `isPostsPage`
   on content type
 * [#3043](https://github.com/wp-graphql/wp-graphql/pull/3043): fix: return empty
   when filtering `menuItems` by a location with no assigned items
 * [#3045](https://github.com/wp-graphql/wp-graphql/pull/3045): fix: `UsersConnectionSearchColumnEnum`
   values should be prefixed with `user_`

#### 1.21.0

**New Features**

 * [#3035](https://github.com/wp-graphql/wp-graphql/pull/3035): feat: provide better
   error when field references a type that does not exist
 * [#3027](https://github.com/wp-graphql/wp-graphql/pull/3027): feat: Add register_graphql_admin_notice
   API and intial use to inform users of the new WPGraphQL for ACF plugin

**Chores / Bugfixes**

 * [#3038](https://github.com/wp-graphql/wp-graphql/pull/3038): chore(deps-dev):
   bump the composer group across 1 directories with 1 update. Thanks @dependabot!
 * [#3033](https://github.com/wp-graphql/wp-graphql/pull/3033): fix: php deprecation
   error for dynamic properties on AppContext class
 * [#3031](https://github.com/wp-graphql/wp-graphql/pull/3031): fix(graphiql): Allow
   GraphiQL to run even if a valid schema cannot be returned. Thanks @linucks!

#### 1.20.0

**New Features**

 * [#3013](https://github.com/wp-graphql/wp-graphql/pull/3013): feat: output GRAPHQL_DEBUG
   message if requested amount is larger than connection limit. Thanks @justlevine!
 * [#3008](https://github.com/wp-graphql/wp-graphql/pull/3008): perf: Expose graphql_should_analyze_queries
   as setting. Thanks @justlevine!

**Chores / Bugfixes**

 * [#3022](https://github.com/wp-graphql/wp-graphql/pull/3022): chore: add @justlevine
   to list of contributors! 🙌 🥳
 * [#3011](https://github.com/wp-graphql/wp-graphql/pull/3011): chore: update composer
   dev-dependencies and use php-compatibility:develop branch to 8.0+ lints. Thanks
   @justlevine!
 * [#3010](https://github.com/wp-graphql/wp-graphql/pull/3010): chore: implement
   stricter PHPDoc types. Thanks @justlevine!
 * [#3009](https://github.com/wp-graphql/wp-graphql/pull/3009): chore: implement
   stricter PHPStan config and clean up unnecessary type-guards. Thanks @justlevine!
 * [#3007](https://github.com/wp-graphql/wp-graphql/pull/3007): fix: call html_entity_decode()
   with explicit flags and decode single-quotes. Thanks @justlevine!
 * [#3006](https://github.com/wp-graphql/wp-graphql/pull/3006): fix: replace deprecated
   AbstractConnectionResolver::setQueryArg() call with ::set_query_arg(). Thanks
   @justlevine!
 * [#3004](https://github.com/wp-graphql/wp-graphql/pull/3004): docs: Update using-
   data-from-custom-database-tables.md
 * [#2998](https://github.com/wp-graphql/wp-graphql/pull/2998): docs: Update build-
   your-first-wpgraphql-extension.md. Thanks @Jacob-Daniel!
 * [#2997](https://github.com/wp-graphql/wp-graphql/pull/2997): docs: update wpgraphql-
   concepts.md. Thanks @Jacob-Daniel!
 * [#2996](https://github.com/wp-graphql/wp-graphql/pull/2996): fix: Field id duplicates
   uri field description. Thanks @marcinkrzeminski!

View Full Changelog: https://github.com/wp-graphql/wp-graphql/blob/develop/CHANGELOG.
md

## Community plugin

This plugin is developed and supported by a community. [Contribute to this plugin](https://github.com/wp-graphql/wp-graphql)

## Meta

 *  Version **2.10.1**
 *  Last updated **2 долоо хоног ago**
 *  Active installations **30,000+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/wp-graphql/)
 * Tags
 * [decoupled](https://mn.wordpress.org/plugins/tags/decoupled/)[GraphQL](https://mn.wordpress.org/plugins/tags/graphql/)
   [headless](https://mn.wordpress.org/plugins/tags/headless/)[react](https://mn.wordpress.org/plugins/tags/react/)
   [rest-api](https://mn.wordpress.org/plugins/tags/rest-api/)
 *  [Advanced View](https://mn.wordpress.org/plugins/wp-graphql/advanced/)

## Ratings

 4.9 out of 5 stars.

 *  [  46 5-star reviews     ](https://wordpress.org/support/plugin/wp-graphql/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/wp-graphql/reviews/?filter=4)
 *  [  1 3-star review     ](https://wordpress.org/support/plugin/wp-graphql/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/wp-graphql/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/wp-graphql/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/wp-graphql/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-graphql/reviews/)

## Contributors

 *   [ Jason Bahl ](https://profiles.wordpress.org/jasonbahl/)
 *   [ Tyler ](https://profiles.wordpress.org/tylerbarnes1/)
 *   [ Ryan Kanner ](https://profiles.wordpress.org/ryankanner/)
 *   [ Edwin Cromley ](https://profiles.wordpress.org/chopinbach/)
 *   [ Geoff Taylor ](https://profiles.wordpress.org/kidunot89/)
 *   [ David Levine ](https://profiles.wordpress.org/justlevine/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wp-graphql/)