{"id":1899,"date":"2026-04-24T13:01:35","date_gmt":"2026-04-24T11:01:35","guid":{"rendered":"https:\/\/www.unleash-wp.com\/blog\/?p=1899"},"modified":"2026-04-24T13:03:44","modified_gmt":"2026-04-24T11:03:44","slug":"wordpress-7-0-ai-client","status":"publish","type":"post","link":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/","title":{"rendered":"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" id=\"h-\">WordPress 7.0 has a new release date: <strong>May 20, 2026<\/strong>. The release squad pushed it back from April 9 after deciding the architectural work around real-time collaboration needed another pass. RC3 on May 8 is being treated as a new Beta 1 in practice. Stability and performance over shipping early, which is the right call.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The full schedule is on the <a href=\"https:\/\/make.wordpress.org\/core\/2026\/04\/22\/wordpress-7-0-release-party-updated-schedule\/\" target=\"_blank\" rel=\"noreferrer noopener\">Core blog<\/a>. What matters more is what&#8217;s in the release. 7.0 is the biggest architectural shift since Gutenberg landed, and the AI Client in Core is only the most visible piece. Here&#8217;s what plugin and theme developers actually need to know before it ships.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-ai-client-makes-your-openai-wrapper-obsolete\"><span id=\"the-ai-client-makes-your-openai-wrapper-obsolete\">The AI Client makes your OpenAI wrapper obsolete<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve built AI features into a plugin, you know the pattern. OpenAI SDK via Composer, your own API key field in the plugin settings, wrappers for rate limits, retry logic, error handling. Second plugin, second API key field, double the maintenance. If you also wanted to support Anthropic or Google, that meant three dialogs, three SDKs, three update cycles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7.0 replaces all of that with a provider-agnostic PHP API. The Core implementation builds on the <code>wordpress\/php-ai-client<\/code> project Felix Arntz has been leading in the ecosystem for the past year. The entry point is a single function:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n$text = wp_ai_client_prompt( &#039;Write a haiku about WordPress.&#039; )\n    -&gt;generate_text();\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Which model answers is up to the site owner in the new Connectors screen under Settings. Anthropic, Google, and OpenAI come through official flagship provider plugins. Community providers use the same infrastructure. No API keys end up in plugin code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The builder covers five modalities: text, image, text-to-speech, speech, and video. Each has a <code>generate_*()<\/code> variant for raw output and a <code>generate_*_result()<\/code> variant for the full response with token usage, provider metadata, and model info.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n$text = wp_ai_client_prompt( &#039;Summarize the benefits of caching.&#039; )\n    -&gt;using_temperature( 0.7 )\n    -&gt;using_system_instruction( &#039;You are a WordPress developer.&#039; )\n    -&gt;using_model_preference( &#039;claude-sonnet-4-6&#039;, &#039;gpt-5.4&#039; )\n    -&gt;generate_text();\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><code>using_model_preference()<\/code> is a preference, not a binding. If the preferred model isn&#8217;t configured, the client picks the next matching one. Plugins should always accept a reasonable fallback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Feature detection runs locally, without an API call:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nif ( $builder-&gt;is_supported_for_text_generation() ) {\n    \/\/ show UI\n}\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Deterministic and free. No network traffic. The result depends only on which providers and models are configured on the site.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-a-rest-endpoint-in-five-lines\"><span id=\"a-rest-endpoint-in-five-lines\">A REST endpoint in five lines<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most useful pattern in the dev note is almost a throwaway line. <code>GenerativeAiResult<\/code> is serializable and goes directly into <code>rest_ensure_response()<\/code>. A full AI endpoint looks like this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nfunction my_rest_callback( WP_REST_Request $request ) {\n    $result = wp_ai_client_prompt( $request-&gt;get_param( &#039;prompt&#039; ) )\n        -&gt;generate_text_result();\n    return rest_ensure_response( $result );\n}\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><code>WP_Error<\/code> responses get a semantically correct HTTP status code automatically. For most AI features in plugin projects, this is the pattern you ship. It&#8217;s also the recommended workaround for the JavaScript API, which stays admin-only by default and isn&#8217;t recommended for distributed plugins.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-abilities-api-and-mcp\"><span id=\"abilities-api-and-mcp\">Abilities API and MCP<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The AI Client integrates with the Abilities API, which 7.0 also consolidates in Core. Your AI functions can be exposed as MCP tools and made available to external agents like Claude Desktop, Cursor, or other MCP clients. For agencies automating editorial or content workflows, this is the architecturally interesting point. Core provides the bridge, external agents bring the context, your plugins define the capabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The abilities are declared and discoverable through a standard API. That&#8217;s what makes it a protocol instead of a hack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wrote about <a href=\"https:\/\/www.unleash-wp.com\/blog\/forget-wordpress-ai-novamira-is-built-for-actual-dev-pros\/\" type=\"post\" id=\"1874\">Novamira earlier on UnleashWP<\/a>. That takes the opposite approach: raw PHP access for AI agents via MCP, built for staging environments. The AI Client and the Connectors API are the production-safe counterpart to the same problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-dataviews-replaces-wp-list-table\"><span id=\"dataviews-replaces-wp_list_table\">DataViews replaces <code>WP_List_Table<\/code><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For many agencies, the DataViews migration will matter more than the AI Client.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7.0 replaces the traditional <code>WP_List_Table<\/code> across posts, pages, users, and plugin list screens with a component-based interface built on <code>@wordpress\/components<\/code>. Filtering, sorting, switchable grid and list layouts. If you&#8217;ve built custom admin pages that subclass <code>WP_List_Table<\/code>, those need review before the update. Backward compatibility is partial at best. The new default theme for 2026 ships alongside it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you maintain white-label dashboards, custom list views, or any admin-UI customization on top of <code>WP_List_Table<\/code>, this is the item I&#8217;d sort to the top of my review list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-phase-3-collaboration-changes-what-lives-in-wordpress\"><span id=\"phase-3-collaboration-changes-what-lives-in-wordpress\">Phase 3 collaboration changes what lives in WordPress<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.0 is also the primary delivery vehicle for Gutenberg Phase 3. Three things ship that matter for content teams.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fragment-level commenting. A reviewer can highlight a specific phrase inside a block and attach a comment to that exact selection, not just the whole block. Small feature, huge workflow change for editorial teams that currently bounce between WordPress and Google Docs for review rounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Experimental real-time co-editing. Two or more users editing the same page simultaneously. It requires WebSocket support from the host, which is exactly where it gets complicated (more on that below).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Visual revision comparisons. Side-by-side diffs of page versions. Long overdue for content-heavy sites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Taken together, these reduce the dependency on Google Docs, Notion, and Trello for editorial review workflows. Client projects with shadow workflows on those tools become candidates for consolidation inside WordPress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-hosting-and-php-just-got-harder\"><span id=\"hosting-and-php-just-got-harder\">Hosting and PHP just got harder<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 7.2 and 7.3 are out. Minimum is now 7.4, and 8.3 is strongly recommended for anything touching AI features. Many current AI SDKs require PHP 8.x, and retaining lower minimums was blocking Core from adopting them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More important for managed hosting: real-time co-editing requires WebSocket support. That&#8217;s not universal on shared hosting. Before recommending 7.0 with co-editing enabled for a client, verify the host actually supports it. &#8220;Compatible with WordPress 7.0&#8221; and &#8220;compatible with WordPress 7.0&#8217;s headline features&#8221; stop meaning the same thing here.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-still-missing\"><span id=\"whats-still-missing\">What&#8217;s still missing<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No rate limiting, no cost capping in Core. The <code>wp_ai_client_prevent_prompt<\/code> filter blocks individual prompts, but it&#8217;s not a replacement for budget or quota logic. If you need to stop a plugin from burning through the provider key in production, you build that yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">API keys currently sit unencrypted in <code>wp_options<\/code>. <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/64789\" target=\"_blank\" rel=\"noreferrer noopener\">Trac #64789<\/a> tracks the encryption work. Resolution order is: environment variable beats PHP constant beats DB value. Until #64789 lands, set keys via <code>wp-config.php<\/code> or the server environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The three flagship AI providers are cloud-only. Ollama, LM Studio, and other local runtimes come in through community plugins, if someone builds them. For GDPR-sensitive setups, that&#8217;s where you pay attention.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-migrating-existing-plugins\"><span id=\"migrating-existing-plugins\">Migrating existing plugins<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve been using <code>wordpress\/php-ai-client<\/code> via Composer in your plugin: Core loads the library itself starting with 7.0. Loading it twice causes class redeclaration errors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two paths. The clean one: set <code>Requires at least: 7.0<\/code>, drop the Composer dependency, replace <code>AI_Client::prompt()<\/code> calls with <code>wp_ai_client_prompt()<\/code>. Done.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The conservative one for plugins that still need to support &lt;7.0: a conditional autoloader before <code>vendor\/autoload.php<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nif ( ! function_exists( &#039;wp_get_wp_version&#039; ) || version_compare( wp_get_wp_version(), &#039;7.0&#039;, &#039;&lt;&#039; ) ) {\n    require_once __DIR__ . &#039;\/vendor\/autoload.php&#039;;\n}\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Composer&#8217;s autoloader loads all dependencies at once, so the check has to wrap the whole block. Alternatively, split AI dependencies into a separate Composer setup if the plugin needs to unconditionally load other packages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>wordpress\/wp-ai-client<\/code> package (REST endpoints and JavaScript API) partially disables itself on 7.0+ and can stay loaded as-is. It will likely be discontinued in favor of a Gutenberg integration, so it&#8217;s not a path to build on long-term.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-coming-after-7-0\"><span id=\"whats-coming-after-7-0\">What&#8217;s coming after 7.0<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress is back on three major releases per year. 7.1 is tentatively scheduled for <strong>August 19, 2026<\/strong>, focused on media workflow improvements and more granular user permissions. 7.2 is expected in <strong>early December,<\/strong> continuing Phase 3 collaboration and laying groundwork for native multilingual support. Features that weren&#8217;t ready for 7.0, including advanced connector filtering, will slide to 7.1 rather than ship unfinished. That discipline, which was missing in some earlier cycles, is the most encouraging signal from 7.0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-i-m-doing-before-release\"><span id=\"what-im-doing-before-release\">What I&#8217;m doing before release<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Going through my own client work this week, every plugin that touches AI is on the migration list. The ones with their own API key field move first, because that&#8217;s the change users notice most: the field disappears from the plugin and moves to the Connectors screen. Lower maintenance surface, cleaner support conversations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The breaking one to check next: custom admin pages and list views. Anything subclassing <code>WP_List_Table<\/code> needs verification against DataViews. Test in a 7.0 staging environment before scheduling the production update.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After that: test <code>using_model_preference()<\/code> with at least two providers. Model behavior diverges in ways that only show up in production, especially with structured JSON outputs where not every provider is equally reliable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before client projects go live on 7.0: set API keys via environment variable or PHP constant, not through the Connectors screen. As long as Trac #64789 is open, the DB path is the weaker option. And if real-time co-editing is on the feature list for a client, verify the host&#8217;s WebSocket story before committing to a launch date.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The AI Client dev note with all the builder methods is on the Core blog. So is the full release schedule through May 20.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"WordPress 7.0 has a new release date, and it changes more for plugin developers than the headlines suggest.","protected":false},"author":1,"featured_media":1907,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"csco_post_video_bg_volume":false,"footnotes":""},"categories":[64,66,189],"tags":[213,180,191,273,275,211,277],"class_list":["post-1899","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ai","category-development","category-gutenberg","tag-7-0","tag-core","tag-wordpress-7-0","tag-wordpress-developer","tag-wordpress-learning","tag-wordpress-upgrade","tag-wordpress-websites","cs-entry","cs-video-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>WordPress 7.0 Release Date and AI Client: Developer Guide<\/title>\n<meta name=\"description\" content=\"WordPress 7.0 has a new release date and a new AI Client in Core that makes custom OpenAI wrappers obsolete. Migration guide for plugin developers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WordPress 7.0 Just Got a New Release Date and an AI Client That Makes Your OpenAI Wrapper Obsolete\" \/>\n<meta property=\"og:description\" content=\"The AI Client in Core replaces custom OpenAI, Anthropic, and Google wrappers. A senior developer guide to migration, the REST pattern, DataViews, and the hosting requirements that just got harder.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/\" \/>\n<meta property=\"og:site_name\" content=\"UnleashWP Dev Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-24T11:01:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:03:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Benjamin Zekavica\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes.\" \/>\n<meta name=\"twitter:creator\" content=\"@unleash_wp\" \/>\n<meta name=\"twitter:site\" content=\"@unleash_wp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Zekavica\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/\"},\"author\":{\"name\":\"Benjamin Zekavica\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#\\\/schema\\\/person\\\/c56e609b726e8914db2466c341363f17\"},\"headline\":\"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes.\",\"datePublished\":\"2026-04-24T11:01:35+00:00\",\"dateModified\":\"2026-04-24T11:03:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/\"},\"wordCount\":1389,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wordpress-7-0.png\",\"keywords\":[\"7.0\",\"Core\",\"WordPress 7.0\",\"wordpress developer\",\"wordpress learning\",\"WordPress Upgrade\",\"wordpress websites\"],\"articleSection\":[\"AI\",\"Development\",\"Gutenberg\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/\",\"name\":\"WordPress 7.0 Release Date and AI Client: Developer Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wordpress-7-0.png\",\"datePublished\":\"2026-04-24T11:01:35+00:00\",\"dateModified\":\"2026-04-24T11:03:44+00:00\",\"description\":\"WordPress 7.0 has a new release date and a new AI Client in Core that makes custom OpenAI wrappers obsolete. Migration guide for plugin developers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wordpress-7-0.png\",\"contentUrl\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wordpress-7-0.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wordpress-7-0-ai-client\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/\",\"name\":\"UnleashWP Dev Blog | Professional WordPress Development\",\"description\":\"Professional WordPress development insights\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#organization\"},\"alternateName\":\"UnleashWP\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#organization\",\"name\":\"UnleashWP\",\"alternateName\":\"UnleashWP\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/favicon-neu.png\",\"contentUrl\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/favicon-neu.png\",\"width\":1200,\"height\":1200,\"caption\":\"UnleashWP\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/unleash_wp\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unleashwp\",\"https:\\\/\\\/www.youtube.com\\\/@unleashwp\",\"https:\\\/\\\/github.com\\\/unleash-wp\"],\"description\":\"UnleashWP is a platform focused on professional WordPress engineering. It provides in depth articles, practical guidance and technical resources for developers and teams building reliable WordPress projects.\",\"email\":\"office@unleash-wp.com\",\"vatID\":\"DE 358 256 337\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/#\\\/schema\\\/person\\\/c56e609b726e8914db2466c341363f17\",\"name\":\"Benjamin Zekavica\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-benjamin-zekavica-96x96.png\",\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-benjamin-zekavica-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-benjamin-zekavica-96x96.png\",\"caption\":\"Benjamin Zekavica\"},\"description\":\"I\u2019m Benjamin Zekavica \u2014 founder of Kreo Pulse and UnleashWP. With a background in media design, development, and content, I build digital products and brands that are clear, efficient, and built for the long term.\",\"sameAs\":[\"https:\\\/\\\/www.unleash-wp.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.unleash-wp.com\\\/blog\\\/author\\\/benjamin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress 7.0 Release Date and AI Client: Developer Guide","description":"WordPress 7.0 has a new release date and a new AI Client in Core that makes custom OpenAI wrappers obsolete. Migration guide for plugin developers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/","og_locale":"en_US","og_type":"article","og_title":"WordPress 7.0 Just Got a New Release Date and an AI Client That Makes Your OpenAI Wrapper Obsolete","og_description":"The AI Client in Core replaces custom OpenAI, Anthropic, and Google wrappers. A senior developer guide to migration, the REST pattern, DataViews, and the hosting requirements that just got harder.","og_url":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/","og_site_name":"UnleashWP Dev Blog","article_published_time":"2026-04-24T11:01:35+00:00","article_modified_time":"2026-04-24T11:03:44+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png","type":"image\/png"}],"author":"Benjamin Zekavica","twitter_card":"summary_large_image","twitter_title":"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes.","twitter_creator":"@unleash_wp","twitter_site":"@unleash_wp","twitter_misc":{"Written by":"Benjamin Zekavica","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#article","isPartOf":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/"},"author":{"name":"Benjamin Zekavica","@id":"https:\/\/www.unleash-wp.com\/blog\/#\/schema\/person\/c56e609b726e8914db2466c341363f17"},"headline":"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes.","datePublished":"2026-04-24T11:01:35+00:00","dateModified":"2026-04-24T11:03:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/"},"wordCount":1389,"commentCount":0,"publisher":{"@id":"https:\/\/www.unleash-wp.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png","keywords":["7.0","Core","WordPress 7.0","wordpress developer","wordpress learning","WordPress Upgrade","wordpress websites"],"articleSection":["AI","Development","Gutenberg"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/","url":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/","name":"WordPress 7.0 Release Date and AI Client: Developer Guide","isPartOf":{"@id":"https:\/\/www.unleash-wp.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#primaryimage"},"image":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png","datePublished":"2026-04-24T11:01:35+00:00","dateModified":"2026-04-24T11:03:44+00:00","description":"WordPress 7.0 has a new release date and a new AI Client in Core that makes custom OpenAI wrappers obsolete. Migration guide for plugin developers.","breadcrumb":{"@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#primaryimage","url":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png","contentUrl":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/wordpress-7-0.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/www.unleash-wp.com\/blog\/wordpress-7-0-ai-client\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.unleash-wp.com\/blog\/"},{"@type":"ListItem","position":2,"name":"WordPress 7.0 Just Got a New Release Date. The AI Client Is Just the Start of What Changes."}]},{"@type":"WebSite","@id":"https:\/\/www.unleash-wp.com\/blog\/#website","url":"https:\/\/www.unleash-wp.com\/blog\/","name":"UnleashWP Dev Blog | Professional WordPress Development","description":"Professional WordPress development insights","publisher":{"@id":"https:\/\/www.unleash-wp.com\/blog\/#organization"},"alternateName":"UnleashWP","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.unleash-wp.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.unleash-wp.com\/blog\/#organization","name":"UnleashWP","alternateName":"UnleashWP","url":"https:\/\/www.unleash-wp.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.unleash-wp.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2025\/12\/favicon-neu.png","contentUrl":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2025\/12\/favicon-neu.png","width":1200,"height":1200,"caption":"UnleashWP"},"image":{"@id":"https:\/\/www.unleash-wp.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/unleash_wp","https:\/\/www.linkedin.com\/company\/unleashwp","https:\/\/www.youtube.com\/@unleashwp","https:\/\/github.com\/unleash-wp"],"description":"UnleashWP is a platform focused on professional WordPress engineering. It provides in depth articles, practical guidance and technical resources for developers and teams building reliable WordPress projects.","email":"office@unleash-wp.com","vatID":"DE 358 256 337","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}},{"@type":"Person","@id":"https:\/\/www.unleash-wp.com\/blog\/#\/schema\/person\/c56e609b726e8914db2466c341363f17","name":"Benjamin Zekavica","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/cropped-benjamin-zekavica-96x96.png","url":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/cropped-benjamin-zekavica-96x96.png","contentUrl":"https:\/\/www.unleash-wp.com\/blog\/wp-content\/uploads\/2026\/04\/cropped-benjamin-zekavica-96x96.png","caption":"Benjamin Zekavica"},"description":"I\u2019m Benjamin Zekavica \u2014 founder of Kreo Pulse and UnleashWP. With a background in media design, development, and content, I build digital products and brands that are clear, efficient, and built for the long term.","sameAs":["https:\/\/www.unleash-wp.com\/blog"],"url":"https:\/\/www.unleash-wp.com\/blog\/author\/benjamin\/"}]}},"lang":"en","translations":{"en":1899},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/posts\/1899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/comments?post=1899"}],"version-history":[{"count":7,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/posts\/1899\/revisions"}],"predecessor-version":[{"id":1906,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/posts\/1899\/revisions\/1906"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/media\/1907"}],"wp:attachment":[{"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/media?parent=1899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/categories?post=1899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unleash-wp.com\/blog\/wp-json\/wp\/v2\/tags?post=1899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}