[wp-trac] [WordPress Trac] #64455: WordPress Core Abilities
WordPress Trac
noreply at wordpress.org
Thu Feb 12 13:07:30 UTC 2026
#64455: WordPress Core Abilities
------------------------------+---------------------
Reporter: jorgefilipecosta | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: 7.0
Component: AI | Version:
Severity: normal | Resolution:
Keywords: has-patch | Focuses:
------------------------------+---------------------
Comment (by jorgefilipecosta):
Hi @peterwilsoncc, thank you for looking into this issue and bringing
important discussion points.
> @jorgefilipecosta Are you able to write up a merge proposal for this on
the make/core blog? cc @flixos90 @jeffpaul
I'm happy to write a post on Make/Core to get wider visibility on this.
That said, I wanted to clarify, for future tasks, aren't merge proposals
typically intended for larger efforts developed outside of core (e.g., a
feature plugin) that need to be merged in? In this case, abilities are
being developed incrementally, one by one, via PRs directly against core.
> As the existing REST API endpoints include these abilities, the proposal
would need to make clear why the new endpoints are needed instead of a
proposal to expand the existing endpoints to allow for using the extended
features.
On the question of why new abilities rather than expanding the existing
REST API endpoints, I believe this is addressed in the "Why WordPress
Needed Abilities" section of https://make.wordpress.org/ai/2025/11/21
/meet-abilities-wordpress-new-functional-core/. The key point is that the
REST API alone was not a sufficiently standardized layer for sharing
functionality across different contexts. The Abilities API was introduced
precisely so that plugins and core can expose their functionality in a
standardized, machine-readable way that can be consumed by CLIs, MCP (via
the MCP Adapter), browser-based MCP clients, and more. The REST API is one
transport channel for ability consumption, but it's not the only one.
For example, core has already introduced `core/get-site-info` and `core
/get-user-info`, both of which could technically be done via the REST API,
but we still standardized that information as abilities. The same
reasoning applies to post management, setting management, etc.
If we accept the premise that the Abilities API is the standardized way
for core and plugins to declare what they can do (which we did, given that
the Abilities API is already part of core) then it follows that core
itself should expose its own base functionality (like creating, reading,
and querying posts) as abilities. These are foundational operations, and
without them, features like the WP AI Client
(https://make.wordpress.org/core/2026/02/03/proposal-for-merging-wp-ai-
client-into-wordpress-7-0/), which integrates directly with abilities,
wouldn't be able to perform basic, useful tasks like post and setting
retrieval/manipulation.
> I'd also like to see details on how the performance and security
implications of including these features has been evaluated.
Regarding security: the post abilities follow the same pattern established
by the existing abilities. Each ability has a `permission_callback` that
checks whether the current user can perform the action using the existing
roles and capabilities system. For the specific case of `meta_query`,
`tax_query`, and `date_query`, the intent is not to expose new
information. A consumer could already use the REST API to retrieve all
posts and then filter by meta, taxonomy, or date client-side, it would
just be a very inefficient way of doing it. To avoid accidental data
leakage, we will rely on the `show_in_abilities` pattern that was
introduced for settings, so only meta keys or taxonomies that explicitly
opt in will be queryable; the rest will be filtered out.
Regarding performance: we are not creating new query logic ourselves. The
plan is to rely on already existing core functions (like `WP_Query`,
`get_post`, `wp_insert_post`, etc.) to retrieve and update the
information. Plugins and core are already using these functions
extensively, so they should be solid in terms of performance. If a
performance issue were to surface, it would likely need to be addressed in
those existing functions rather than in the ability layer itself.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64455#comment:10>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list