Behind the Scenes of WPGraphQL’s New Automated Release Process

Publishing a new release for WPGraphQL has historically required several manual steps—updating changelogs, determining semantic version bumps, preparing upgrade notices, and ensuring that every piece of documentation reflects the correct information. While I had a process in place, it wasn’t as efficient as it could be, and the potential for human error was always there. […]

WPGraphQL v2.0 is Here: What You Need to Know

🚀 WPGraphQL v2.0.0 has officially been released! This is a major update that includes breaking changes, so if you’re using WPGraphQL in production, please review the details below to ensure a smooth upgrade. 👉 View the Release on GitHub 👉 Technical Update: Breaking Changes Why WPGraphQL v2.0? The primary motivation behind this release was upgrading […]

WPGraphQL v2.0 Is Coming – Here’s What You Need to Know

We’re excited to announce that WPGraphQL v2.0 is coming soon! This release brings key improvements such as better performance, stricter validation, and more flexibility for developers. This change introduces breaking changes that may affect your site or project. For technical details on breaking changes and developer recommendations, read the WPGraphQL v2.0 Technical Update Guide. Release […]

WPGraphQL v2.0 Technical Update & Breaking Changes

WPGraphQL v2.0 is coming soon, featuring an upgrade to its underlying GraphQL engine, graphql-php, from v14.11.10 to v15.8.1. This upgrade brings better performance, stricter validation, and enhanced extensibility. However, it also introduces breaking changes that may impact developers extending WPGraphQL or maintaining custom plugins. This guide highlights technical changes, developer recommendations, and actions needed to […]

WordPress Meets WASM: Full Power of the CMS in Any App

Last week at WASMCon 2024, I had the privilege of speaking about something I’m incredibly passionate about: using WordPress in non-traditional ways. My talk, “WordPress Meets WASM: Full Power of the CMS in Any App,” explored how WordPress, a platform many associate with traditional websites, can now be embedded and run virtually anywhere, thanks to […]

Try WPGraphQL Instantly with WordPress Playground Integration

We’re excited to announce that WPGraphQL v1.29.2 now supports Live Preview functionality on WordPress.org, powered by WordPress Playground. This integration makes it easier than ever for developers to experience WPGraphQL firsthand without any installation or setup required. Instant Access to GraphQL in WordPress Starting with version 1.29.2, visitors to the WPGraphQL plugin page on WordPress.org […]

WPGraphQL Becomes a Canonical Plugin: My Move to Automattic

Before diving into the details of this announcement, I want to address something important. I am, like all of you, a human being. Given the current tensions in the WordPress ecosystem, my decision to move from WP Engine to Automattic might evoke strong feelings. Whether you agree or disagree with this decision, please recognize me […]

Migrating the WPGraphQL Slack Community to Discord

Hello WPGraphQL Community, We’re excited to announce that we’re moving from Slack to Discord! This change will enhance our communication and community experience. 📣 Why Move to Discord? ✅ No More Lost History: All message history from Slack (since 2017!) has been migrated and is searchable in Discord.✅ Dedicated Channels: Specific topics for streamlined conversations.✅ […]

Announcing the WPGraphQL REPL

“What is a REPL?”, “Who are you?”, and “What have you done with Jason?” are all good questions you might be asking. I will start with the most important one. Hello, I am Alex aka “moonmeister”! I have been around for a while and you might have seen me in Slack or chatted with me […]

Customizing GraphQL Cache Keys.

WPGraphQL Smart Cache is quickly becoming the standard solution for fast and accurate data when using WPGraphQL for decoupled applications. Since launching in December 2022, it’s grown to 500+ active users! While it solves a lot of problems for a lot of users, it’s not perfect and might require customization. In this blog post, we’re […]

Introducing WPGraphQL Smart Cache

WPGraphQL is fast becoming the standard for building decoupled WordPress websites and applications. Most of the official WordPress boilerplates for JavaScript frameworks such as NextJS and Gatsby use WPGraphQL as the data source.. Developers are choosing WPGraphQL for decoupling their projects because of the flexibility it provides, the control it gives the client developer, the […]

Tutorial: Registering a Custom Post Type as a GraphQL Interface

WPGraphQL v1.12.0 introduces new options for customizing how Post Types and Taxonomies are exposed to the WPGraphQL Schema. The goal of this post is to show how to use some of these options in action. You can read this post for an overview of all the options, or check out the release.. To do that, […]

New Post Type and Taxonomy Registration options

WPGraphQL makes it easy to expose Custom Post Types and Taxonomies to the GraphQL Schema. WPGraphQL v1.12.0 introduces new options for how your post types and taxonomies are added to the WPGraphQL Schema. If you’re already familiar with how registering post types and taxonomies to GraphQL works, go ahead and skip to the new options […]

Adding End 2 End Tests to WordPress plugins using wp-env and wp-scripts

I recently published a video walking through how End to End tests are set up for WPGraphQL, but I thought it would be good to publish a more direct step-to-step tutorial to help WordPress plugin developers set up End 2 End tests for their own WordPress plugins. Setting up End to End tests for WordPress […]

Query any page by its path using WPGraphQL

One of the most common ways WordPress is used, is by users visiting a URL of a WordPress site and reading the content on the page. WordPress has internal mechanisms that take the url from the request, determine what type of entity the user is requesting (a page, a blog post, a taxonomy term archive, […]

Building a Bookstore using WordPress, WPGraphQL and Atlas Content Modeler

In this post, we’ll look at how we can create a simple Book Store using WordPress, WPGraphQL and Atlas Content Modeler, a new plugin from WP Engine that allows Custom Post Types, Custom Taxonomies and Custom Fields to be created in the WordPress dashboard and allows the data to be accessed from WPGraphQL. By the […]

WPGraphQL featured on the Matt Report

On February 28, The Matt Report podcast published the episode where Matt and I discussed WPGraphQL and WordPress. In the interview we discussed topics such as using WordPress with Gatsby, Gutenberg, Component based architecture, and more. Check it out over at MattReport.com, or catch the video interview on YouTube:

My weekend release snafu

This past weekend I released v1.2.0 of WPGraphQL. And 1.2.1, and 1.2.2, and 1.2.3, and 1.2.4, and 1.2.5. I made some changes to the Github repo that caused deploys to not behave as intended, and to call it a “snafu” might be an understatement. Plugin distribution For the first 4 years of WPGraphQL, the plugin […]

Gutenberg and Decoupled Applications

In this article I want to dive into the current state of Gutenberg and WPGraphQL. This is a technical article about using Gutenberg blocks in the context of decoupled / headless / API-driven WordPress, and makes the assumption that you already know what Gutenberg is and have some general understanding of how it works. TL;DR […]

Getting started with WPGraphQL and Gridsome

This is a guest post by @nicolaisimonsen Gridsome is a Vue.js framework for building static generated sites/apps. It’s performant, powerful, yet simple and really faaaaast. Gridsome can pull in data from all sorts of data-sources like CMSs, APIs, Markdown etc. It has a lot of features. Go check ’em out. Since GraphQL is so efficient […]

WPGraphQL featured on Torque News Drop

I had the pleasure of joining Doc Pop Roberts on the Torque Magazine News Drop. We spent 18 minutes discussing headless WordPress and WPGraphQL. Give it a watch!!

Setting up a new developer environment to contribute to WPGraphQL..

I just announced that I am now employed by WP Engine to work on WPGraphQL. With new employment comes a new Macbook, which I need to setup as a dev machine to continue working on WPGraphQL. It’s always a tedious process to get a new computer setup to be an effective developer, so I thought […]

What’s next for WPGraphQL?

On February 1, I announced that I was no longer employed at Gatsby, and stated a blog post would be coming soon. This is that blog post. TL;DR I’m joining WP Engine as a Principal Software Engineer where I will continue maintaining WPGraphQL and will contribute to other projects and initiatives centered around the goal […]

Allowing WPGraphQL to show unpublished authors in User Queries

Objective The goal of this article is to make a non-authenticated GraphQL query for a User with no published content and to get the User returned in the response. Like the following: NOTE: To test these queries you will want to use a GraphQL client that is not Authenticated, such as GraphQL Playground or Altair. […]

Announcing WPGraphQL v1.0

I’m so excited to announce WPGraphQL 1.0! If you’ve been using WPGraphQL for your side projects, but are waiting for the “stable” version, then this is it! You can use WPGraphQL in production with the confidence that it is secure, well documented, and supported full time and long term. If you’re new to the WPGraphQL […]

Forward and Backward Pagination with WPGraphQL

WPGraphQL makes use of cursor-based pagination, inspired by the Relay specification for GraphQL Connections. If you’re not familiar with cursor-based pagination it can be confusing to understand and implement in your applications. In this post, we’ll compare cursor-based pagination to page-based pagination, and will look at how to implement forward and backward pagination in a […]

WPGraphQL v0.8.0

Release Notes TL;DR This release focuses on adjusting how Nodes are resolved to prevent errors in cases where the nodes are determined to be considered private and non-viewable by the requesting user. (#1138) More details below: Schema Breaking Changes Internal Breaking Changes New Features Release Summary Explanation of Changes to the Abstract Connection Resolver Schema […]

WPGraphQL featured on Syntax.fm

Today, I had the pleasure of being featured on the Syntax.fm podcast with hosts Wes Bos and Scott Tolinsky. In this episode we discussed how to use GraphQL with WordPress using the WPGraphQL plugin. I also announced that I’ve joined the Gatsby team to work on WPGraphQL an its immediate ecosystem full-tiime. Below is the […]

WPGraphQL at WordCamp Montreal

Étienne Bélanger gave a talk at WordCamp Montreal 2018 titled: “Your First Headless WordPress Project with ReactJS and GraphQL”. In the talk, he covers some basic differences between the WP REST API and WPGraphQL, then shows how to use React and Apollo Client to consume data from a WordPress site with the WPGraphQL plugin active. […]

Build an App Using React and the GraphQL Plugin for WordPress in ~15mins

If you keep up with tech trends, you likely already know that GraphQL is one of the newer breakout technologies that people are gushing about. It’s an open source specification created and used by Facebook’s Engineering team that can be used to push and pull data between APIs and apps. REST APIs have traditionally been […]

Query Dad Jokes with WPGraphQL

If you’ve ever wanted to use GraphQL to query dad jokes, look no further. If you’re running a WordPress site, you can install the WPGraphQL plugin along with the WPGraphQL Dad Jokes plugin, and you can query for a random Dad Joke using GraphQL! The plugin uses icanhazdadjoke.com to retrieve a random dad joke. This […]

Query posts based on Advanced Custom Field values by Registering a Custom “where” Argument

If you manage custom fields in WordPress using Advanced Custom Fields, and you want to use WPGraphQL to get a list of posts filtering by the ACF field value, you’ll need to implement a few things in your themes functions.php. Summary: Register the new “where” argument: First you need to create a add_action on graphql_register_types […]

Registering Types and Fields: Pair Programming with Jacob Arriola

On Thursday, March 26, 2020 I pair programmed with Jacob Arriola, Senior Web Engineer at Zeek Interactive. Zeek Interactive is a California-based software agency specializing in WordPress and Apple iOS. They recently moved their own marketing website from traditional WordPress to Headless WordPress with WPGraphQL as the API and Gatsby as the front-end. With the […]

Registering GraphQL Fields with Arguments

One of the most common ways to customize the WPGraphQL Schema is to register new fields. When registering fields, argument(s) can also be defined for the field. Field arguments in GraphQL allow input to be passed to the field, and when the field is resolved, the input of the field argument can be used to […]

WPGraphQL v0.7.0

WPGraphQL v0.7.0 is here!https://github.com/wp-graphql/wp-graphql/releases/tag/v0.7.0 This release focused primarily on exposing Post Type and Taxonomy nodes at the root of the query. This release does include some breaking changes, so it’s highly recommended that you read the release notes and test on a staging server before updating.

Pair Programming on WPGraphQL for SEOPress

SEOPress is a popular SEO Plugin for WordPress. Last night I paired with @moon_meister to work on his WPGraphQL for SEOPress plugin. We registered some custom Types and Fields to the WPGraphQL Schema to expose the SEOPress settings to WPGraphQL.

WPGraphQL v0.6.0 Release

WPGraphQL v0.6.0 is here! This release is one of the most significant releases in the history of the WPGraphQL plugin. Breaking Changes Before getting into the hype of the release, I want to highlight some prominent breaking changes. A full list can be found in the release notes. A change to pagination of connections was […]

WPGraphQL v0.4.1

Today we released WPGraphQL v0.4.1. This is a non-breaking change release. You can view the release here: https://github.com/wp-graphql/wp-graphql/releases/tag/v0.4.1 Release Summary Update composer dependencies Update filter on WPGraphQL::get_allowed_taxonomies() Update to Docs for WPGraphQL for ACF – Thanks @henrikwirth! Update to Install and Activate Docs – Thanks @jacobarriola! Update to Docs sidebar styles – Thanks @TylerBarnes! Add […]

WPGraphQL at the Desert GraphQL Meetup

Last night I had the pleasure of remotely presenting for the Desert GraphQL Meetup in Phoenix, Arizona. TL;DR, Here’s the video Here’s the slides: https://slides.com/jasonbahl-1/desert-graphql-oct-2019#/ Summary of the presentation In the presentation I covered the history of WPGraphQL, why the plugin exists, and why it makes sense to continue building for the wider WordPress community. […]

Registering Custom Connections with Daniel Olson

Yesterday I had the pleasure of pair-programming with Daniel Olson of Shifter and we walked through the process of registering a custom connection in the WPGraphQL Schema, and writing the resolvers for it. You can watch the recording of the pair programming session below:

WPGraphiQL IDE v1.0.0 with GraphQL Explorer

The GraphiQL IDE is an incredibly helpful tool when using GraphQL. WPGraphiQL has been the go-to GraphiQL IDE for use with WPGraphQL, and today we’ve released v1.0.0 of the WPGraphiQL IDE, now with the AMAZING GraphQL Explorer feature, courtesy of the fine folks at OneGraph.com.

Release v0.3.5

Today we released v0.3.5 of WPGraphQL. Full release notes here: https://github.com/wp-graphql/wp-graphql/releases/tag/v0.3.5

WPGraphQL and Gatsby Livestream

Last week I joined Jason Lengstorf on “Learn with Jason” and we built a Gatsby site using WordPress, WPGraphQL and WPGraphQL for Advanced Custom Fields. Below is a recording of the livestream.

Re-introducing WPGraphQL for ACF

TL;DR Starting today, WPGraphQL for Advanced Custom Fields is FREE! Some Context In April 2019, I released the WPGraphQL for Advanced Custom Fields plugin as a paid plugin in an attempt to generate enough revenue to one day be able to work on WPGraphQL full-time. I want to thank everyone that purchased a license and […]

WPGraphQL for FacetWP

I am pleased to announce the beta release of my FacetWP integration plugin for WPGraphQL.  The main functionality was written quickly in late 2018 to fill a need to provide client-side access to FacetWP’s index and filtering functionality via WPGraphQL. As a proof-of-concept it worked exactly as needed. It was a lot less effort to create this plugin than it would have been to roll my own […]

WPGraphQL for ACF is here!

Many folks using WPGraphQL have asked about how to use GraphQL with their ACF data. The answer has typically been to manually map their ACF fields to the GraphQL schema using functions like register_graphql_field and register_graphql_object_type. For a few fields, this isn’t much of an issue, but when you have dozens of fields, this gets […]

Upgrading to v0.3.0

WPGraphQL v0.3.0 is one of the most substantial releases to date for the plugin. You can read more about what was included in this release here and here. Test in Staging Environment It’s best practice to test plugin updates in staging environment, but I want to re-iterate that again here. Make sure you thoroughly test […]

What’s coming in v0.3.0?

The next release of WPGraphQL will be version v0.3.0, and is slated to be released next week. This release is arguably the most substantial release to date. It’s going to made up of 2 major features: “DataLoader” and “Model Layer“ DataLoader The role of DataLoader is to load data as efficiently as possible. You can […]

WPGraphQL + Gatsby Tutorial

Zac Gordon put together a group of engineers to work on a formal project, GatsbyWPThemes.com to port popular WordPress themes to Gatsby themes. Recently, Muhammad Muhsin published a tutorial showcasing how users can create a Gatsby theme using WordPress as the CMS and WPGraphQL as the API for Gatsby to consume data from. Take a […]

Release v0.2.3

Today we released a new version of WPGraphQL, v0.2.3. The release can be found here: https://github.com/wp-graphql/wp-graphql/releases/tag/v0.2.3 Below is a recap of the release notes: Breaking Changes none New Features #676: New TimezoneEnum type added to the Schema #719: New graphql_menu_item_connection_args and graphql_menu_item_connection_query_argsfilters added to the MenuItemConnectionResolver. Thanks @epeli! Bug Fixes #714 Fixes global $post not properly being setup before resolving fields for […]