Course · Advanced

Migrate to WordPress Core AI: Upgrading From the Archived Standalone Abilities API

A migration course for developers whose code targets the archived, pre-core wordpress/abilities-api package. Drop the old dependency, adopt core's built-in Abilities API, and get a clear, accurate picture of what actually shipped in WordPress core versus what is still a separate plugin.

8 lessons
Start course →

Before you migrate anything, get the premise right, because a lot of material floating around right now gets it wrong. The Abilities API merged into WordPress core with 6.9 (“Gene”), released December 2, 2025. The PHP AI Client merged into core with 7.0, announced March 24, 2026, giving you wp_ai_client_prompt() with no separate install. The MCP Adapter did not merge into core. It remains a separate plugin, maintained on its own release cadence (currently v0.5.0), by deliberate decision of the WordPress AI team. If you read or heard otherwise, this course corrects that in its first lesson.

This course is for one specific, common situation: you (or a codebase you’ve inherited) built against the standalone, pre-core wordpress/abilities-api Composer package. That package is now archived, as of February 2026, because its functionality shipped into WordPress core itself. If your composer.json still lists it, or your plugin still bootstraps it manually, this course walks you through removing that dependency, confirming a correct WordPress 6.9+ minimum, fixing the single most common real-world issue (abilities that exist but never show up to an AI agent), and auditing your own code and docs for the same “MCP Adapter is core” mistake this course’s own brief originally contained.

If you haven’t worked with the Abilities API or MCP Adapter at all yet, start with WordPress AI Foundations first, it covers what an ability is and how the stack fits together from scratch. If you already have a working MCP server built the current way, see Build a WordPress MCP Server From Scratch. This course assumes you’re migrating existing code, not starting fresh.