{"id":1429,"date":"2026-07-21T12:22:17","date_gmt":"2026-07-21T10:22:17","guid":{"rendered":"https:\/\/belgrade.wordcamp.org\/2026\/?post_type=wcb_session&#038;p=1429"},"modified":"2026-09-03T16:04:18","modified_gmt":"2026-09-03T14:04:18","slug":"build-your-first-ai-powered-wordpress-plugin","status":"publish","type":"wcb_session","link":"https:\/\/belgrade.wordcamp.org\/2026\/session\/build-your-first-ai-powered-wordpress-plugin\/","title":{"rendered":"Build your first AI-Powered WordPress plugin [EN]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">So you&#8217;ve heard about the WordPress Core AI projects. Maybe you&#8217;ve read the blog posts, skimmed the GitHub repositories, or watched a talk about what&#8217;s coming. But there&#8217;s a massive difference between understanding something conceptually and actually building with it. If that\u2019s the case, then this workshop is for you. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this workshop, you\u2019ll learn to build a working AI-powered WordPress plugin from scratch. You&#8217;ll leave with functioning code on your laptop and a solid understanding of how each of these tools works, so you can start experimenting on your own. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What we&#8217;ll build: <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re going to create a plugin that registers custom abilities, exposes them via the Model Context Protocol, and uses the WP AI Client to add intelligent behaviour. By the end, you&#8217;ll have a plugin that lets an AI assistant interact with your WordPress site\u2014discovering what&#8217;s possible and taking actions on your behalf. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prerequisites: <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A laptop with a local WordPress development environment that you are familiar with (I\u2019ll be using WordPress Studio)<\/li>\n\n\n\n<li>WordPress 7.1 installed<\/li>\n\n\n\n<li>Familiarity with WordPress plugin development, PHP, and JavaScript <\/li>\n\n\n\n<li>Git, Composer and Node.js installed and working, the latest stable versions <\/li>\n\n\n\n<li>An API key from one of the following AI model providers: \n<ul class=\"wp-block-list\">\n<li>Google <\/li>\n\n\n\n<li>Anthropic <\/li>\n\n\n\n<li>OpenAI <\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>If you prefer not to register an API Key with one of these providers, you can also install Ollama and a local model of your choice, but you will need to do this before the workshop. These models should give you a working offline experience: \n<ul class=\"wp-block-list\">\n<li>Google Gemma <\/li>\n\n\n\n<li>Qwen <\/li>\n\n\n\n<li>Mistral\/Ministral <\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>One of the following MCP-compatible agentic AI applications: \n<ul class=\"wp-block-list\">\n<li>Claude Desktop <\/li>\n\n\n\n<li>VS Code with GitHub Copilot <\/li>\n\n\n\n<li>Cursor <\/li>\n\n\n\n<li>Claude Code is also acceptable if you use that. <\/li>\n\n\n\n<li>You may use your own MCP-compatible AI agent, but I won\u2019t be able to support you if things go wrong. <\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The patience to troubleshoot if things don&#8217;t work the first time (they rarely do, and that&#8217;s part of learning)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Fair warning<\/em>: once you see an AI assistant execute an ability you wrote yourself, you&#8217;ll probably spend the rest of the weekend thinking of things to build. Don&#8217;t say I didn&#8217;t warn you. Note to speaker team: this workshop requires at least a 2-hour block of time to complete comfortably.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So you&#8217;ve heard about the WordPress Core AI projects. Maybe you&#8217;ve read the blog posts, skimmed the GitHub repositories, or watched a talk about what&#8217;s coming. But there&#8217;s a massive difference between understanding something conceptually and actually building with it. If that\u2019s the case, then this workshop is for you. In this workshop, you\u2019ll learn [&hellip;]<\/p>\n","protected":false},"author":7511363,"featured_media":0,"template":"single-item-session-en","meta":{"_wcpt_session_time":1789823400,"_wcpt_session_duration":4800,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[1993],"footnotes":""},"session_track":[42],"session_category":[40],"class_list":["post-1429","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-workshops","wcb_session_category-english"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pgXYN8-n3","session_date_time":{"date":"September 19, 2026","time":"3:10 pm"},"session_speakers":[{"id":"1993","slug":"jonathan-bossenger-en","name":"Jonathan Bossenger &#8211;","link":"https:\/\/belgrade.wordcamp.org\/2026\/speaker\/jonathan-bossenger-en\/"}],"session_cats_rendered":"English","_links":{"self":[{"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":5,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1429\/revisions"}],"predecessor-version":[{"id":2631,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1429\/revisions\/2631"}],"speakers":[{"embeddable":true,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/speakers\/1993"}],"author":[{"embeddable":true,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wporg\/v1\/users\/psykro"}],"wp:attachment":[{"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/media?parent=1429"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_track?post=1429"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/belgrade.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_category?post=1429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}