The AI plugin brings AI-powered features directly into your WordPress admin and editing experience.
What's Inside:
This plugin is built on the
AI Building Blocks for WordPress initiative, combining the AI Client library and Abilities API into a unified experience. It serves as both a practical tool for content creators and a reference implementation for developers.
Current Features:
- Abilities Explorer – Browse and interact with registered AI abilities from a dedicated admin screen.
- AI Request Logging – Logs AI requests for observability and debugging.
- Alt Text Generation - Generate descriptive alt text for images to improve accessibility.
- Comment Moderation - Automatically moderate comments based on toxicity detection and sentiment analysis.
- Connector Approvals - Require explicit administrator approval before plugins or themes can use AI connectors configured on this site.
- Content Classification – Suggests relevant tags and categories to organize content.
- Content Resizing - Shorten, expand, or rephrase selected block content.
- Content Summarization - Summarizes long-form content into digestible overviews.
- Dashboard Widgets - AI Status and AI Capabilities widgets, plus framework for registering new ones.
- Editorial Notes - Reviews post content block-by-block and adds Notes with suggestions for Accessibility, Readability, Grammar, and SEO.
- Editorial Updates - Automatically apply editorial notes to content.
- Excerpt Generation - Automatically create concise summaries for your posts.
- Experiment Framework - Opt-in system that lets you enable only the AI features you want to use.
- Guidelines - Allows abilities to respect site-wide editorial standards.
- Image Generation and Editing - Create and edit images from post content in the editor, also via the Media Library.
- Meta Description Generation - Generates meta description suggestions and integrates those with various SEO plugins.
- Multi-Provider Support - Works with AI Connector plugins for providers such as OpenAI, Google, and Anthropic.
- Title Generation - Generate title suggestions for your posts with a single click. Perfect for brainstorming headlines or finding the right tone for your content.
Provider Setup:
The AI plugin does not include provider credentials or provider implementations by itself. To use AI-powered features, install and activate at least one AI Connector plugin, then configure its credentials in
Settings -> Connectors. Features may appear unavailable until a connector is installed, authenticated, and capable of the required operation.
Provider connector plugins include
Anthropic,
Google,
OpenAI, and
others.
Coming Soon:
We're actively developing new features to enhance your WordPress workflow:
- Type Ahead – Contextual type-ahead assistance for suggestions while typing.
- AI Playground – Experiment with different AI models and providers.
- Content Assistant – AI-powered writing and editing in Gutenberg.
- Site Agent – Natural language WordPress administration.
- Workflow Automation – AI-driven task automation.
This is an experimental plugin; functionality may change as we gather feedback from the community.
Roadmap:
You can view the active plugin roadmap in a filtered view in the WordPress AI
GitHub Project Board.
1.0.2 - 2026-06-15
Added
- Manual refresh button to the AI Request Logs table header (#687).
- New
ai_generated param on our Image Import Ability to set if the imported image was AI generated or not (GHSA-42mg-ffvx-4xff).
Changed
- Ensure Editorial Notes and Editorial Updates controls stay grouped together in the post editor sidebar (#605).
- Use explicit UTF-8 encoding for generated Meta Description character counts (#655).
- Return a consistent decorative flag from Alt Text Generation results (#659).
- Show an error message immediately in the Image Generation UI when there's no AI Connector in place that supports image generation (#679).
- Use a neutral icon for disabled Features and Experiments in the AI Status widget (#720).
Fixed
- Abilities Explorer schema validation (#612).
- Alt Text Generation button becomes unresponsive after using Next/Previous in the media modal (#631).
- Add descriptive accessible labels to approval matrix toggle controls (#637).
- Added accessible labels to the Provider and Category filter dropdowns on the Abilities Explorer page (#642).
- Lost focus after generating a Title (#644).
- Lost focus when generating Alt Text in Image block inspector controls (#645).
- Lost focus when toggling the Connector Approval state (#646).
- Lost focus after generating Images (#647).
- Added an accessible label to the ability test payload textarea in the Abilities Explorer (#649).
- Excerpt generation post context payload (#651).
- Clear out the Meta Description suggestion when the modal closes (#653).
- Lost focus after running Content Resizing actions (#663).
- Column reordering and hiding in the AI Request Logs table now persists instead of resetting to the default (#669).
- Summary statistics showing zero for short time periods on non-UTC MySQL servers (#671).
- UI inconsistency on AI Request Logs page (#676).
- Ensure thinking tokens are counted in AI Request Logs (#680).
- Ensure the Ability schemas and outputs are valid JSON Schema for strict REST and MCP consumers (#688).
- Title Generation button disappears after toggling off "Show template" (#694).
- Prevent accidental interactions and stale feedback in the Meta Description Generation modal and improve focus handling (#696).
- Ensure focus isn't lost after generating an Excerpt inline (#698).
- AI Request Logs: "Copy Log ID" gives no feedback when copied (#700).
- AI Request Logs: main header overlapping table header (#705).
- Allow users to clear an applied Meta Description while preventing whitespace-only descriptions (#706).
- Rename unforwarded
MaskCanvas component function to InnerMaskCanvas to avoid duplicate declarations (#713).
Security
1.0.1 - 2026-05-27
Added
- New helper functions that are used to determine if we have valid AI Connector credentials (#603).
- New helper methods,
is_globally_enabled and is_individually_enabled to help tell if a feature is enabled individually or if features are globally enabled (#604).
Changed
- Removed the description from the Abilities listing within the Abilities Explorer (#592).
- Filter Guideline queries by the guideline type content (#593).
- Use the new
has_connector_authentication instead of is_connector_configured to avoid unnecessary API requests (#603).
Removed
- Deprecated
__nextHasNoMarginBottom prop (#609).
Fixed
- Utilize a new
is_connector_configured function to properly determine if a connector is configured, whether via an API key, constant or ENV var (#537).
- "Generate Editorial Note" button appearing in the block settings menu during post revisions (#591).
- If the Connector Approvals experiment is turned on, ensure we don't over-aggressively block functionality in the AI plugin that isn't actually making requests, like Request Logging (#595).
- Better matching of the originating code when the Connector Approvals experiment is on (#595).
- Focus loss issues when interacting with Purge actions in the Request Logs experiments page (#599).
- Disable the "Purge All" button when no logs are available to purge (#599).
- AI Status feature checklist properly shows if an individual feature is enabled even if globally features are disabled (#604).
- Ensure focus isn't lost when buttons enter disabled state during Alt Text Generation, Content Classification, Content Summarization, Excerpt Generation, Featured Image Generation, and Title Generation (#608, #611).
- Settings page strings, which are enqueued as script modules, are now localized at runtime (#613).
- Connector Approvals "Dismiss" button failing for pending requests whose key contains a slash (#615).
- Hide empty provider capabilities section in the dashboard widget (#616).
- Playground and test configs now target the latest WordPress release instead of the beta release (#626).
- Connector Approvals notice no longer overlaps the page header on the AI Request Logs screen (#628).
1.0.0 - 2026-05-19
Added
- New Experiment: Request Logging that provides observability for all AI operations (#437).
- New Experiment: Connector Approvals that allows administrators the ability to determine which plugins can access which AI connectors (#467).
- Integrate Alt Text generation into the experimental media editor (#446).
- Sorting and filtering in Comments screen by Toxicity and/or Sentiment (#518).
- Toxicity and Sentiment labelling in admin dashboard for comments (#518).
Changed
- Disable the Summarization button until content reaches a certain length (#492).
- Refined image generation loading state (#512).
- Featured image button now hides when image is already set (#512).
- When no AI provider is configured and a feature is triggered, show actionable guidance directing users to configure an AI Connector (#523).
- Update Meta Description loading state and remove duplicate heading in modal (#527).
- Rename "Review Notes" experiment to "Editorial Notes" and "Refine from Notes" experiment to "Editorial Updates" (#528).
- Keep comments without moderation metadata visible when sorting by Comment Moderation columns (#538).
- Updated plugin banner and icons (#546).
- Show a notice when a user has chosen a provider that no longer exists (#552).
- When no provider is configured, show an error notice instead of an admin notice for alt text generation (#561).
- Standardize error message text (#562).
- Abilities Explorer page heading (#585).
Fixed
- Ensure we properly use the new client-side Abilities API (#482).
- Keep keyboard focus on the Provider select when resetting per-feature developer settings to default (#532).
- Deduplicate provider API requests on the settings page when developer mode is toggled on (#542).
- Update the Playground Preview workflow to use
pluginData instead of pluginZipFile (#548).
- Empty space shown for Model field when saved provider no longer exists in developer settings (#552).
- Prevent analyzing newly inserted comments when no provider is configured (#554).
- Ensure the meta description modal doesn't open if no provider is configured (#558).
- False error for alt text generation on decorative images in media library (#559).
- Show a failed badge when comment analysis fails (#568).
- Correct RTL rendering of directional icons, runtime-set styles, and inline styles in the admin UI (#573).
- Add notice to standalone image generation when there is no provider connected (#575).
- Ensure we show a more specific error message when no valid AI connector is in place and we try to generate a featured image (#576).
- Improve keyboard focus visibility for suggested term actions in content classification (#580).
- User-facing text in several experiments is now fully translatable, and JS-side translations are loaded at runtime (#582).
- Make title generation and content classification UI react to current editor state (#584).
- Ensure global AI enabled options are migrated properly (#586).
0.9.0 - 2026-05-07
Added
- New Experiment: Comment Moderation to automatically moderate comments based on toxicity detection and sentiment analysis (#155, #516).
- New Experiment: Content Resizing to shorten, expand, or rephrase selected block content (#331).
- Developer Mode settings page toggle to set the desired provider and model per feature (#486).
- WP-CLI command,
wp ai alt-text generate, for bulk alt text generation (#436).
- Basic styles for the Content Summary block (#510).
Changed
- Compress the AI settings page by moving the global AI toggle into the header with an infotip (#455).
- Update AI settings page to use
@wordpress/ui components and related UI adjustments (#472, #488, #490, #491, #505, #519).
- AI-generated images are now saved with descriptive, slugified filenames derived from the post title or prompt instead of
ai-generated-image-<timestamp> (#471).
- For image generation, set guidelines as part of the prompt instead of system instructions (#497).
- Update the Content Summary experiment to render the summary in a Group variation block instead of a Paragraph variation block (#510).
Fixed
- Standards compliance switch from the custom
$builder->is_text_generation_supported() method with the abstract ensure_text_generation_supported() method (#465).
- Ability schema JSON viewer now stays LTR under RTL admin languages (#485).
- Ensure the Generate Image button doesn't render in contexts that aren't valid (#489).
- Localize several user-facing fallback error strings in image-generation and summarization flows (#500).
Security
- Bump
serialize-javascript from 6.0.2 to 7.0.5 (#503).
- Bump
postcss from 8.5.10 to 8.5.14 (#503).
- Bump
minimatch from 3.0.8 to 3.1.4 (#503).
0.8.0 - 2026-04-23
Added
- New Experiment: Refine from Notes, automatically apply editorial notes to content (#289).
- AI Status and AI Capabilities dashboard widgets, plus framework for registering new dashboard widgets (#311).
- Integrates Gutenberg's Guidelines allowing abilities to respect site-wide editorial standards (#359).
- Check
wp_supports_ai() before initializing experiments (#268).
- Admin redirect from the old
ai page to the new ai-wp-admin page (#424).
- Set the new
gpt-image-2 model for our preferred model list (#456).
Changed
- Promote Image Generation from an Experiment to a Feature (#418).
- Title Generation now utilizes a modal for editing and regeneration before applying changes to the Post Title (#290).
- Update feature descriptions to include AI provider model supports (#377).
- Update button loading states to match the standard loading pattern (#382, #389, #396, #433, #449).
- Refactor
Main bootstrap class (#404).
- Allow bulk enabling/disabling Experiments in groups (#422).
- Improve visual hierarchy on the AI settings page so card titles are more prominent than the toggle labels (#431).
- Reduce the context we send when running Review Notes to decrease the amount of tokens used (#434).
- Refactor
strpos to str_starts_with and str_contains (#438).
- Render Review Notes only on post types that support
editor.notes (#444).
- Improve accessibility of the Meta Description modal: inline "Copied!" confirmation on the copy button and accessibleWhenDisabled on disabled controls (#445).
- Refactor
Asset_Loader class and add error checking when dependencies are missing (#458).
Removed
- Remove references to DALL·E image models (#414).
Fixed
- Excerpt and Title generation no longer include conversational preambles, wrapper quotes, markdown, or meta-commentary when using smaller language models (#440).
- Defer failed
Requirements messages until translation functions are available (#453).
0.7.0 - 2026-04-09
- Added: New Experiment: Content Classification to generate taxonomy terms based on post content (#313).
- Added: New Experiment: SEO Descriptions that provides AI-generated meta description support (#318).
- Added: Added a bulk "Generate Alt Text" action to Media Library to generate alt text for multiple images at once (#330).
- Added: Added Category filtering to the Abilities table to improve organization and discoverability (#355).
- Added: Added extensibility hooks for customizing system instructions, and post context during AI operations (#304).
- Added: Added a new
wpai_has_ai_credentials filter to allow 3rd parties to modify the credential detection logic, for instance to support non-API-key connectors to report their configured status (#337).
- Changed: Adjust Alt Text Generation to better align with the W3C Alt Text decision tree guidance (#374).
- Changed: Updated AI settings page leveraging modern
wp-build DataForm route (#340, #376).
- Changed: Revised Feature and Experiment Lifecycle and other documentation updates (#326, #329).
- Changed: Update some of our system instructions to prompt the LLM to return content in the same language as the original content they were given (#357).
- Changed: Updated end-to-end tests to resolve flaky failures and account for markup changes in the Connectors screen (#360).
- Changed: Updated preferred models to more recent ones for the three default providers (#361).
- Changed: Updated provider compatibility checks to use the AI Client's built-in
is_supported_* methods for improved validation and error reporting (#362).
- Changed: Updated the PR preview workflow to use a preferred WordPress version for improved consistency during testing (#366).
- Changed: Switch to using a
Button component instead of a ToolbarButton component within the Title Generation Experiment when in normal editing mode (non-template mode) (#375).
- Removed: Unneeded
function_exists checks (#378).
- Fixed: Improved error messages when Image Generation or Editing fails due to incompatible providers (#332).
- Fixed: Fixed an issue where Title Generation could fail when using the Anthropic provider (#341).
- Fixed: Invalid schema type in the summarization ability that prevented proper execution in some environments (#347).
- Fixed: Fixed an issue where the Generate Alt Text button could appear when an Image block was not selected, particularly when working with Patterns (#356).
- Fixed: Fixed an issue where repeated calls to load system instructions could return empty content (#358).
- Fixed: Fixed an issue where retrieving post content did not always return the most recently edited version (#367).
Older changelog entries can be found in the
CHANGELOG.md file.