Meet Abilities, WordPress’ New Functional Core


The Abilities API, soon to be available in WordPress 6.9, aims to transform the way developers interact with WordPress and integrate with other themes and plugins. Imagine a WordPress where every plugin’s unique capabilities are not just accessible, but genuinely discoverable and seamlessly integrated across the entire ecosystem.

While the Abilities API was conceived and developed by the Core AI team, it’s not actually specific to AI. It’s going to be utilized within AI, but its application is even broader. A “primitive” in programming is a fundamental unit in a language or framework. Abilities introduce a new functional primitive to WordPress, the need for which was hiding in plain sight.

Why WordPress needed Abilities

Have you ever noticed that integrating with one plugin and then another can be a completely different experience? Or the challenge of taking a feature and making it available in various WordPress contexts (e.g. WP CLI, REST)? We often end up reinventing the same functionality over and over in various contexts.

Think about such popular plugins as Yoast SEO, Woo, The Events Calendar, Gravity Forms, and so many others. What is something they all have in common? Public APIs. That is, ways for other plugins, agencies, freelancers, and whoever to interact programmatically with the plugins. Perhaps you want to display a form, create a new form, or add a new product within code? All of these plugins provide ways of doing that.

But how do the plugins do it? Is there a common method? Is there a way of discovering what you can do with each plugin? No, not really. The REST API sort of does this, but is limited to how it’s accessed. In reality, every plugin is responsible for determining how it builds and communicates a public API. Some go a simple route with global functions, others use Object-Oriented Programming, and still others get even more creative. The discovery of these Public APIs is then left to each plugin to document, which is hard for anyone, and especially difficult for smaller teams.

Then how about the ways these APIs are accessible? There’s the REST API, the new Command Palette, the upcoming MCP Adapter, and so forth. How does a plugin connect their APIs to each of these? Well, manually. Each system of presenting functions comes with its own means of integration that plugin authors need to learn and work with.

These challenges highlight a clear need for a more unified and discoverable approach to plugin functionality, which is precisely where Abilities come in.

What Abilities make possible

This is exactly what Abilities are for — they provide a standardized and discoverable way for plugins to expose their functionalities, significantly streamlining development and integration within the WordPress ecosystem. Abilities provide a way for plugins to:

  • Provide other developers with a discoverable Public API that’s self-documenting with what the Ability needs for input and what it returns as output
  • Easily adapt these Abilities to multiple present and upcoming contexts such as REST, the Command Palette, the MCP Adapter, etc. This includes providing extra hints to indicate how it works (e.g. is destructive, is read only, and so forth)
  • Include authorization to keep the use of the Ability safe and secure
  • Integrate Abilities from other plugins into their own, creative ideas

The effect of Abilities is cumulative. The more plugins that use Abilities, the more powerful WordPress becomes. Developers are able to safely and quickly integrate AI models via MCP, become more capable for the end-user, and so forth. The cumulative effect of this will improve the reliability and contextualization of features within WordPress.

Start using Abilities today

Hopefully, this clarifies the immense potential of Abilities and how they’re a key to unlocking the next chapter of WordPress. It’s one of those things that makes so much sense once you think about it.

Here’s what you can begin doing now to start taking advantage of Abilities:

  1. Share your feedback
  2. Download WordPress 6.9 Release Candidate 2
  3. Experiment with Abilities: Explore the Abilities included in the beta, register your own, execute them manually, and try them out in different contexts.