{"id":1663,"date":"2026-03-30T14:21:34","date_gmt":"2026-03-30T13:21:34","guid":{"rendered":"https:\/\/portugal.wordcamp.org\/2026\/?post_type=wcb_session&#038;p=1663"},"modified":"2026-05-19T23:10:29","modified_gmt":"2026-05-19T22:10:29","slug":"stop-doing-it-yourself-building-ai-powered-admin-tools-with-the-wordpress-ai-api","status":"publish","type":"wcb_session","link":"https:\/\/portugal.wordcamp.org\/2026\/session\/stop-doing-it-yourself-building-ai-powered-admin-tools-with-the-wordpress-ai-api\/","title":{"rendered":"Stop Doing It Yourself: Building AI-Powered Admin Tools with the WordPress AI API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Every WordPress site owner knows the drill. You finish writing a post, and then the real work starts: pick a category, think up tags, write a meta description, check alt text, approve comments, organize taxonomies. None of it is hard \u2014 but all of it is tedious, repetitive, and easy to forget.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What if your users could describe what they want in plain language \u2014 right from the WordPress admin \u2014 and your plugin handled the rest?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this hands-on workshop for developers with plugin development experience, you&#8217;ll learn how to combine three core pieces of the WordPress AI Building Blocks initiative to build admin-facing tools that automate everyday content workflows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Custom Abilities<\/strong> \u2014 You&#8217;ll use the Abilities API to define your own discoverable WordPress capabilities: creating posts with metadata, setting up taxonomy structures, moderating comments, auditing media, and more. These are the building blocks that tell WordPress \u2014 and AI \u2014 what your site can do.<\/li>\n\n\n\n<li><strong>Connectors<\/strong> \u2014 You&#8217;ll use the Connectors settings screen in WP Admin to configure API credentials for providers like OpenAI, Anthropic, and Google. No hardcoded keys, no per-plugin configuration \u2014 just a centralized UI that securely manages credentials for every plugin on the site.<\/li>\n\n\n\n<li><strong>The JavaScript AI Client<\/strong> \u2014 You&#8217;ll use the JavaScript AI Client to interact with the WordPress AI API directly from the admin. Using the built-in prompt builder, you&#8217;ll send prompts, receive structured responses, and trigger your custom Abilities \u2014 all from a browser-based admin interface.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">By the end, you&#8217;ll have the foundation and patterns to build solutions for the kinds of workflows your users deal with every day, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I just finished this post \u2014 publish it as a draft, categorize it as &#8216;Travel,&#8217; add relevant tags, and write me a meta description under 160 characters.<\/li>\n\n\n\n<li>Set up a &#8216;Recipes&#8217; category with subcategories for Breakfast, Lunch, Dinner, and Desserts.<\/li>\n\n\n\n<li>Find a testimonials pattern in my theme and add it to my About page as a draft.<\/li>\n\n\n\n<li>Approve all pending comments on my latest post and reply to the one asking about pricing.<\/li>\n\n\n\n<li>Find all images missing alt text and suggest some based on the filename.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This workshop is designed for WordPress plugin developers. You should be comfortable building plugins, working with the REST API, and writing JavaScript for the admin. No prior AI or machine learning experience is needed \u2014 we&#8217;ll cover everything you need to know about the AI APIs as we go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What you&#8217;ll walk away with:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A working admin-facing plugin you can extend for your own projects<\/li>\n\n\n\n<li>Hands-on experience creating custom Abilities, configuring Connectors, and using the JavaScript AI Client<\/li>\n\n\n\n<li>Patterns for single-shot AI actions and multi-step workflows triggered from the admin<\/li>\n\n\n\n<li>The tools to turn any repetitive WordPress workflow into a plain-language AI-powered feature<\/li>\n\n\n\n<li>A clear understanding of how the AI Building Blocks fit together and where the project is headed<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group has-base-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-c9a371c5 wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\"><strong>Workshop Requirements:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A copy of the <a href=\"https:\/\/github.com\/wptrainingteam\/wcpt-2026-ai-workshop\" target=\"_blank\" rel=\"noopener\">workshop repository<\/a><\/li>\n\n\n\n<li>A local WordPress environment. We&#8217;ll be using WordPress Studio \u2014 <a href=\"https:\/\/developer.wordpress.com\/studio\/\" target=\"_blank\" rel=\"noopener\">download<\/a><\/li>\n\n\n\n<li>Node.js v20+ (via NVM recommended)<\/li>\n\n\n\n<li>AI provider API key \u2014 Anthropic, OpenAI, or Google<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Every WordPress site owner knows the drill. You finish writing a post, and then the real work starts: pick a category, think up tags, write a meta description, check alt text, approve comments, organize taxonomies. None of it is hard \u2014 but all of it is tedious, repetitive, and easy to forget. What if your [&hellip;]<\/p>\n","protected":false},"author":7543064,"featured_media":0,"template":"","meta":{"_nakedcatplugins_page_lang":"","_nakedcatplugins_page_dir":"ltr","_wcpt_session_time":1778940000,"_wcpt_session_duration":12600,"_wcpt_session_type":"session","_wcpt_session_slides":"https:\/\/portugal.wordcamp.org\/2026\/files\/2026\/05\/Workshop-Ryan-Welcher.pdf","_wcpt_session_video":"","_wcpt_speaker_id":[1664],"footnotes":""},"session_track":[30],"session_category":[42,36],"class_list":["post-1663","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-workshops","wcb_session_category-3h30min","wcb_session_category-en"],"jetpack_sharing_enabled":true,"session_date_time":{"date":"16\/05\/2026","time":"15:00"},"session_speakers":[{"id":"1664","slug":"ryan-welcher","name":"Ryan Welcher","link":"https:\/\/portugal.wordcamp.org\/2026\/speaker\/ryan-welcher\/"}],"session_cats_rendered":"3h30min, EN","_links":{"self":[{"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":4,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1663\/revisions"}],"predecessor-version":[{"id":3032,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/sessions\/1663\/revisions\/3032"}],"speakers":[{"embeddable":true,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/speakers\/1664"}],"author":[{"embeddable":true,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wporg\/v1\/users\/welcher"}],"wp:attachment":[{"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/media?parent=1663"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_track?post=1663"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/portugal.wordcamp.org\/2026\/wp-json\/wp\/v2\/session_category?post=1663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}