[wp-trac] [WordPress Trac] #64098: Introduce Abilities API
WordPress Trac
noreply at wordpress.org
Mon Oct 20 21:12:27 UTC 2025
#64098: Introduce Abilities API
--------------------------------------------------+---------------------
Reporter: gziolo | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone: 6.9
Component: General | Version: trunk
Severity: normal | Resolution:
Keywords: has-patch 2nd-opinion has-unit-tests | Focuses:
--------------------------------------------------+---------------------
Comment (by jason_the_adams):
Replying to [comment:28 jorbin]:
> Can you go a bit deeper on what you mean by "self-authenticating"? I'm
not finding anything in [https://github.com/search?q=repo%3AWordPress
%2Fabilities-api%20%22self-authenticating%22&type=code the github repo] or
in slack that describes the API in such a way.
I think he means self-authorizing. That is, the Ability can do a
permissions check prior to executing.
**First-class Integrations API**
Something that's been on my mind as I've helped build this comes from my
experience building plugins like GiveWP, The Events Calendar, and so
forth. Every plugin has 3rd party integration on its mind when building
things out. Things like hooks and the REST API are often utilized to
provide integration APIs, but there's also just PHP and JS
functions/classes and the like meant to be used for integration. At this
point, there is no first-class way to do this in WordPress; each plugin is
left to determine how it wants to structure its APIs for discoverability
and use.
The Ability API is, at its core, a formal public functions API for use in
integrations. At this time, we're thinking of contexts such as REST, MCP,
Command Palette, CLI, and so forth. But that's really because the
Abilities API is already serving its purpose!
This is to say, that I think the Abilities API presents immediate value to
the ecosystem, and folks will explore even further contexts for its use.
If I was still working on GiveWP, I'd immediately provide a bunch of
Abilities for interacting with campaigns, forms, and donations as a first-
class way for 3rd parties to discover and use. The fact that these
Abilities, with minimal configuration effort, can also be used in REST,
MCP, and such is a cherry on top!
The more scenarios I've run through my head with the Abilties API as it
is, the more I like it. I'm sure it will be (and should be) battle tested,
at which point we'll iterate on it. I'm 100% with you, @jorbin, that I'd
like to get this adopted as quickly as possible, and will personally put
effort into making that happens during the beta. 👍
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64098#comment:33>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list