INSERT INTO `wlcj_options` VALUES (4318703, '_transient_timeout_feed_mod_94d0b45cbbe5640144493b43a9e8f566', '1772578959', 'no'); 
INSERT INTO `wlcj_options` VALUES (4318704, '_transient_feed_mod_94d0b45cbbe5640144493b43a9e8f566', '1772535759', 'no'); 
INSERT INTO `wlcj_options` VALUES (4318705, '_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1772578959', 'no'); 
INSERT INTO `wlcj_options` VALUES (4318706, '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:3:"\n\n\n";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:112:"\n	\n	\n	\n	\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:16:"WordPress Planet";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:28:"http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:2:"en";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:47:"WordPress Planet - http://planet.wordpress.org/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:50:{i:0;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:96:"Open Channels FM: What’s New at CloudFest Hackathon 2026: Trends, Changes, and Creative Energy";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650438";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:97:"https://openchannels.fm/whats-new-at-cloudfest-hackathon-2026-trends-changes-and-creative-energy/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:185:"In this episode enjoy a chat about the CloudFest Hackathon 2026\'s history, future initiatives, and community engagement, emphasizing inclusivity, mentorship, and project sustainability.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 03 Mar 2026 10:22:42 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:11:"Matt: Emacs";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151334";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:28:"https://ma.tt/2026/03/emacs/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:740:"<p class="wp-block-paragraph">People are doing pretty interesting things with <a href="https://www.gnu.org/software/emacs/">Emacs</a> (now on version 30.2!) these days, if you haven&#8217;t checked in recently. The bleeding edge has always been people into <a href="https://orgmode.org/">Org Mode</a>. <a href="https://sachachua.com/blog/2026/01/using-whisper-el-to-capture-text-to-speech-in-emacs/">Sacha Chua has hooked up Whisper to Emacs</a> to talk to it.</p>\n\n\n\n<p class="wp-block-paragraph">Emacs is probably one of the first and best examples of self-modifying software that contours to your brain. With vibe coding, we may get back to that space where everyone&#8217;s personal setup is like a crazy specific Emacs config file.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 03 Mar 2026 10:11:53 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"Open Channels FM: How Freelancers Can Tame Digital Distractions";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650174";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"https://openchannels.fm/how-freelancers-can-tame-digital-distractions/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:173:"Starting conversations around strategies to reduce digital distractions, emphasizing boundaries for emails, social media habits, and personalizing routines for better focus.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 03 Mar 2026 09:29:53 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:71:"Gutenberg Times: Schedule of WordCamp Asia Birgit’s selected sessions";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=44484";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:79:"https://gutenbergtimes.com/schedule-of-wordcamp-asia-birgits-selected-sessions/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6541:"<p class="wp-block-paragraph">This year&#8217;s WordCamp Asia just published the first version of its <a href="https://asia.wordcamp.org/2026/schedule/">schedule with sessions and workshops</a>. Contributor Day also has a few workshop slots. If you registered for Contributor Day you are looking at three days of learning and discussions.</p>\n\n\n\n<p class="wp-block-paragraph">Here is my personal list of talks and workshops, mostly about the block editor, themes or AI in WordPress. I will update the post with the video links after WordCamp Asia once the recordings are uploaded to WordPress TV. </p>\n\n\n\n<p class="wp-block-paragraph">Livestreams are available on April 10 and 11 on the three session tracks, Foundation, Growth and Enterprise. Times are all local Indian Standard time (UTC +5.30).</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Updated March 2, 2026</strong>,</p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://asia.wordcamp.org/2026/schedule/">The schedule</a> has a few placeholder spots for </p>\n\n\n\n<ul class="wp-block-list">\n<li>Journalism and the Open Web </li>\n\n\n\n<li>AI and WordPress </li>\n\n\n\n<li>And quite few TBD for talks and workshop</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph">The schedule for the Contributor Day hasn&#8217;t been finalized either. It&#8217;s unclear when my workshop <a href="https://asia.wordcamp.org/2026/session/building-a-block-theme-from-scratch/"><strong>Building a block theme from scratch</strong></a> will take place. There are three workshop slots reserved. We will have a <a href="https://asia.wordcamp.org/2026/wordpress-7-0-release-on-contributor-day/">WordPress 7.0 Release</a> ssession and Open-source Library spaces as well. </p>\n\n\n\n<p class="wp-block-paragraph">The conference days also have six workshop slots that are still &#8220;TBA&#8221;. </p>\n\n\n\n<p class="wp-block-paragraph">The program team is working on the final version of the schedule. Make sure to check back on weekly basis.  </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<h2 class="wp-block-heading">Birgit&#8217;s selected sessions</h2>\n\n\n\n<h3 class="wp-block-heading">April 10, 2026</h3>\n\n\n\n<p class="wp-block-paragraph">After opening remarks and introduction of speakers the day begins with</p>\n\n\n\n<p class="wp-block-paragraph">10 am <a href="https://asia.wordcamp.org/2026/session/fireside-chat/"><strong>Fireside Chat with Mary Hubbard</strong></a></p>\n\n\n\n<p class="wp-block-paragraph">1:00 pm <a href="https://asia.wordcamp.org/2026/session/from-static-to-dynamic-mastering-the-interactivity-api/"><strong>From Static to Dynamic: Mastering the Interactivity API</strong></a> with Ryan Welcher</p>\n\n\n\n<p class="wp-block-paragraph">2:50 pm <a href="https://asia.wordcamp.org/2026/session/lost-found-in-ai-wonderland-an-honest-journey-through-hype-headaches-and-real-wins/"><strong>Lost &amp; Found in AI Wonderland: An Honest Journey Through Hype, Headaches, and Real Wins</strong></a> with Nirav Mehta</p>\n\n\n\n<p class="wp-block-paragraph">3:55 pm <a href="https://asia.wordcamp.org/2026/session/ten-times-the-value-why-automation-is-worth-the-investment-in-open-source/"><strong>Ten Times the Value: Why Automation Is Worth the Investment in Open Source</strong></a> with Jonathan Desrosiers</p>\n\n\n\n<h3 class="wp-block-heading">April 11, 2026 </h3>\n\n\n\n<p class="wp-block-paragraph">9:15 am  <strong><a href="https://asia.wordcamp.org/2026/session/wordpress-playground-ai-building-autonomous-testing-pipelines/">WordPress Playground + AI: Building Autonomous Testing Pipelines</a> </strong>with Fellyph Cintra</p>\n\n\n\n<p class="wp-block-paragraph">11:15 <strong><a href="https://asia.wordcamp.org/2026/session/entity-first-optimization-how-to-make-wordpress-content-machine-readable/">Entity-First Optimization: How to Make WordPress Content Machine-Readable</a> </strong>with Adeline Dahal</p>\n\n\n\n<p class="wp-block-paragraph">11:35 am: <strong><a href="https://asia.wordcamp.org/2026/session/from-chaos-to-clarity-scaling-teams-with-block-theme-standards/">From Chaos to Clarity: Scaling Teams with Block Theme Standards</a></strong> with JC Palmes</p>\n\n\n\n<p class="wp-block-paragraph">12:25 pm <a href="https://asia.wordcamp.org/2026/session/build-for-what-comes-next-how-enterprise-wordpress-is-powering-the-agentic-future/"><strong>Build for What Comes Next: How Enterprise WordPress Is Powering the Agentic Future</strong></a> with James Giroux</p>\n\n\n\n<p class="wp-block-paragraph">3:00 pm Don&#8217;t miss: <a href="https://asia.wordcamp.org/2026/session/closing-keynote-wordpress-co-founder-matt-mullenweg/"><strong>Closing Keynote: WordPress Co-Founder Ma.tt Mullenweg</strong></a></p>\n\n\n\n<h2 class="wp-block-heading">First time in Mumbai?</h2>\n\n\n\n<p class="wp-block-paragraph">The communication team published some really cool posts about Mumbai and India, which is super helpful for anyone heading there for their first time.</p>\n\n\n\n<div class="wp-block-columns has-light-background-background-color has-background is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">\n<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">\n<h3 class="wp-block-heading">First-time WordCamper</h3>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://asia.wordcamp.org/2026/how-to-make-the-most-of-your-first-wordcamp/">How to Make the Most of Your First WordCamp Asia?</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/about-the-venue/">Venue</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/how-to-prepare-for-contributor-day/">How to Prepare for Contributor Day?</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/5-career-conversations/">5 Career Conversations You Will Have at WCAsia26</a></li>\n</ul>\n</div>\n\n\n\n<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">\n<h3 class="wp-block-heading">Food, Culture and Travel</h3>\n\n\n\n<ul class="wp-block-list has-small-font-size">\n<li><a href="https://asia.wordcamp.org/2026/food-walk/">Your Next Bite Is Here</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/sim-cards-internet-and-upi-payments-made-simple/">SIM Cards, Internet, and UPI Payments Made Simple</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/namaste-india-guide-to-indian-culture/">Namaste India! Guide to Indian Culture</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/mumbai-on-a-plate/">Mumbai on a Plate</a></li>\n\n\n\n<li><a href="https://asia.wordcamp.org/2026/things-to-do-in-mumbai/">Things to do in Mumbai</a></li>\n</ul>\n</div>\n</div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 02 Mar 2026 12:01:31 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:66:"Open Channels FM: Open Channels New YouTube Channel and Newsletter";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650400";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:73:"https://openchannels.fm/open-channels-new-youtube-channel-and-newsletter/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:80:"Host Bob Dunn announces  a new YouTube channel and a new newsletter and roundup.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 02 Mar 2026 11:45:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:70:"Open Channels FM: Omnisend Continues Their Support of Open Channels FM";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650182";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:77:"https://openchannels.fm/omnisend-continues-their-support-of-open-channels-fm/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:141:"Omnisend continues to sponsor us, offering a powerful marketing platform for ecommerce. They provide easy migration support and so much more.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 02 Mar 2026 09:46:50 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"Matt: Sunday Links";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151324";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:35:"https://ma.tt/2026/03/sunday-links/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:2313:"<ul class="wp-block-list">\n<li><a href="https://transparency.automattic.com/2026/02/23/transparency-report-update-july-december-2025/">Automattic&#8217;s new transparency report is up</a>, and <a href="https://transparency.automattic.com/wordpress-dot-com/intellectual-property/intellectual-property-2025-jul-1-dec-31/">TorrentFreak covers how AI-generated notices have been flooding the system</a>. We don&#8217;t talk about it much, but for two decades now Automattic has been a fierce fighter for free speech on behalf of our customers and journalists. Our legal team has gotten a big upgrade in the past 15 months so look for more in this area.</li>\n\n\n\n<li>WordPress 7.0 is shaping up to be a great release, and we&#8217;re moving fast! As someone noted, after <a href="https://make.wordpress.org/core/2026/02/18/wordpress-7-0-product-review-meeting-with-matt/">the product review</a>, <a href="https://x.com/SteveJBurge/status/2027152882445775168">we got the new Connectors setting screen in beta 2 at AI speed</a>.</li>\n\n\n\n<li>Yesterday, <a href="https://tinkertendo.com/">TinkerTendo</a> hosted a fun <a href="https://luma.com/a6t92ohv">BioArena Hackathon</a>. <a href="https://cloudup.com/cYjePWS3QRx">From the pics, it looked like a great event</a>.</li>\n\n\n\n<li>Kudos to WP community member Matt Medeiros, <a href="https://www.youtube.com/watch?v=zcKBDzrER3g">who used AI to spin up a quick webapp to help his community</a> track which streets had been plowed after that crazy snowstorm. Making local communities better is definitely part of the WordPresser ethos.</li>\n\n\n\n<li><a href="https://claude.com/import-memory">Claude&#8217;s hack to import your memory</a> is an amazing application of what I hoped for with the <a href="https://wordpress.org/data-liberation/">Data Liberation push on WordPress.org</a>. However, it&#8217;s just re-arranging deck chairs on the Titanic; what you really want is for that memory to be personal to you and work with every model, which is what <a href="https://github.com/openclaw/openclaw">OpenClaw</a> and its many claw descendents, like <a href="https://github.com/zeroclaw-labs/zeroclaw">ZeroClaw</a>, do for you. It reminds me of <a href="https://tantek.com/presentations/2005/01/attentionxml.html">Tantek&#8217;s 2005 Attention.xml presentation</a>.</li>\n</ul>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 01 Mar 2026 18:55:49 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:83:"Gutenberg Times: Gutenberg Changelog #127 – WordPress 7.0 Beta and Gutenberg 22.6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:53:"https://gutenbergtimes.com/?post_type=podcast&p=44570";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:78:"https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:68978:"<p class="wp-block-paragraph">In Episode 127 of the GT Changelog podcast, Birgit Pauli-Haack and Jessica Lyschik dive deep into the upcoming release of WordPress 7.0, focusing on the features arriving with beta 2 and their impact on users and developers. They begin by emphasizing the importance of testing betas, especially for plugin and theme creators, highlighting how early testing helps prevent compatibility issues at launch. A walk-through of the beta testing process, tools like the beta tester plugin, and considerations for time zone differences during the official release (scheduled for April 9th) are discussed.</p>\n\n\n\n<p class="wp-block-paragraph">The majority of their conversation centers around the headline features of WordPress 7.0. Real-time collaboration steals the spotlight, now allowing multiple users to edit posts and pages simultaneously—streamlining workflows and minimizing version conflicts. The episode also celebrates the introduction of visual revisions within the block editor, making change tracking clearer and more intuitive. Other notable updates include responsive block visibility controls, enhanced navigation and submenu options, improved lightbox support for gallery blocks, and the long-awaited introduction of the icon and breadcrumbs blocks.</p>\n\n\n\n<p class="wp-block-paragraph">Birgit Pauli-Haack and Jessica Lyschik also discuss the new content-only pattern editing feature, revamped backend color schemes, and incremental improvements for both end-users and developers, such as the font library UI and under-the-hood advances. They note that some planned features, like the playlist and tabs blocks, did not make the cut for 7.0 but might arrive in future releases. The episode ends with practical advice: test your sites early and stay informed to ensure a seamless transition to WordPress 7.0.</p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/">Show Notes</a> / <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/">Transcript</a></p>\n\n\n\n<ul class="wp-block-list">\n<li>Editor: <a href="https://www.linkedin.com/in/sandy-reed/">Sandy Reed</a></li>\n\n\n\n<li>Logo: <a href="https://markuraine.com/">Mark Uraine</a></li>\n\n\n\n<li>Production: <a href="https://icodeforapurpose.com">Birgit Pauli-Haack</a></li>\n</ul>\n\n\n\n<p class="has-larger-font-size wp-block-paragraph" id="shownotes"><strong>Show Notes</strong></p>\n\n\n\n<h2 class="wp-block-heading">Special guest: Jessica Lyschik</h2>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://x.com/jessicalyschik">https://x.com/jessicalyschik</a></li>\n\n\n\n<li><a href="https://www.youtube.com/@jessicalyschik">https://www.youtube.com/@jessicalyschik</a></li>\n\n\n\n<li><a href="https://www.youtube.com/redirect?event=channel_description&amp;redir_token=QUFFLUhqa2tsT25ETnVSM20xS3ZoNDhpTkhwUVhlM2J0UXxBQ3Jtc0tsY2NmeEdxT01xdEMzMlR4WWxjYll2bGoyMXlSZVZFZm82alVtS3hpdW01Y3U1R3U0RGVBT19lbEhQeXNYeTcxZ0EwaVg4YUlYV2ZGR085ZXA1U0pYYzdSelRnejR5cDBHUm1pZDRpQi1fdHRPbkw3UQ&amp;q=https%3A%2F%2Fprofiles.wordpress.org%2Fluminuu">profiles.wordpress.org/luminuu</a></li>\n\n\n\n<li><a href="https://www.youtube.com/playlist?list=PLtf0_A0KILu5lspB8oXQjinPhIe87s3nJ">Greyd Conversations, to be found on YouTube</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">WordPress 7.0</h2>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://make.wordpress.org/test/2026/02/20/help-test-wordpress-7-0/">Help Test WordPress 7.0</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/24/iframed-editor-changes-in-wordpress-7-0/">Iframed Editor Changes in WordPress 7.0</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2025/12/11/planning-for-7-0/#comment-48392" id="https://make.wordpress.org/core/2025/12/11/planning-for-7-0/#comment-48392" type="link">What made it into WordPress 7.0</a> </li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/">What’s new in Gutenberg 22.6? (25 February)</a></li>\n</ul>\n\n\n\n<p class="has-large-font-size wp-block-paragraph">Stay in Touch</p>\n\n\n\n<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">\n<ul class="wp-block-list">\n<li>Did you like this episode? <a href="https://lovethepodcast.com/gutenbergchangelog"><strong>Please write us a review </strong></a></li>\n\n\n\n<li>Ping us on X (formerly known as Twitter) or send DMs with questions. <a href="https://twitter.com/gutenbergtimes">@gutenbergtimes </a>and <a href="https://twitter.com/bph">@bph</a>.</li>\n\n\n\n<li><em>If you have questions or suggestions, or news you want us to include, send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. </em></li>\n\n\n\n<li><em>Please write us a review on iTunes! <a href="https://gutenbergtimes.com/itunes/">(Click here to learn how)</a></em></li>\n</ul>\n</div></div>\n\n\n\n<p class="has-large-font-size wp-block-paragraph" id="transcript"><strong>Transcript</strong></p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So welcome to our 127th episode of the Gutenberg Changelog podcast. In today&#8217;s episode, we will talk mostly about WordPress 7.0 because Beta 2 has been out and a little bit about Gutenberg 22.6, but most of what&#8217;s in that release is actually coming to WordPress 7.0. </p>\n\n\n\n<p class="wp-block-paragraph">I&#8217;m your host, Birgit Pauli-Haack, curator at the Gutenberg Times and a full-time core contributor for the WordPress open source project, sponsored by Automattic. And today, Jessica Lyschik is with me on the show again, and we will tackle most of the WordPress 7.0 updates. Jessica is a core contributor to WordPress, default theme co-lead for Twenty Twenty-Four, speed building champion Twenty Twenty-Five, and works as a senior developer for Grade, a company building WordPress products for agencies and large companies. And Jessica is a regular host on the Grade Conversations to be found on YouTube. How are you today, Jessica? Welcome to the show again.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik:</em> Thanks for having me. I&#8217;m good. I&#8217;m good. I mean, the sun is shining outside, so I&#8217;m expecting hopefully a nice workday today and then catch some sun rays because it&#8217;s been a long winter here. Yeah, it&#8217;s been very cold, very moody, cloudy. So the sun is very nice. Having some sunshine is a very nice change.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, I was walking the streets of Munich the other day and I saw the little plants kind of coming out, crocuses and whites and yellow. So spring is coming.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik: </em>Definitely, definitely.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>And it&#8217;s— I actually saw a sunrise at 6:30 in the morning. So the days are getting longer too, which is part of my mood changing thing. Yeah. </p>\n\n\n\n<h3 class="wp-block-heading">What’s Released &#8211; WordPress 7.0</h3>\n\n\n\n<p class="wp-block-paragraph">So WordPress 7.0 comes in big steps and WordPress 7.0 Beta 2 was released just yesterday and we&#8217;re recording this on February 27th. So let&#8217;s go through the list of things that actually made it into 7.0. I&#8217;m also sharing in the show notes, not only the list, but also a link to the help test WordPress 7.0 that the test team has put together with some nice instructions and videos on how things are supposed to work. And you have to— can go in and test if they&#8217;re actually working like that or if something else is breaking. And you ask dear listeners to help do that. I also always kind of say, the best way to learn what&#8217;s in WordPress 7.0 is to heed to the call of testing, because that&#8217;s the first step to learn what&#8217;s working for you, what works with your sites and with your plugins. And it will be really helpful to know this before the release comes out. So if you just follow the instructions on how to present feedback and bug reports. Your team has started testing. </p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: When you have a plugin and you do not look at the Beta versions or release candidates and suddenly the release date rolls around and you&#8217;re not prepared and clients update their websites and then they say, hey, my site&#8217;s broken, then you&#8217;re in trouble. So avoid that as best as possible. That&#8217;s why I&#8217;m glad that we have Beta phase and release candidate phase so we can like really have a closer look. And it&#8217;s so easy with the Beta tester plugin. To be honest, that&#8217;s still the one way I&#8217;m using it, just installing the plugin. I configure the default configuration a little bit differently only to show me Beta and release candidates versions. And then it&#8217;s just hit update and go for it with whatever installation you have at the moment. So that&#8217;s actually, I find this to be one of the easiest ways without needing to have big technical knowledge about that. Of course there&#8217;s WP CLI, there&#8217;s many other ways you can achieve that, but for me, this is probably the easiest and can be thrown on any installation, local or online, probably not live sites, but any staging or testing environment that you have.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So exactly. And it&#8217;s a good point. Don&#8217;t test this on a live site.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah. Things can break. I mean, that&#8217;s why it&#8217;s called a Beta version or release candidate. Things are supposed to break. I spotted an issue this morning with something, not a big issue, but it is an issue. So we have to look into this, but we still have time. How long are we away? 6 weeks, I think about 6 weeks.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, April 9th is the final release date. So we are a little bit 5 weeks more than 6 weeks.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: And it will be, I just saw the note, will be released during Contributor Day at WordCamp Asia. So some of the release squad members will be in Mumbai to hit the big button. But of course, it&#8217;s all remotely and you can do it from anywhere. So it doesn&#8217;t really matter where the release squad is. The only thing that might screw it a little bit, skew it, not screw it, skew it a little bit is the time difference between where the other release squad members are and the ones in Mumbai. But for Europe, it&#8217;s a 3.5-hour time difference. So it&#8217;s not that big of a deal. You just need to organize it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, usually they are fast in Europe, their releases are in the evening. So something around 7 PM, 8 PM sometime. It depends on when the dates are announced and the times. So it will be a bit earlier for us in the day, but still like afternoon-ish. So not in the middle of the night. So, but of course, if you move further to US time zones, like East Coast, West Coast is particularly early for them, I guess. If it&#8217;s fun, it could be like early morning for them.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, could be in the middle of the night.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Oh no, no, we have to, we have to think backwards. It will be like, I don&#8217;t know, but is it like in the afternoon on the 9th? Do you know more details about that?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: I was looking for the release party. Post, but I haven&#8217;t seen it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I mean, there&#8217;s an overview post somewhere.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. I remember that. Yeah. On the Make blog. Definitely. I&#8217;m just looking at it when the release party schedule is.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I&#8217;ll see if, uh, there&#8217;s only a date so far on the, on the overview.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Beta release was about 3 PM UTC. So that&#8217;s 4 o&#8217;clock in the afternoon in Europe. -9, that&#8217;s about 7 o&#8217;clock in the morning.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: It&#8217;s early morning. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: In Pacific time. Yeah. So about that time. Yeah. I&#8217;ll get a better look at that when we get closer to see when they actually schedule the release parties. But it&#8217;s always great fun to be in the core channel to kind of see it coming together.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. So that&#8217;s about the process. April 9th, we mentioned it, is the release. We have release candidate. So Beta is the feature freeze. So after that, only bug fixes are going to be merged into core. Release candidate 1 is on March 19th, and that is considered a string freeze. There will be release candidate 1, 2, and 3, and only things that are— don&#8217;t have a string. Well, the reason why they do string freeze is because then the translator can start translating the version or the new strings into their respective languages. And to give them about 3 weeks to 4 weeks is a good number. But when you don&#8217;t do string freeze, then they have to start all over again when the new version comes out.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: So many things change. I mean, things will change. Maybe there&#8217;s always the thing that a bug appears and maybe strings have to be changed. So there&#8217;s always some moving parts, but it is way much reduced if you would just, if you&#8217;re stopping to actually make massive changes so people can catch up with things and then when it&#8217;s just a few more strings that need to be adjusted or retranslated, then it&#8217;s not like 500 new strings, but only 5 the day before the release. So yeah, it makes total sense. I mean, it has worked great over the past many years that we&#8217;ve been doing this like that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Absolutely. Yeah. So now with all the talk about the release, what&#8217;s actually going to be in WordPress 7.0? And there have been quite a few. So there was a roadmap and then there were these tracking issues that are on the Gutenberg repo. So there is not a whole lot of mystery behind what&#8217;s coming, but we definitely should talk through that. And one of the biggest features is the real-time collaboration. So now the message that somebody else is editing your post will go away, or it will still be there, but you still can access the post and then you can see who else is working on the post. And you can have more than one person in the post or in the page to actually edit that and not get into trouble with losing content. So that&#8217;s a feature that has been a long time coming. And it&#8217;s also something that has been tested already in the enterprise section for, I think, a little over a year or half a year since August last year. So, and now it comes to WordPress core. So it&#8217;s really cool. I&#8217;ve, I like it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I have not seen it in action yet because I mostly work on things where it&#8217;s only me and rarely anyone else, but I&#8217;ve seen the notes feature. This is like the kind of site quest, if you will, which has been already around since 6.9, if I remember correctly.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Right.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: But yeah, I&#8217;ve just opened the GitHub issue around it that is linked in the testing post. And it&#8217;s quite interesting. It will be interesting to see. I think we have to spin up a session with my colleagues and all go into one page and see what it looks like, how it feels like.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, there are some avatar bubbles showing up on multiple places. Yeah, it&#8217;s kind of in the headline and also when they&#8217;re both there. And also if they&#8217;re the notes and the real-time collaboration are kind of merging now. So the same avatars that show up in the notes will also show up in the, in as where the cursor is. So it&#8217;s kind of really interesting to see. I think it&#8217;s not only for enterprise, it&#8217;s also for if you have a blog site, you probably also have a designer or a person that manages your media. You can all be in the post and kind of do things just right before publishing and you don&#8217;t have to coordinate, get out of the post, get into the post. What do we change? Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: It will save things. Even if you have a team of two, it&#8217;s still an interesting feature. And I&#8217;m really hoping as working on the WordPress developer blog that we kind of cut out the step where we do everything in Google Docs, do all the comments there. And then once everybody kind of has their word and say to move it and that we actually start creating the post in the blog and then just do the reviews from there. The only caveat is that to review and help, you have to be a member of the blog. You have to be an editor of the blog. But I think everybody who&#8217;s writing and reviewing either will be on the blog or will in the future or already has written a blog post. So they should be able to do it. </p>\n\n\n\n<p class="wp-block-paragraph">Right now it&#8217;s only me doing it. Yeah, I publish in January and in February a post and it&#8217;s only me doing it. But it&#8217;s interesting to do this via notes. Yeah, because you get emails and all of that. Yeah, already. So it&#8217;s a good feature. The real-time collaboration, I haven&#8217;t done anything on that yet because it just came out. Yeah. So it&#8217;s not yet implemented. Anything else about real-time collaboration? Oh yeah. At the moment, and that&#8217;s with Beta 2, it&#8217;s a setting that you can opt into. So you have to go to settings. Writing, and I think the fourth from the top is the enable collaborative editing or real-time collaboration. Otherwise it wouldn&#8217;t work. I think for later versions it will be an opt-out, but it will be on the same space.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Where do you put this? I&#8217;ve just opened up the preferences. I have a test site which I spin this one up.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: But you go to the admin settings, the normal settings for writing.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Ah, the normal setting. Okay. I was in the editor, so that&#8217;s probably why I&#8217;m not seeing it there.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. It&#8217;s not in the preferences. It&#8217;s in the admin dashboard and then settings and then writing.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Writing. Yeah. Oh yeah. There it is. Enable real-time collaboration. Let&#8217;s just try this out, how it looks like.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I mean, I&#8217;m curious to see.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: You don&#8217;t see it when, when you are alone, all alone.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Well, I could create a second user and then just—</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, and switch over in the second browser.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Switch over in another browser or another incognito tab.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: I think it could be in a different browser window. I tested it with Firefox and Google just to kind of not get into the way of each other.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, you need a different browser tab in the same browser. It&#8217;s not going to work because then you&#8217;re logged in with the same user, so you need to be logged in with two different users in order to make that happen.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: So it&#8217;s either an incognito window in the same browser or a different browser.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>Basically, you log in as admin, but you can switch the user over. There&#8217;s a user switching plugin. That&#8217;s what I&#8217;m using by John Blackburn. He has a very easy user switching plugin, and I&#8217;ll share the plugin link in the show notes. But then you can switch over to a different user. And then because I uploaded two avatars, so I can see the difference and all that. In the same note, another big feature, it&#8217;s not a new feature, but it&#8217;s a total revamp, is the visual revisions.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Oh yeah. Yeah. This is a big change. I&#8217;ve, I&#8217;ve tested this out before we started because I was really curious to see and Yeah, this is no more text walls and complicated HTML tags to understand and everything like before. I mean, I think the old one does have an advantage for like someone like me who&#8217;s used to looking at code all day and I can get my way around it. But I guess for many people who are not this, do not have an eye for this, this is like a massive wall of text and some green and some red stuff flying around somewhere. So I found it a very interesting way to create the revisions, to visualize the changes. I mean, I only made minimal changes to a page, like adding a paragraph, removing, removing a sentence and whatnot. But yeah, it&#8217;s actually kind of interesting.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So one of the major features is it&#8217;s in the editor. You don&#8217;t have to switch screens to see your revisions. That&#8217;s also a plus. It knows what blocks are. So every change is filled in red and green. Red when you remove something, green when you add something. And it has a little banner on the right-hand side to outline.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: To indicate where on the page about where. I mean, I only had a short page, so it wasn&#8217;t that big of a deal, but it kind of, I think it really showed where it was. Like if there&#8217;s a specific paragraph you&#8217;re looking at, then let me just open up this.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, it&#8217;s really nice. Ella did a fabulous job on that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: And there&#8217;s also not just red and green, but there&#8217;s also yellow if something inside a paragraph changes that is not like completely adding or I think I know for this one, I added something inside an existing block. So the block itself is outlined in yellow. Hey, something changed here. And then the part where I added the words that is highlighted in green. So it&#8217;s like also kind of detailed and not just red and green like before, but you have also yellow, which indicates some sort of change, maybe with either an additional removal.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah. It&#8217;s really nice. It&#8217;s very visual and staying in the block editor is such a relief. You don&#8217;t have to go back and forth and you have on the top of the screen. You also have the different versions of things. So you can, it&#8217;s a slider with the dates attached. So you can kind of, and the publish button changes to a restore button. So you can select the version that you wanna restore here.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: And you can also exit there. So it&#8217;s like you do not have the editing ability anymore. So the entire editing ability is stripped from that page. And instead you have either restore or exit. So I think this makes it distraction-free. So it&#8217;s also good because then people will not start editing inside that. It&#8217;s just a visual representation of things that have changed.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Exactly. Yeah. Good. And then do you want to take the next feature or?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I have not. I have seen this. So I was curious to see because I saw something else down in the Gutenberg 22.6 Release notes, if you will. But I saw that when you&#8217;re trying to hide any block, you can now hide them specifically either on desktop, tablet, or mobile. So it&#8217;s not just on or off, but you can now, in WordPress core without any extra plugins, say this either show only on desktop, show only on tablet, show only on mobile. The little downside here is that if I&#8217;m not mistaken, you can still not change the ranges of the viewports. You can?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: No, no, that&#8217;s still hard-coded. </p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Exactly. So you&#8217;re still tied to the default states of what is desktop, what is tablet, what is mobile. So that is the little downside, if I say so, because oftentimes, at least in my experience, people want to really hone in. I want mobile to go to up until this specific size and tablet to be in this range. And they often differ from what WordPress offers by default. So that&#8217;s why many plugins have been popular in the past and many different integrations are there. So I think it&#8217;s important to mention that it does work. I guess it does work because otherwise it wouldn&#8217;t be in the Beta version, but it is restricted to what core says about the viewports.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, yeah. And it&#8217;s a, it&#8217;s a range. It&#8217;s mobile starts at 480 and desktop starts at 768 and in between is the tablet. So I have found that I cannot make my browser window small enough to see the mobile version, but that&#8217;s, I think, a setting on my desktop. I&#8217;m not quite sure, but if you use the developer tools, you can see it or the previews, of course. Yeah, the preview inside the block editor will show you yes or no. With 20.6, they also added a feature for the list view where you see the eye for visible or invisible. It also has a little tooltip saying, okay, it&#8217;s visible on desktop or it&#8217;s visible on mobile and hidden on tablet and these kind of things. So there&#8217;s a little bit more visual support for figuring out why is that block not working. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, that&#8217;s true. Yeah, it seems to work pretty well. So I just played around with it and put a paragraph to hide on desktop. It does no longer show at desktop, but once I make the browser smaller, it appears again. So seems to be working pretty well.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah, the next feature is, well, it&#8217;s kind of a set of features for the navigation block. That has been coming in. There are a few things that are making navigation easier. One is that you now have control for your hamburger menus, your mobile hamburger menus, or if you want them on desktop too. Yeah. So you can now create different overlays for your navigation. And 7.0 will come with a few patterns. So you don&#8217;t have to do the whole creative work. You can just kind of say, okay, I will use this one and this one. It&#8217;s on the basis of template parts, so it can be reused on other places and templates if you have different overlays. And so I really like that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, it gives more customization that wasn&#8217;t there before because you just only had a mobile version of the navigation you created. And I know from our experience at Grade that people like to switch up things in this mobile view because they want to add a button or add information or whatever, or change the menu items by default to have less menu items than they would have on desktop. So this was only possible with other tools, and now it&#8217;s in core as well. I also played around with it a bit, just adding random blocks to it. So it&#8217;s not just limited to specifically a navigation, but can add anything you need into that because it&#8217;s a template part, as you said.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, right.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So it actually is then also possible to create mega menus, which is also something that a lot of people wanted to do with those template parts.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Well, I haven&#8217;t played with, played it that far so far. I haven&#8217;t looked at the settings in detail, but. I guess I have to test this out.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Well, there are a lot of people who are going to be testing things and I wish they would share a little bit more about their successes or, well, they never really talk about their successes, mostly about, oh, this is a bug that needs to change kind of thing. But it would be really cool to see some other implementations. Yeah. </p>\n\n\n\n<p class="wp-block-paragraph">They also revamped the submenus a little bit with handling that. So it now defaults to open or closed states, and you have a place to put the close button for that. Yeah, the patterns we talked— the overlay patterns is kind of with a black background, with an orange background, with a side info as well. So it&#8217;s pretty cool. Oh yeah, and what also changed in the navigation is that you can now— well, you always could add new pages when you create a navigation bar, create a new page, but now you can, you have a toggle switch that you can actually publish it. So the create a page is then available in your pages, but the menu works. And they did also a fantastic job making the links in the menu a little bit more smart. Yeah. So when you change the title or the slug of a page, it now reflects in the menu where it&#8217;s actually used. So that is, was also a big big pain point that you always had to think about, oh, I changed the slug of my page or my post. Now I need to update two menu items because I have a header, a footer, a header menu and a footer menu. And yeah, it&#8217;s all kind of a, it was a little bit.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Or another five menus in different places that you all need to update and you forgot about them. So yeah, that&#8217;s actually very nice. I just opened up also the, when you have a navigation block focused and go select one of the pages that is in there. It now shows a little, I&#8217;m not sure how long this has been there, but there&#8217;s a box popping out saying the title of the link and then it links to this specific page, which is a page. So the post type is shown and also what status it has. So it is published, is it draft or whatever. So there&#8217;s, I think if I click on that, yeah, I can now go directly into editing and I can go back. Oh, this is fancy.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah. That&#8217;s also fairly new. I think it was in 22. So it&#8217;s between 6.9 and 7.0. It&#8217;s a new feature. It&#8217;s a new feature.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah. I think this will definitely enhance the whole working with navigation, with navigation in general, because to be honest, it has been a pain to work with navigation. So I&#8217;m glad to see some improvements here. They&#8217;re looking really good. Oh, you can even add more stuff, description and real attribute. Nice. That&#8217;s looking good. I like that. I honestly like that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Awesome. Very good, Birgit. What&#8217;s next on the list?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Next on the list is gallery block add lightbox support.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Ooh, that&#8217;s my personal favorite. Yeah. Well, lightbox support was there before, right?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I was just saying that the lightbox has been around for a while. But yeah, not only for images, right? Not for the gallery.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: It was for the gallery, but it only added the click to open big. It wasn&#8217;t a real lightbox. It kind of— you needed to close it and then look at the next picture and open it up again. And now you actually have navigation with next and previous, so you could actually have a really nice gallery viewing experience. And I was waiting for this for quite a while. Not that I didn&#8217;t find any plugins that do that, but yeah, to have it in the browser.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I think that&#8217;s a very nice feature because it reduces the need for a plugin if the functionality is enough for the user. I mean, there will always be plugins that enhance this functionality or create another variation of a lightbox with even more features. There&#8217;s always like that, but it&#8217;s, it&#8217;s good to have that because it&#8217;s just, I&#8217;ve never really worked so much with galleries in the past, but probably I will do more because now you can continue switching to the other images without even having to close that. So I think that&#8217;s really a good quality of life improvement.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Absolutely. Absolutely. Yeah. Yeah. Those sites that have big visual assets on there, like pictures and they have portfolios or they want to show a decoration or be it food. Yeah. Each one of the sites. And what I like about it is also that you can swipe it on mobile. You don&#8217;t need to—</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Oh, nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: It&#8217;s not animated, but it&#8217;s definitely there. </p>\n\n\n\n<p class="wp-block-paragraph">So the thing that moved to the next version in WordPress is showing the captions somewhere on that. Yeah. Right now it&#8217;s just a picture and the navigation, but that&#8217;s a huge step forward. What also is new for the gallery block and many blocks is that the sidebar where the settings and the styles are now also have a content tab where you can see, for instance, all the pictures in a list and then just open it up and add an alt text to it, for instance. So you can have an easier way to update the content of things. You&#8217;ll see that also on other blocks that are kind of multi-blocks, like the social icons or the buttons or the list, that you get now a little content section on the right-hand side. And you don&#8217;t have to, for that, open up the list view. It&#8217;s a little bit of duplication, but I think it&#8217;s a different mindset when you just want to edit that particular group of blocks and see it in one view.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, but you can, I just created a gallery on my test site and picked some of the pictures. And when you are in this content section and you click on an image, you are put to the specific image block within the gallery. So I don&#8217;t think this is too much of a crazy thing. Yeah, you are right about the duplication that if you are on the gallery block itself, you can add something. That&#8217;s probably easier on the right side now to add something. But you also get the context options that you would have in the list view. So this is the duplicated part. But to be honest, I mean, I work a lot with the list view. I always— the first thing I do when I come into a brand new editor is go to preferences and say, list view, always show list view. Because I still don&#8217;t get why this is not the default. But yeah, for people who may be not using the list view too much, I think this is a pretty nice way to work with the gallery block. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: And there are also people who are overwhelmed by the list view. Yeah. So kind of, they don&#8217;t.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, I can understand. But yeah, I&#8217;m a big fan of the list view.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, there will be two new blocks. There&#8217;s a breadcrumbs block and the icon block. And the icon block just made it out of experimental with 22.6. </p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I think this was a very close call, right? I just saw Ryan&#8217;s post the other day. It&#8217;s like, we made it. And I was like, oh, that&#8217;s close. Isn&#8217;t Beta 1 already out yet?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, no, it was, uh, actually in Beta, but the discussion was about— not about the icon block per se, but it only has limited functionality. When you— for a designer, you cannot register your own icon collection.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: That would have been my question. Yes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: And that has been the API that was too close to be comfortable in creating a new API at the last minute, so to speak. And they said that needs to be similar for a moment. And that was pushed in 7.1, but you still can use the icons that are in the block editor already.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: It mostly, it will be arrows or the chevrons or maybe something like pencil or image or home. Yeah. The default ones are there. So it&#8217;s, I would say for, for the, for the beginning, it&#8217;s fine. And I think for the extensibility, it&#8217;s definitely needed that we have an API to add any kind of icon that we want or that the user needs because people work with the most different things. I think the same, we had the same thing with the social icons block, if I remember correctly, like you had a fixed set, but then later on. It was added the ability that you can upload your own icons, if I&#8217;m correct.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: So I would very much look forward to potentially in 7.1 that we get the ability to extend this icon library to whatever icons we need, have an upload.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah. I think designers really work, love working with icons and when they design sites, it would be really helpful to actually have the branded icons, whatever they have to be uploaded. But yeah, in the release post of 22.6, Bernie Reiter, who was a release lead, he uploaded an implementation which makes perfect sense, which is the location for a map, kind of, yeah, what&#8217;s the address, what&#8217;s the link for Google Maps, and what are the ratings, so to speak. And you can all do that with the icon set that&#8217;s already in the block editor. It was worth it, even with not registering the API, to put that into a core. And it&#8217;s still helpful.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I mean, the icon block has been long awaited, so it was about time.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. And the other block is the breadcrumbs block, which I&#8217;m really happy that it made it because that&#8217;s a very versatile block. It has a lot of smartness behind it where you can put it on any page and then it figures out what are the breadcrumbs to get to that page and also to get back again. So you could do categories, archives, subpages, parent pages, child pages. It&#8217;s all picking up those things. And it&#8217;s a really nice addition for larger websites to have a user find their way back or orient themselves on the website.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, I think there&#8217;s also enough settings to work with it. So it&#8217;s looking good. I just added it to my test page. You have all the color, typography, dimensions, border. So there&#8217;s, there&#8217;s something to do with it. I would say.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, you can definitely work with that. So then the existing blocks obviously also get some improvements. Do you have any favorite of those? I do. So the paragraph has two new things. One is the indentation. So you can make a paragraph or on a page manage the indentation of the first line in a paragraph. There are two versions of it that you need to handle in the settings page. One is to have the first paragraph not indented, but all the subsequent paragraphs. And then if you toggle that off, then also the first paragraph is indented. And that is that it&#8217;s in the English-speaking countries, the first paragraph is not indented. But in the right-to-left and other countries, even if they are left-to-right, they always want all the paragraphs indented. So it&#8217;s a different standard for publications in different countries. So they needed to take care of that. But the default is to have the first paragraph not indented and all the subsequent paragraphs are.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Interesting.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: It&#8217;s like I usually do not come around that the need for this. But obviously if there&#8217;s a need for it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. A lot of publications have that as standard, especially those that are in the news and long-form content publications like essays and that kind of thing.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Apparently I do not read those, so I do not have any experience with that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Or you just haven&#8217;t noticed it because it feels natural.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: But probably, yeah, yeah, I maybe, maybe that&#8217;s also the case. I don&#8217;t know. Yeah, but it&#8217;s interesting to see that. I was wondering, didn&#8217;t we have something like this before, or was it something else, or I&#8217;m mixing this up with something? I don&#8217;t know.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. And the second formatting part for paragraph block is that automatic text columns. So you can have a larger paragraph and say, okay, but I need this into a smaller space, but I have multiple columns. And that also works very well. That was actually a plugin from the Block Editor Learn program. There was one course that actually created that kind of columns. So I&#8217;m glad that it made it to core because I really found it nice to have that possible. It automatically creates those columns. You can say 2 columns or 3 columns, and it&#8217;s really nice. You need to enable it through the typography, the 3-dot menu. </p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I was just about to say, I&#8217;m not seeing the setting. Where is it? Ah, here it is. Columns.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, yeah, columns. And also the indentation. And that&#8217;s also where you&#8217;ll find the fit the text into that. So there are typography changes, but right now only, I think, available for the paragraph block.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, it made sense to have moved to the tools panel to get a bit more in the technical side, because if I&#8217;m looking now at the typography settings that are available, but this list is like endless. Yeah, it&#8217;s getting endless. So having this to be hidden by default and you can, if you need the to change something, you edit. That&#8217;s something, yeah, definitely to not clutter the sidebar too much.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah. Yeah. It&#8217;s a good call to always look at the three dots in the menu to see, okay, what other options do I have available there? Because they may not be visible just, and you look stupid like I did to find the columns.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: You look not that stupid.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, it&#8217;s just like, well, why, why I&#8217;m not seeing this? Where is this? Is this a setting somewhere? It&#8217;s like panicking on the inside on the podcast. I know it&#8217;s, it&#8217;s like day-to-day business.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah, I&#8217;m all good. So what else is in the current block? There are so many things in there. So the font library has now its own menu item in the appearance menu. Yeah. Nothing else.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: So it&#8217;s available for any themes if I recall correctly.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So it&#8217;s not—</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: you can now do all the stuff. Yeah, it&#8217;s exactly the same like the modal. You just have it like as in the regular backend, basically. It&#8217;s been like extracted from the editor to be its own backend page.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: But it&#8217;s in the new style. I just realized that when switching between the default themes, we have the overview to switch the themes. It&#8217;s like still the we did get a little change in the backend. Maybe we can talk about that later. But when you are on themes, you have still this dark, not dark, but lighter gray, very light gray background. And it&#8217;s no rounded corners. And when you go into fonts, you have this more site editor-like white background and rounded corners around. I just realized that there&#8217;s this kind of difference.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, I think that the team really wanted to do the data views. Use components from the data views for these new pages. And it will also be, and I just saw that for the Beta 2, that the connector for the AI client, that the connector page is under Settings. Yep. And the page also follows that data view.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Correct.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Design from what&#8217;s actually going to be the new admin design that&#8217;s not coming to 7.0, but some of the pages are, look a little bit different yet. Now.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I just see, I just see these small details like instantly. So I was like, oh, this looks different.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah. It looks a little bit fresher. It&#8217;s my personal view on that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: And I, I think the most visual change everyone will have is when they log in. So, or when they upgrade to 7.0 and they have not seen the Beta or release candidate that suddenly the default color scheme changes. In the backend. So I think this will be a bit of a woo moment for everyone who is not like looking into this before. So if I guess it&#8217;s a shout out to everyone who&#8217;s working with clients who do not see a Beta version before, be prepared because I&#8217;m sure there will be questions coming in from everyone like, my admin looks different. What happened?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, the buttons all have a different color. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, the, the, I think the black is a bit darker if I remember correctly. And of course the blue shines very differently. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So, but the color scheme was available before. It&#8217;s called the modern.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yes, correctly.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. So it&#8217;s now just the default. I don&#8217;t think we have materialized any writing about that. So I kind of need to look at the core changes. Right now I&#8217;m just looking at the block changes, but yeah. Oh, and one thing that we should mention is the content-only pattern editing that&#8217;s now coming with 7.0. And that is a way, if you have a pattern that you put into a post or a page, that the edit the pattern is kind of reduced to edit the content of it. So you don&#8217;t have to change the pattern. Yeah. And I think that&#8217;s reducing a little bit the overwhelm. And the danger that people get into when they just use pattern, that they are kind of, you still can edit them, throw out the image and put a different block in there. You always can, you can change the headline, paragraph, whatever the pattern is designating as content only. Blocks, patterns, headlines, paragraphs, lists, buttons, those can all be just added, just change the content of it. But there is an edit button on the right edit pattern, and it&#8217;s for unsynced patterns as well as for sync patterns. The sync patterns has a different workflow when you change the original. That was always in there, but now this is coming to the unsynced patterns as well. When there are multiple patterns in multiple blocks in a pattern. So they&#8217;re kind of designated a section and then you can reduce the trouble a content editor can get themselves into.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I see. I see. Yeah, it certainly looks different. Yeah, you have different buttons. But yeah, you cannot go into like— yeah, you can like make it bold or italic or any of the work with the text. But yeah, you cannot say I want the button color to change. Is this the default for all patterns? As you said, it&#8217;s like I&#8217;ve now just added a regular pattern. And it&#8217;s not synced. So I assume it&#8217;s not synced.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Let me check.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I think so. Interesting. So when I go to edit pattern, oh, I now have to go to edit pattern in the toolbar. In the sidebar. I have now edit pattern.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: No, no, in the block toolbar.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: That&#8217;s the block toolbar. You can say edit pattern and then you get all the controls for each block to move them, delete them, whatever. And then you can go back and then you have, when you are in the pattern, you have only the editing ability as you described. So you can, cannot change the blocks itself, but you can like change the contents. I can change the image and set an alternative text, but I cannot say, give it a different aspect ratio or use a different image size or whatever.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Or make the paragraph a list or something like that. There, those decisions.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: So this is actually very good to know because I just stumbled upon that and, ooh, this will be why I wanted to do this. This will be interesting because that&#8217;s like, that&#8217;s a huge change. I can see the struggle people will have who are not aware of this to get into the editor. They have added a pattern, simply a pattern, and now they want to change the heading. For example, and now on 7.0, they&#8217;re like, the possibility to change the heading is gone. And they do not realize that they have to click on the edit pattern block first in order to change the heading level, for example. So I think this could be from the user experience part.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, a little bit of a stumble block. Yeah, absolutely. The dev note, and I see, I saw the draft of this dev note for that. There&#8217;s also a way for site admins to opt out of content-only. That especially if you are working with clients or you&#8217;re creating themes, you probably want to, because you want to edit the pattern all the time. You can opt out of it with a filter. And both are available for PHP as well as for JavaScript. And as a plugin developer or theme developer, you can designate patterns as content-only. And with an attribute in the pattern. Block thing. Those who create custom blocks, they can also designate in the block JSON which attributes are content only. You give it a role equals content in the block JSON. So there are multiple ways to kind of skin that cat, as they say in America. So for the end user, I think the advantage is that there is no ambiguity if I change that. Is that getting me into trouble or something like that? Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah. Yeah. From that point of view, I&#8217;m coming from a different point of view where the user is used to working with that and suddenly they cannot on the first glance, they cannot edit stuff anymore. Like they cannot change the heading level or font, font size, font, font family, whatever. So I think from that perspective, this will be a bit of a struggle.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So yeah. But I think the edit pattern button is prominent enough in the sidebar. But yeah, we&#8217;ll kind of need to see what the verdict is about that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, yeah, true, true. So this will be an interesting thing to catch on, especially if you&#8217;re a heavy pattern user. This will be very interesting.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, I think the—</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik: </em>I mean, I do see, I do see, don&#8217;t get me wrong, I do see the point in like having this content only. I mean, we have something very similar in our Grid plugin. Where you can lock down, like you have the structure, but you can only edit the content. It&#8217;s very, very similar. So there is the need for this. It&#8217;s just like coming when you are already working with WordPress and then you&#8217;re coming to this. That is the issue that I&#8217;m seeing. So, but for real, for real, the, yeah, for real, the, this reduction of overwhelm to, oh my God, I have so many options, but the pattern is there, but you cannot break it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Mm-hmm.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Uh, totally. That&#8217;s totally a cool thing.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. And I get your point, but what is it? It&#8217;s a 30-second, oh, I need to click on edit pattern. Uh, kind of reveal of that. Yeah. It&#8217;s not a kind of totally, oh, I, I get your point.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Well, if, if you are lucky, if you are lucky and the people see it and have the, I do not want to sound, uh, too, too negative about it, but if they have the curiosity to like explore. To do like, okay, what happens if I click on edit pattern? But you also have those people like who are like literally overwhelmed already by this and then go to whatever support people you have, whether it&#8217;s a plugin, a specific plugin is, I do see an increase of people coming into our support, for example, and saying, hey, things are not working anymore because of, I don&#8217;t know what&#8217;s happening here.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So, yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. So I get that, especially because people just go into the website to get something done. And if they are overwhelmed with all the changes, it&#8217;s kind of a certain whoops.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: I didn&#8217;t expect that to change on me forever. Yeah. I totally get it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: If they just want to add a text, they will probably not notice or maybe realize, okay, something is different. But as soon as they want to change anything that is related to the blog, I think then it&#8217;s when it&#8217;s going to be—</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: just to the design. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Absolutely. Yeah. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah, exactly.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: So I think the last thing that we talk about a little bit here is what did not make it into the 7.0. That was on the roadmap. And that was the playlist block didn&#8217;t finish in time. The dialog block, which I really like. The dialog block is something that you get a button or a link and then you can control what dialog comes up for that. And the tabs block that I&#8217;m really sad about that it did not make it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Do you know what happened to like why the decision was made to not bring it in?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: They have some, there was an aspect of the active tab state in a non-standard way. There were some accessibility issues that they kind of wanted to revisit.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Oh yeah. Tell me about it. Tell me about it. I made the Tabs plugin, the great plugin accessible. So it&#8217;s possible. So, but yeah, I get that this may be the reason why it has been cut out.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: I think there were too many people, too many cooks in the kitchen for that with different changes. So I think they need to be finalized as well. And then the playlist block. I&#8217;m really sad about that, but we will see. And then some of the notes features that were thought about didn&#8217;t make it either. There were a few things that haven&#8217;t been worked on that were in the roadmap, were kind of, kind of was aspirational, but it wasn&#8217;t really prioritized. So like there were short blocks. A lot of people would like to see that. That&#8217;s like block binding, but inside the paragraph. So you can change dynamic data in a paragraph and just in, in a certain way. It could be a date or could be a change like the time zone change, yeah, depending on something. Or data from the meta fields, custom fields that are just in the flow text kind of, you want to put them in. I know that people work on that. Slider block was not worked on and some of the media things. Didn&#8217;t make it either. So are you excited about WordPress 7.0? </p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: I mean, there&#8217;s a lot of very interesting changes and I mean, just because something didn&#8217;t make it, I think there&#8217;s a lot that made it that is already giving an impact. We haven&#8217;t even touched the AI part. So I think this is also something that is really coming. And even that in itself is probably enough to make another episode about if you want to. Yeah. </p>\n\n\n\n<p class="wp-block-paragraph">But overall, I think there&#8217;s some good quality of life improvements. I mean, real-time collaboration is something that everyone has to look for themselves if it&#8217;s useful. I can see it useful, of course, in like Google Docs style if you need to collaborate really on something, but also in support essentially to like, okay, let me get into the same page and show me on a video call what are you doing, or without even being on a video call, without screen sharing, to see what the other person is doing essentially. I&#8217;m not sure if I think you can only see the editing sort of things, but overall to see, okay, I do this, I do that, and then this happens. I don&#8217;t know. This could maybe be a thing. Maybe we get the icon block, long, long awaited. We do have some more responsive hiding features, if you will. It&#8217;s, how to say, rudimentary, but it&#8217;s like, it works. So if you&#8217;re fine with that, then you&#8217;re good. Font library available to everyone. I think that&#8217;s not bad either. So yeah, I think overall this will be an interesting, an interesting release to have available.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: And I mean, there&#8217;s always work to do, so we&#8217;re not running out of work. You know, no, even if, uh, with the help of AI, I think the work is always going to be there. So for the developers amongst us, I think you want to look at the PHP-only registration for blocks. Also, some of the data view package changes for your own plugin might be very interesting for you. </p>\n\n\n\n<h3 class="wp-block-heading">Gutenberg 22.5 RC</h3>\n\n\n\n<p class="wp-block-paragraph">Also, the client-side media improvements, they are there, but it&#8217;s not visible to anybody. It&#8217;s just kind of that the browser is now doing all the changes to the image, the downsizing for smaller aspect ratios or sizes. Yeah, it is done in the browser and doesn&#8217;t have to go to server and back. But that&#8217;s all relatively invisible to a normal user. True. I would come to an end here. We are almost at the hour and it was so much stuff to talk about. So is there anything, Jessica, that you want our listeners to know and you didn&#8217;t get a chance to talk about?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Not really. Go testing, I would say. Make sure if you have a product like us, make sure things work so you do not get in too much trouble. There will always be people coming to you saying, hey, something does not work. I mean, we do have that too. It&#8217;s like, then it&#8217;s just simply helping people with WordPress that is not related to the product itself. But yeah, overall, just make sure things work because like there are some changes happening. We also didn&#8217;t touch too much on the iframe editor situation in our chat. So I think this is something you should look into. I think there has been a new post by Ella this week with some more information. So yeah, for the developers of us, take a look at that because I think that maybe can potentially cause issues.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: It shouldn&#8217;t, but yeah. And I&#8217;m kind of hard to think about a scenario how we could test this with older plugins because I don&#8217;t see sites that are in with maintenance with a developer, so they probably won&#8217;t have a problem. They&#8217;re already kind of up there because the Gutenberg plugin has always already been updated with the iframe. So, I&#8217;m looking at people who haven&#8217;t updated their site for 5 years or something like that with the old blocks version in there. And all of a sudden they come back, but they, the front end won&#8217;t change. So they wouldn&#8217;t see it unless they go in, in the editor. And I have not seen yet something that fails. So that&#8217;s why it&#8217;s now in the Gutenberg plugin. That the post editor is loaded in the iframe.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Yeah, it will not be enforced in 7.0, but on the horizon we already see, okay, if it&#8217;s now in Gutenberg 22.6, potentially we will have to deal with it in 7.1. So this summer around that time. Yeah, I think that&#8217;s, that&#8217;s something important to, to just have in the back of your mind that if you have a product or if you have not just a product, but also like, like you said, created custom blocks for a client for specific websites. And there is like either no maintenance or very low maintenance contract, then you need to be aware that things can change, will change. And we had these discussions in the past. I have to say that there are people who were very frustrated that things have changed in the editor and made actually their frontend go sideways and not too bad, but like, okay, wasn&#8217;t looking as it was before. So I can totally understand that frustration, but, I mean, it&#8217;s software. It&#8217;s a moving project. It&#8217;s never going to be this forever unless you lock in the default WordPress version and only receive security updates, then well, okay, you can deal with that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: But yeah. Yeah. But I don&#8217;t think that this block iframe or block editor iframe thing for post edits, this is really a major change or breaking change. That, yeah, it, I don&#8217;t think that most WordPress users would even know that that happened or haven&#8217;t even noticed that it&#8217;s already happening. So for those who do client-side that are a little older, yeah, keep an eye out and let us know or let the contributors know if it&#8217;s breaking, what is breaking, so it can be dealt with for the next iteration on it. All right. </p>\n\n\n\n<p class="wp-block-paragraph">And I also share in the show notes, the latest conversations that Grade and Jessica had with two agency owners about the block editor and FSE. I think that&#8217;s pretty insightful.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Oh, that was with the Codable Experts. Yeah, it was not the agency owners, but the Codable Experts.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Yeah. Codable is an agency that matches up projects with freelancers and they have a very strict screening method for the freelancers. So they are real experts and they know what they&#8217;re doing and so, thank you for telling me that. Anyway, so I will share that. So if anybody who wants to listen some more, it&#8217;s on YouTube and it was Jessica. </p>\n\n\n\n<p class="wp-block-paragraph">So, and as always, the show notes will be published on <a href="http://gutenbergtimes.com/podcast">gutenbergtimes.com/podcast</a>. This is episode 127. And if you have questions and suggestions or news you want us to include, send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. That&#8217;s <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. And thank you so much for spending this time with me and Jessica and going over the WordPress 7.0 features with me. And it was good to see you and talk to you. Thanks for listening and goodbye.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Jessica Lyschik</em>: Thanks for having me. Bye.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 01 Mar 2026 17:15:04 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:19:"Gutenberg Changelog";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:108:"Gutenberg Times: Help test WordPress 7.0 beta2, CSS in Block themes, AI experiements – Weekend Edition 359";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=44470";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:113:"https://gutenbergtimes.com/help-test-wordpress-7-0-beta2-css-in-block-themes-ai-experiements-weekend-edition-359/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:24645:"<p class="wp-block-paragraph">Happy Saturday! </p>\n\n\n\n<p class="wp-block-paragraph">It&#8217;s been another interesting week in WordPress, Gutenberg and AI. </p>\n\n\n\n<p class="wp-block-paragraph">If you would like to know more about my two weeks in New York and the immersive AI training there, here is a post for you. <a href="https://automattic.com/2026/02/25/ai-enablement-wordpress/">What Automattic’s AI Enablement Training Means for WordPress</a>. </p>\n\n\n\n<p class="wp-block-paragraph">And now, enjoy all the videos, blog posts and podcasts below.</p>\n\n\n\n<p class="wp-block-paragraph">Yours, <img alt="💕" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f495.png" style="height: 1em;" /><br /><em>Birgit</em></p>\n\n\n\n\n\n<h2 class="wp-block-heading" id="0-word-press-release-information">Developing Gutenberg and WordPress</h2>\n\n\n\n<p class="wp-block-paragraph">WordPress <strong><a href="https://wordpress.org/news/2026/02/wordpress-7-0-beta-2/">7.0 Beta2</a> </strong>is now available for testing. How? Glad you asked. The Test team has compiled a great list in their post <a href="https://make.wordpress.org/test/2026/02/20/help-test-wordpress-7-0/"><strong>Help Test WordPress 7.0</strong></a>. It&#8217;s the perfect way to learn what&#8217;s in the new release and you can help find bugs, that could be squashed before the final release.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Ray Morey</strong>, editor of The Repository, has some details in <a href="https://www.therepository.email/wordpress-7-0-beta-2-ships-with-connectors-ui-delivering-on-mullenwegs-ai-vision" rel="noreferrer noopener" target="_blank"><strong>WordPress 7.0 Beta 2 Ships With Connectors UI, Delivering on Mullenweg’s AI Vision</strong></a></p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Ella Van Durpe</strong> shares <a href="https://make.wordpress.org/core/2026/02/24/iframed-editor-changes-in-wordpress-7-0/"><strong>what&#8217;s shifting with the iframed post editor in WordPress 7.0</strong></a>: instead of checking all registered blocks across your plugins, WordPress will now only look at blocks actually inserted in the post. If they&#8217;re all Block API version 3 or higher, you get the iframe — if not, it steps back gracefully. Full enforcement isn&#8217;t happening in 7.0, but <em>Gutenberg plugin 22.6</em> enforces it for classic themes to gather real-world feedback first.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">Release lead <strong>Bernie Reiter,</strong> published a new version, Gutenberg 22.6 and in his release post <a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/"><strong>What’s new in Gutenberg 22.6? (25 February)</strong></a> he highlighted:</p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#in-editor-revisions-visual-change-tracking">In-Editor Revisions: Visual Change Tracking</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#icon-block">Icon Block</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#navigation-overlay">Navigation Overlay</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#client-side-media-processing">Client-Side Media Processing</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#real-time-collaboration">Real-Time Collaboration</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#gallery-lightbox-navigation">Gallery Lightbox Navigation</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/02/25/whats-new-in-gutenberg-22-6-25-february/#other-notable-highlights">Other Notable Highlights</a></li>\n</ul>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Anne McCarthy</strong> shares a candid look at <a href="https://nomad.blog/2026/02/28/iterating-on-notes-in-wordpress/"><strong>iterating on Notes features in WordPress</strong></a> that didn&#8217;t quite make the 7.0 cut. Built with Claude Code as part of her &#8220;Learn AI deeply&#8221; efforts, the three PRs in progress cover show/hide notes on the canvas, filter options (she leans toward &#8220;Open&#8221; over &#8220;Unresolved&#8221;), and compact note display. Questions around a resizable sidebar and UX friction remain open — your feedback on the PRs is warmly welcomed.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Jessica Lyschik,</strong> senior developer at Greyd, and I had fun recording another Gutenberg Changelog episode. We discussed the main user-facing features coming to WordPress 7.0. </p>\n\n\n\n<div class="wp-block-group has-light-background-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">\n<p class="wp-block-paragraph"><img alt="🎙" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f399.png" style="height: 1em;" /> The latest episode is <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/">Gutenberg Changelog #127 – WordPress 7.0 Beta and Gutenberg 22.6</a> with special guest <strong>Jessica Lyschik</strong>, senior developer at Greyd</p>\n\n\n\n<figure class="wp-block-image size-full is-style-no-vertical-margin"><img alt="Jessica Lyschik and Birgit Pauli-Haack recording Gutenberg changelog episode number 127" class="wp-image-44548" height="184" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-27-at-12.47.56.png?resize=652%2C184&#038;ssl=1" width="652" /></figure>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-rich is-provider-pocket-casts wp-block-embed-pocket-casts"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div></div></div>\n\n\n\n<h2 class="wp-block-heading" id="0-p">Plugins, Themes, and Tools for #nocode site builders and owners</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Tom Finley</strong> introduces <a href="https://tomfinley.com/stop-rebuilding-wordpress-block-patterns-from-scratch-use-block-zapper/"><strong>Block Zapper</strong></a>, a utility block that strips custom colors, spacing, typography, and backgrounds from WordPress block patterns in one click — so you can actually use them as clean starting points. You get granular control: preserve images and cover backgrounds while clearing everything else. Finley&#8217;s one important warning: it&#8217;s largely vibe-coded with AI assistance, so sandbox it thoroughly before touching any real project, and move your zapped blocks out before leaving the editor.</p>\n\n\n\n<p class="wp-block-paragraph">This seems to be inline with the <strong>Content Only Pattern editing experience</strong>, core contributors also try to achieve abstracting away the design aspects of working with patterns for content creators. It&#8217;s about to come to WordPress in 7.0 (or 7.1, the jury is still out) It is already available in the Gutenberg plugin 22.6 and this <a href="https://github.com/WordPress/gutenberg/issues/73775#issuecomment-3930751877">GitHub comment by Ramon Dodd.</a> </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">Carleton University&#8217;s <strong>Troy Chaplin</strong> built the <a href="https://wordpress.org/plugins/block-accessibility-checks/"><strong>Block Accessibility Checks plugin</strong></a> to catch what the WordPress block editor won&#8217;t — out-of-order headings, missing image alt text, and other gaps that slip through unexpectedly. Chaplin joined Chris Reynolds, Pantheon, on this week&#8217;s <a href="https://www.youtube.com/live/mLsC2tDcdL8">YouTube Livestream</a> for a walk-through of how the plugin validates your content in real time and flags issues before they reach your readers. A practical tool for anyone serious about making their content genuinely accessible to everyone.</p>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">On WP Builds, <strong>Nathan Wrigley</strong> sits down with <strong>Ian Svoboda</strong>, a veteran of 10up, GenerateBlocks, and GeneratePress, to unpack the<a href="https://wpbuilds.com/2026/02/26/458-unpacking-the-clever-content-area-block-with-ian-svoboda/"> <strong>Content Area Block plugin</strong></a>. Born from a news site needing multiple editable regions per template, the plugin solves WordPress&#8217;s single-content-area limitation without meta field workarounds. You&#8217;ll hear about the technical hurdles — duplicating core hooks, navigating unstable APIs — and why this capability still hasn&#8217;t made it into Core.</p>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-rich is-provider-pocket-casts wp-block-embed-pocket-casts"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Rodolfo Melogli</strong> is the organizer of the <a href="https://checkoutsummit.com/">Checkout Summit in April</a> and editor of the <a href="https://wcwkly.com/">WooWeekly</a> newsletters. In his recent blog post, he discusses <a href="https://www.businessbloomer.com/my-honest-take-on-woocommerce-checkout-block-adoption/">WooCommerce Checkout Block adoption</a> and explains that most merchants still use the classic Shortcode even after two years of the block being the default option. The main issue is hesitation around plugin compatibility. Although WooCommerce data shows a 27% boost in conversions with the block checkout, the ecosystem has not fully adapted, and merchants are reluctant to risk disrupting their working stores.</p>\n\n\n\n<h2 class="wp-block-heading" id="2-word-press-6-0-1-and-6-1-scheduled">Theme Development for Full Site Editing and Blocks</h2>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;ve ever wondered where your custom CSS actually lives — or should live — this comprehensive guide on <a href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/"><strong>14 ways to add custom CSS in the WordPress Block Editor</strong></a> is your new reference. Covering everything from <code>theme.json</code> structured properties and CSS variables to per-block Additional CSS, Block Style Variations, and <code>wp_enqueue_style()</code>, you&#8217;ll find a decision guide to match each method to your role, whether you&#8217;re a site builder, designer, or theme developer.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Jon Ang</strong>, Human Made, made the case that <a href="https://humanmade.com/wordpress-for-enterprise/how-wordpress-solves-visual-editing-without-the-complexity-tax/"><strong>WordPress in 2026 escapes the complexity tax</strong></a> that headless and composable stacks imposed on enterprise teams. The Site Editor, combined with Synced Patterns, Block Bindings, and the Interactivity API, now forms a structured visual system that scales alongside enterprise design systems without forcing teams into heavyweight JavaScript frameworks or fragile third-party glue. As Ang put it, it becomes a system interface &#8220;where visual work is grounded in real content models&#8221;.</p>\n\n\n<div class="ng-block-2e5262189175a5a6 wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #fdfcea; border-radius: 12px;"><div class="ng-block-6f1bad0ceebb6870 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong> <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/" rel="noreferrer noopener" target="_blank">&#8220;Keeping up with Gutenberg &#8211; Index 2026&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. </p></div></div></div></div>\n\n<div class="ng-block-36f79750eeee85e4 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p>The previous years are also available: <br /><strong><strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/">2020</a> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/">2021</a></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/">2022</a></strong></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023">2023</a></strong> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/"><strong>2024</strong></a></p></div></div></div></div></div><div class="ng-block-hs ng-block-hs-2" height="0" style="width: 0px;"></div></div><div><div class="ng-block-vs ng-block-vs-2" colspan="3" height="0" style="height: 0px;"></div></div></div></div>\n\n\n<h2 class="wp-block-heading" id="3-building-themes-for-fse-and-word-press">Building Blocks and Tools for the Block editor.</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Ryan Welcher</strong> released v. 1.0.3 of his VSCode extension <strong><a href="https://marketplace.visualstudio.com/items?itemName=ryanwelcher.wordpress-interactivity-api-helper">WordPress Interactivity API Helper</a></strong> that adds autocomplete for directive and even detects items in your store. After you install it you can invoke it by &#8220;Simply start typing <code>data-</code> in any HTML attribute position within PHP or HTML files&#8221;.  </p>\n\n\n\n<figure class="wp-block-image size-large"><img alt="Ryan Welcher\'s Interactivity API VSCode extension" class="wp-image-44552" height="318" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/interactivityAPI-VSCode-extension-1024x500.jpg?resize=652%2C318&#038;ssl=1" width="652" /></figure>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Ryan Welcher </strong>also released a new version of <a href="https://github.com/ryanwelcher/advanced-query-loop/releases/tag/4.4.0"><strong>Advanced Query Loop 4.4.0</strong></a> that enhances query speed and reliability. It includes transient caching for AQL instances and a new management control, along with fixes and improvements to caching. The current post ID and type are now included in the context, and the release features expanded unit tests, E2E tests via Playground, and static linting for both PHP and JavaScript.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>JuanMa Garrido</strong> walks you through <a href="https://developer.wordpress.org/news/2026/02/a-better-way-to-test-html-in-wordpress-with-assertequalhtml/"><strong>the new <code>assertEqualHTML()</code> assertion introduced in WordPress 6.9</strong></a>, available on <code>WP_UnitTestCase</code>. If fragile PHPUnit tests that break over attribute ordering or style whitespace are your nemesis, this is your fix. It compares HTML semantically — not literally — so your tests only fail when markup is genuinely different. Covers block render callbacks, HTML API transformations, Interactivity API directives, and tips for migrating away from <code>assertSame()</code>. </p>\n\n\n\n<h2 class="wp-block-heading" id="ai-and-wordpress">AI and WordPress </h2>\n\n\n\n<p class="wp-block-paragraph">In his post on The Repository, <strong><a href="https://www.therepository.email/wordpress-faces-an-event-horizon-not-a-sunset">WordPress Faces an Event Horizon, Not a Sunset</a></strong>, <strong>Matt Cromwell</strong>, founder of Roots &amp; Fruits,  pushes back on the &#8220;WordPress is dying&#8221; narrative, reframing what looks like decline as an event horizon — a boundary where old rules break and new, denser ones form. AI, he argues, actually favors WordPress&#8217;s open, structured architecture. Flat plugin sales signal market maturity, not collapse. Educational pipelines are creating new builders. The real question isn&#8217;t whether WordPress survives, but whether its community will design for the physics ahead.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">In this <a href="https://www.youtube.com/watch?v=gD-KgrQ_E_w"><strong>WordPress AI experiments roundup</strong></a>, <strong>Jonathan Bossenger</strong> dives into community-submitted projects, starting with the WP AI Client Mistral provider, where he clones the repo, gets the AI SDK running, and generates a &#8220;WordPress haiku&#8221; post — though the model returns Markdown rather than block markup. He then tests a Claude-to-WordPress MCP integration plugin, successfully publishing a post directly from Claude, uses MCP Tracker to monitor requests, and briefly explores Ability Scout, which surfaces potential abilities from code.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Rich Tabor</strong> walks you through <a href="https://richtabor.com/wordpress-ai-client" id="https://richtabor.com/wordpress-ai-client" type="link"><strong>the new WP AI Client landing in WordPress 7.0</strong></a> — a provider-agnostic layer for calling Anthropic, Google, OpenAI, and other AI models from both PHP and JavaScript, without plugins shipping their own API wrappers or credential pages. Configure once, use everywhere. His companion <a href="https://github.com/richtabor/wp-ai-content-kit"><em>WP AI Content Kit</em></a> demonstrates auto-generating alt text and post excerpts using structured JSON responses. WordPress 7.0 is due April 9, coinciding with WordCamp Asia. </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Glen Davies </strong>at Automattic introduces <a href="https://wordpress.com/blog/2026/02/13/new-plugin-and-skills-for-claude-cowork/"><strong>new Skills and a Claude Cowork plugin</strong></a> that turns a conversation with Claude into a fully built block theme, deployed locally via WordPress Studio — no technical skills required. Describe your site, pick from design options, and Claude builds it. Setup takes about ten minutes and currently requires macOS. These tools are early and evolving fast, but the team wanted to ship them now rather than wait.</p>\n\n\n<div class="ng-block-bf533f9b9197718b wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #f8f8f8; border-radius: 8px;"><div class="ng-block-3879b3bea2908adb wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong><a href="https://gutenbergtimes.com/need-a-zip-from-master/">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily build for testing and review.</p></div></div></div></div>\n\n<div class="ng-block-88beaa972514ca94 wp-block-newsletterglue-image ng-block size-full is-resized" width="100%"><div><div><div align="center" class="ng-block-td" style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;"><a href="https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json"><img alt="" class="wp-image-42874 ng-image" height="45" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2024/02/Screenshot-2025-11-15-at-12.06.44.png?resize=196%2C45&#038;ssl=1" style="border-style: none; border-color: transparent;" width="196" /></a></div></div></div></div>\n\n<div class="ng-block-bcb639b60de3215b wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p>Now also available via <a href="https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json">WordPress Playground</a>. There is no need for a test site locally or on a server. Have you been using it? <a href="mailto:pauli@gutenbergtimes.com">Email me </a>with your experience.</p></div></div></div></div></div><div class="ng-block-hs ng-block-hs-2" height="0" style="width: 0px;"></div></div><div><div class="ng-block-vs ng-block-vs-2" colspan="3" height="0" style="height: 0px;"></div></div></div></div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="has-text-align-center has-small-font-size wp-block-paragraph"><em>Questions? Suggestions? Ideas? </em><br /><em>Don&#8217;t hesitate to send <a href="mailto:pauli@gutenbergtimes.com">them via email</a> or</em><br /><em> send me a message on WordPress Slack or Twitter @bph</em>.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity" />\n\n\n\n<p class="has-text-align-center has-small-font-size wp-block-paragraph">For questions to be answered on the <a href="http://gutenbergtimes.com/podcast">Gutenberg Changelog</a>, <br />send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a></p>\n\n\n<div class="ng-block-949000bf88c092ac wp-block-newsletterglue-separator ng-block" style="color: #666666;" width="100%"><div><div><div align="center" class="ng-block-td" style="padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; color: #666666;"><hr style="background-color: transparent; color: transparent; margin: 0; border: 0; border-top: 1px solid #666666; width: 560px; height: 0;" /></div></div></div></div>\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%"></div>\n\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 28 Feb 2026 12:53:22 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:68:"Gutenberg Times: 14 ways to add Custom CSS in WordPress Block Editor";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=44344";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:79:"https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:100197:"<p class="wp-block-paragraph">With the new Custom CSS on a block and post/page level, I was wondering if I would know where to look if something needs to be changed that was modified by a Custom CSS setting. Turns out there are 14 different ways to skin WordPress. I am a fan of keeping one source of truth, but it might not always be possible to keep it in theme.json. So I also wanted to figure out what decisions making process goes into selecting a method in the first place.</p>\n\n\n\n<p class="wp-block-paragraph">Below is a comprehensive reference for users, site builders, designers and developers covering all methods from no-code to full theme development.</p>\n\n\n\n<p class="wp-block-paragraph">These methods only apply to Block themes, though. Classic theme methods (like the Customizer&#8217;s Additional CSS panel etc.) are excluded.</p>\n\n\n\n<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">\n<p class="wp-block-paragraph"><strong>Table of contents</strong></p>\n\n\n\n<nav class="wp-block-table-of-contents"><ul><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#the-specificity-cascade">The specificity cascade</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#1-theme-json-structured-style-properties">1. theme.json — structured style properties</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#2-theme-json-the-css-property">2. theme.json — The css Property </a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#3-custom-css-properties-variables-via-theme-json-settings">3. Custom CSS Properties (Variables) via theme.json Settings</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#4-child-theme-s-theme-json">4. Child Theme&#8217;s theme.json</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#5-global-styles-ui">5. Global Styles UI </a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#6-additional-css">6. Additional CSS </a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#7-per-block-additional-css">7. Per-Block Additional CSS </a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#8-additional-css-class-es-on-individual-block-instances">8. Additional CSS Class(es) on individual block instances</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#9-global-style-variations-theme-level-style-presets">9. Global Style Variations (Theme-Level Style Presets)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#10-block-style-variations-json-php-and-javascript">10. Block Style Variations (JSON, PHP, and JavaScript)</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#11-section-styles">11. Section Styles </a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#12-block-stylesheets-via-wp-enqueue-block-style">12. Block Stylesheets via wp_enqueue_block_style()</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#13-enqueuing-stylesheets-via-wp-enqueue-style-in-php">13. Enqueuing Stylesheets via wp_enqueue_style() in PHP</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#14-the-theme-s-style-css">14. The Theme&#8217;s style.css</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#summary-table">Summary Table</a></li><li><a class="wp-block-table-of-contents__entry" href="https://gutenbergtimes.com/14-ways-to-add-custom-css-in-wordpress-block-editor/#decision-guide">Decision Guide</a></li></ul></nav>\n</div></div>\n\n\n\n<h2 class="wp-block-heading" id="the-specificity-cascade">The specificity cascade</h2>\n\n\n\n<p class="wp-block-paragraph">Before diving in, it helps to understand WordPress&#8217;s style hierarchy for block themes. Styles resolve in this order, with later layers overriding earlier ones on four levels.</p>\n\n\n\n<ul class="wp-block-list">\n<li><strong>Default </strong>mostly the styling and layouts of WordPress Core.</li>\n\n\n\n<li><strong>Block-level</strong> styling can be altered with plugins and overwrites the Default styling.</li>\n\n\n\n<li><strong>Theme-level </strong>styling is the whole suite of design tools controlled by the active Theme. It overwrites Default and block-level styles and layouts for instance (e.g. template and template parts).</li>\n\n\n\n<li><strong>User-level</strong> styling uses the Design tools within the Site Editor to modify styles and layouts. These changes are stored in the database and overwrite the theme-level styling.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph">Within each layer, more specific targets (per block, per element) override more general ones. This cascade is central to how all the methods below interact.</p>\n\n\n\n<h2 class="wp-block-heading" id="1-theme-json-structured-style-properties">1. theme.json — structured style properties</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers, child theme authors<br /><strong>Where:</strong> <code>theme.json</code> (root of your theme) → <code>styles</code> section</p>\n\n\n\n<p class="wp-block-paragraph">This is the <strong>recommended first choice</strong> for styling in block themes. Rather than writing raw CSS, you define styles as structured JSON properties — colors, typography, spacing, borders, shadows, and more — at the global, element, or per-block level.</p>\n\n\n\n<p class="wp-block-paragraph">You can use hardcoded values directly in <code>styles</code>, and they work just fine:</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">{\n  "version": 3,\n  "styles": {\n    "color": {\n      "background": "#ffffff",\n      "text": "#333333"\n    },\n    "elements": {\n      "link": {\n        "color": { "text": "#0073aa" }\n      }\n    },\n    "blocks": {\n      "core/button": {\n        "color": { "background": "#0073aa" }\n      }\n    }\n  }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">styles</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">background</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#ffffff&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">text</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#333333&quot;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">elements</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">link</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">text</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#0073aa&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">blocks</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/button</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">background</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#0073aa&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph">As your theme grows, hardcoded values become harder to manage. If you decide to change your primary color, you&#8217;d need to find and update every instance of <code>#0073aa</code> across styles. A more maintainable approach is to define your values as presets in the <code>settings</code> part of theme.json and then reference them in <code>styles</code> using the <code>var:preset||</code> syntax. WordPress converts these presets into CSS custom properties (e.g., <code>--wp--preset--color--primary</code>), keeping everything connected:</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">{\n  "version": 3,\n  "settings": {\n    "color": {\n      "palette": &#91;\n        { "slug": "primary", "color": "#0073aa", "name": "Primary" },\n        { "slug": "base", "color": "#ffffff", "name": "Base" },\n        { "slug": "contrast", "color": "#333333", "name": "Contrast" }\n      &#93;\n    },\n    "typography": {\n      "fontSizes": &#91;\n        { "slug": "medium", "size": "18px", "name": "Medium" }\n      &#93;\n    }\n  },\n  "styles": {\n    "color": {\n      "background": "var:preset|color|base",\n      "text": "var:preset|color|contrast"\n    },\n    "typography": {\n      "fontSize": "var:preset|font-size|medium",\n      "lineHeight": "1.6"\n    },\n    "elements": {\n      "link": {\n        "color": { "text": "var:preset|color|primary" }\n      },\n      "heading": {\n        "typography": { "fontWeight": "700" }\n      }\n    },\n    "blocks": {\n      "core/button": {\n        "border": { "radius": "4px" },\n        "color": { "background": "var:preset|color|primary" }\n      },\n      "core/quote": {\n        "typography": { "fontStyle": "italic" }\n      }\n    }\n  }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">settings</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">palette</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">&#91;</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;primary&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#0073aa&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Primary&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;base&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#ffffff&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Base&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;contrast&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#333333&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Contrast&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&#93;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">typography</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">fontSizes</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">&#91;</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;medium&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">size</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;18px&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Medium&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&#93;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">styles</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">background</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;var:preset|color|base&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">text</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;var:preset|color|contrast&quot;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">typography</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">fontSize</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;var:preset|font-size|medium&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">lineHeight</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;1.6&quot;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">elements</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">link</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">text</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;var:preset|color|primary&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">heading</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">typography</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">fontWeight</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;700&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">blocks</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/button</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">border</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">radius</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;4px&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">background</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;var:preset|color|primary&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/quote</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">typography</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">fontStyle</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;italic&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph">This token-based approach pays off in a few ways. When a user changes &#8220;Primary&#8221; in the Global Styles UI, every element referencing that token updates automatically. It keeps your theme internally consistent — no risk of one button being <code>#0073aa</code> while another drifted to <code>#0074ab</code>. And it makes global style variations far simpler to create: a dark mode variation only needs to redefine the palette, not hunt down every color reference in styles. Either approach is valid, but tokens tend to save time as a theme matures.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><strong>Automatic integration with the Global Styles UI:</strong> Users can view and override your styles in the Site Editor without writing CSS.</li>\n\n\n\n<li><strong>WordPress manages specificity for you:</strong> the &#8220;base → theme → user&#8221; cascade works correctly.</li>\n\n\n\n<li><strong>Generates CSS custom properties automatically</strong> (e.g. <code>--wp--preset--color--primary</code>).</li>\n\n\n\n<li><strong>Visual parity</strong> between editor and front end.</li>\n\n\n\n<li><strong>Machine-readable: </strong>other tools and plugins can consume and extend these styles.</li>\n\n\n\n<li><strong>Reduces the amount of CSS</strong> enqueued overall.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Can only express what <a href="https://schemas.wp.org/trunk/theme.json.">theme.json&#8217;s schema</a> supports (growing with each release, but not yet comprehensive).</li>\n\n\n\n<li>Pseudo-classes like <code>:hover</code>, <code>:focus</code>, <code>:active</code>, and <code>:visited</code> are supported for elements such as links and buttons (e.g., <code>"elements": { "link": { ":hover": { "color": { "text": "var:preset|color|contrast" } } } }</code>), but pseudo-elements like <code>::before</code> and <code>::after</code>, media queries, and more complex selectors are not available in the structured properties — use the <code>css</code> property (#2) or block stylesheets (#3) for those.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/themes/global-settings-and-styles/">Global Settings and Styles (theme.json)</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2024/10/mastering-theme-json-you-might-not-need-css/">Mastering theme.json: You might not need CSS</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/themes/global-settings-and-styles/styles/using-presets/">Using Presets</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/themes/global-settings-and-styles/styles/styles-reference/">Styles Reference</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="2-theme-json-the-css-property">2. theme.json — The <code>css</code> Property </h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> <code>theme.json</code> → <code>styles.css</code> (global) or <code>styles.blocks.[blockname].css</code> (per-block)</p>\n\n\n\n<p class="wp-block-paragraph">When theme.json&#8217;s structured properties aren&#8217;t enough, you can drop to raw CSS strings within theme.json itself. Available since WordPress 6.2.</p>\n\n\n\n<h3 class="wp-block-heading" id="global-custom-css">Global custom CSS</h3>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">{\n  "version": 3,\n  "styles": {\n    "css": ".my-custom-class { opacity: 0.8; } body { scroll-behavior: smooth; }"\n  }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">styles</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">css</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;.my-custom-class { opacity: 0.8; } body { scroll-behavior: smooth; }&quot;</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<h3 class="wp-block-heading" id="per-block-custom-css">Per-block custom CSS</h3>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">{\n  "version": 3,\n    "styles": {    \n       "blocks": {\n          "core/image": {\n              "css": "&amp; img { border-radius: 8px; transition: transform 0.3s; } &amp;:hover img { transform: scale(1.02); }"\n              },     \n          "core/post-title": {\n              "css": "letter-spacing: 1px;"\n             },\n         "core/paragraph": {       \n              "css": "&amp;.has-background { padding: .5rem .8rem; }"\n           }\n        }\n    }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">styles</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;">    </span></span>\n<span class="line"><span style="color: #575279;">       </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">blocks</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">          </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/image</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">              </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">css</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;&amp; img { border-radius: 8px; transition: transform 0.3s; } &amp;:hover img { transform: scale(1.02); }&quot;</span></span>\n<span class="line"><span style="color: #575279;">              </span><span style="color: #797593;">},</span><span style="color: #575279;">     </span></span>\n<span class="line"><span style="color: #575279;">          </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/post-title</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">              </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">css</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;letter-spacing: 1px;&quot;</span></span>\n<span class="line"><span style="color: #575279;">             </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">         </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">core/paragraph</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span><span style="color: #575279;">       </span></span>\n<span class="line"><span style="color: #575279;">              </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">css</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;&amp;.has-background { padding: .5rem .8rem; }&quot;</span></span>\n<span class="line"><span style="color: #575279;">           </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph">WordPress auto-generates the selector for per-block CSS—you don&#8217;t need to know the block&#8217;s class name. The <code>&amp;</code> selector is supported for targeting nested elements and pseudo-selectors (<code>:before</code>, <code>:after</code>, <code>:hover</code>, <code>:not()</code>, etc.).</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Integrates with the Styles interface in the Site Editor — users can see and modify your per-block CSS under Styles → Blocks → [Block] → Advanced → Additional CSS.</li>\n\n\n\n<li>WordPress handles the selector, so you avoid specificity conflicts.</li>\n\n\n\n<li>CSS from elements and variations is also supported (from WordPress 6.6).</li>\n\n\n\n<li>Provides a bridge between structured theme.json properties and full CSS freedom.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>JSON doesn&#8217;t support line breaks, so everything must be on one line — cumbersome for large blocks of CSS.</li>\n\n\n\n<li>No syntax highlighting in JSON files.</li>\n\n\n\n<li>Best for small, targeted additions — for anything extensive, use block stylesheets instead.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://make.wordpress.org/core/2023/03/06/custom-css-for-global-styles-and-per-block/">Custom CSS for global styles and per block</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="3-custom-css-properties-variables-via-theme-json-settings">3. Custom CSS Properties (Variables) via theme.json Settings</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> <code>theme.json</code> → <code>settings.custom</code></p>\n\n\n\n<p class="wp-block-paragraph">Create your own CSS custom properties that can be used anywhere in your CSS—in stylesheets, block stylesheets, or even within the <code>css</code> property.</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">{\n  "version": 3,\n  "settings": {\n    "custom": {\n      "contentMaxWidth": "800px",\n      "spacing": {\n        "gutter": "2rem"\n      },\n      "transition": "all 0.3s ease"\n    }\n  }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">settings</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">custom</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">contentMaxWidth</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;800px&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">spacing</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">gutter</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;2rem&quot;</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">transition</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;all 0.3s ease&quot;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph">This generates:</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">body {\n  --wp--custom--content-max-width: 800px;\n  --wp--custom--spacing--gutter: 2rem;\n  --wp--custom--transition: all 0.3s ease;\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #575279;">body </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #B4637A;">--wp--custom--content-max-width</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">800</span><span style="color: #B4637A;">px;</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #B4637A;">--wp--custom--spacing--gutter:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">2</span><span style="color: #B4637A;">rem;</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #B4637A;">--wp--custom--transition:</span><span style="color: #575279;"> </span><span style="color: #B4637A;">all</span><span style="color: #575279;"> </span><span style="color: #D7827E;">0.3</span><span style="color: #B4637A;">s</span><span style="color: #575279;"> </span><span style="color: #B4637A;">ease;</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Centralized design tokens accessible from any CSS source.</li>\n\n\n\n<li>Automatic generation of CSS custom properties following WordPress naming conventions.</li>\n\n\n\n<li>Changes propagate everywhere the variable is used.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Only generates the variables — you still need to reference them in your CSS.</li>\n\n\n\n<li>Not directly editable by users in the Site Editor UI (unlike presets for colors or font sizes).</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/news/2023/08/adding-and-using-custom-settings-in-theme-json/">Adding and using custom settings in theme.json</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="4-child-theme-s-theme-json">4. Child Theme&#8217;s <code>theme.json</code></h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Developers customizing a parent theme<br /><strong>Where:</strong> <code>theme.json</code> in the child theme root</p>\n\n\n\n<p class="wp-block-paragraph">Override or extend the parent theme&#8217;s <code>theme.json</code> with a child theme. WordPress merges both files automatically.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>All changes survive parent theme updates.</li>\n\n\n\n<li>Full access to every theme.json capability — structured properties, css property, presets, and settings.</li>\n\n\n\n<li>Combined with block stylesheets and style.css, it provides a complete override system.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Requires maintaining a child theme.</li>\n\n\n\n<li>Merging behavior can be tricky: child values override parent values at the same path but won&#8217;t remove parent values at other paths.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Theme Handbook: <a href="https://developer.wordpress.org/themes/advanced-topics/child-themes/">Child Themes</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="5-global-styles-ui">5. Global Styles UI </h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Site owners, content editors (no code required)<br /><strong>Where:</strong> <strong>Appearance → Editor → Styles</strong></p>\n\n\n\n<p class="wp-block-paragraph">The visual interface for customizing your site&#8217;s appearance. Users can adjust typography, colors, spacing, and layout for the entire site, individual elements, or specific block types — all without writing any code.</p>\n\n\n\n<figure class="wp-block-image size-full"><img alt="" class="wp-image-44500" height="569" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-24-at-18.40.45.png?resize=652%2C569&#038;ssl=1" width="652" /></figure>\n\n\n\n<p class="wp-block-paragraph">The <strong>Style Book</strong> helps you keep the overall context for your styles and you and double-check on how blocks behave when Styles change. </p>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-44499" height="334" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-24-at-18.38.39.png?resize=652%2C334&#038;ssl=1" width="652" /></figure>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>No code required — fully visual.</li>\n\n\n\n<li>Highest specificity: user styles override theme defaults.</li>\n\n\n\n<li>Changes are stored in the database (<code>wp_global_styles</code> post type), separate from theme files, so they survive theme updates.</li>\n\n\n\n<li>Supports global style variations — users can switch between whole-site style presets.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Limited to what the UI controls expose (which grows with each WordPress release).</li>\n\n\n\n<li>For anything the UI can&#8217;t handle, users fall back to the Additional CSS options below.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="6-additional-css">6. Additional CSS </h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Site owners with CSS knowledge<br /><strong>Where:</strong> Appearance → Editor → Styles → three-dot menu (⋮) → Additional CSS</p>\n\n\n\n<p class="wp-block-paragraph">This is the block theme replacement for the classic Customizer&#8217;s Additional CSS panel. A free-form CSS editor for site-wide custom styles.</p>\n\n\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Free-form CSS handles any valid CSS.</li>\n\n\n\n<li>Stored in the database as part of Global Styles (not in theme files), so it&#8217;s theme-specific but survives code deployments.</li>\n\n\n\n<li>Preview changes before saving.</li>\n\n\n\n<li>Revision history (last 25 versions).</li>\n\n\n\n<li>Higher specificity than theme styles.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Not scoped to blocks — loads globally.</li>\n\n\n\n<li>No syntax highlighting or code formatting.</li>\n\n\n\n<li>Intended as a last resort for styles that can&#8217;t be achieved through theme.json or the visual Styles interface.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="7-per-block-additional-css">7. Per-Block Additional CSS </h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Site owners with CSS knowledge<br /><strong>Where:</strong> Appearance → Editor → Styles → Blocks → select a block → scroll to Advanced → Additional CSS</p>\n\n\n\n<p class="wp-block-paragraph">Target CSS to a specific block type site-wide. WordPress auto-generates the selector — you just write the CSS properties.</p>\n\n\n\n<figure class="wp-block-video wp-block-embed is-type-video is-provider-videopress"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>CSS</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">/* Example: added to Styles → Blocks → Quote → Additional CSS */\nfont-style: italic;\nborder-left: 4px solid currentColor;\npadding-left: 1.5em;</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593; font-style: italic;">/*</span><span style="color: #9893A5; font-style: italic;"> Example: added to Styles → Blocks → Quote → Additional CSS </span><span style="color: #797593; font-style: italic;">*/</span></span>\n<span class="line"><span style="color: #56949F;">font-style</span><span style="color: #575279;">: italic;</span></span>\n<span class="line"><span style="color: #56949F;">border-left</span><span style="color: #575279;">: 4px solid currentColor;</span></span>\n<span class="line"><span style="color: #56949F;">padding-left</span><span style="color: #575279;">: 1.5em;</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph">The <code>&amp;</code> selector works here for nested elements and pseudo-selectors.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Scoped to a specific block type — only loads when that block is present on a page.</li>\n\n\n\n<li>No need to know CSS selectors — WordPress handles them.</li>\n\n\n\n<li>User-level styles (highest priority in the cascade).</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Media queries may not work reliably (as of 2025). Use CSS functions like <code>clamp()</code>, <code>min()</code>, and <code>max()</code> for responsive behavior, or put responsive styles in theme-level CSS.</li>\n\n\n\n<li>Small text area with no code formatting.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="8-additional-css-class-es-on-individual-block-instances">8. Additional CSS Class(es) on individual block instances</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Content editors with CSS knowledge<br /><strong>Where:</strong> Select any block in the editor → Settings sidebar → Advanced → Additional CSS Class(es)</p>\n\n\n\n<p class="wp-block-paragraph">Add custom class names to a specific block instance. The CSS itself must be defined elsewhere (style.css, block stylesheets, Additional CSS, etc.). As a user the global Additional CSS is probably the most practical place. </p>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Precision targeting of individual block instances rather than all blocks of a type.</li>\n\n\n\n<li>Perfect for one-off styling: a highlighted paragraph, a special call to action, etc.</li>\n\n\n\n<li>Multiple classes can be added, separated by spaces.</li>\n\n\n\n<li>Works with any CSS source — just define the class styles somewhere.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Only adds class names — you still need to write the CSS elsewhere.</li>\n\n\n\n<li>Per-instance, which means it doesn&#8217;t scale well for repeated patterns (use block style variations for those).</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="9-global-style-variations-theme-level-style-presets">9. Global Style Variations (Theme-Level Style Presets)</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> JSON files in the theme&#8217;s <code>/styles</code> directory (at the top level, not in a <code>/blocks</code> subfolder)</p>\n\n\n\n<p class="wp-block-paragraph">Provide entire alternative site-wide style schemes. Each variation is a JSON partial that can override settings and styles from the main theme.json. </p>\n\n\n\n<p class="wp-block-paragraph">Since WordPress 6.6, style variations are further classified into three subtypes based on their content. </p>\n\n\n\n<p class="wp-block-paragraph">A variation file that defines only <code>settings.color</code> or <code>styles.color</code> is automatically recognized as a <strong>color variation</strong>, appearing under <strong>Styles → Colors → Palette. </strong></p>\n\n\n\n<p class="wp-block-paragraph">One that defines only <code>settings.typography</code> or <code>styles.typography</code> becomes a <strong>typography variation</strong>, appearing under <strong>Styles → Typography → Presets. </strong></p>\n\n\n\n<p class="wp-block-paragraph">Files that touch other properties remain full <strong>theme style variations</strong>. </p>\n\n\n\n<p class="wp-block-paragraph">Color and typography variations can be mixed and matched with each other and with theme variations. </p>\n\n\n\n<p class="wp-block-paragraph">To keep the <code>/styles</code> folder organized, it&#8217;s recommended to use subfolders (e.g., <code>/styles/color</code>, <code>/styles/typography</code>, <code>/styles/global</code>). </p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">// /styles/dark-mode.json\n{\n  "$schema": "https://schemas.wp.org/trunk/theme.json",\n  "version": 3,\n  "title": "Dark Mode",\n  "settings": {\n    "color": {\n      "palette": &#91;\n        { "slug": "base", "color": "#1a1a2e", "name": "Base" },\n        { "slug": "contrast", "color": "#e0e0e0", "name": "Contrast" }\n      &#93;\n    }\n  },\n  "styles": {\n    "color": {\n      "background": "#1a1a2e",\n      "text": "#e0e0e0"\n    }\n  }\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593; font-style: italic;">//</span><span style="color: #9893A5; font-style: italic;"> /styles/dark-mode.json</span></span>\n<span class="line"><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">$schema</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;https://schemas.wp.org/trunk/theme.json&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">version</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">3</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">title</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Dark Mode&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">settings</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">palette</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">&#91;</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;base&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#1a1a2e&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Base&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #797593;">{</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">slug</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;contrast&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#e0e0e0&quot;</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">name</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;Contrast&quot;</span><span style="color: #575279;"> </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&#93;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">},</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">styles</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">color</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">background</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#1a1a2e&quot;</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">      </span><span style="color: #797593;">&quot;</span><span style="color: #56949F;">text</span><span style="color: #797593;">&quot;</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">&quot;#e0e0e0&quot;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #575279;">  </span><span style="color: #797593;">}</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Users can switch between entire style schemes (light/dark, color themes, typographic variations) from the Styles panel.</li>\n\n\n\n<li>Makes one theme feel like many — more versatile without requiring separate themes.</li>\n\n\n\n<li>Fully declarative (no PHP).</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Only affects settings and styles — not templates or patterns.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/themes/global-settings-and-styles/style-variations/">Style Variations</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2024/07/mixing-and-matching-styles-colors-and-typography-in-wordpress-6-6/">Mixing and matching styles, colors, and typography in WordPress 6.6</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="10-block-style-variations-json-php-and-javascript">10. Block Style Variations (JSON, PHP, and JavaScript)</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers, plugin developers<br /><strong>Where:</strong> JSON files in <code>/styles</code>, PHP via <code>register_block_style()</code>, or JavaScript via <code>wp.blocks.registerBlockStyle()</code></p>\n\n\n\n<p class="wp-block-paragraph">Block style variations give content creators pre-made styling options in the Styles panel — like &#8220;Rounded&#8221; or &#8220;Outline&#8221; on core blocks. You can register them via JSON files in <code>/styles</code> (WordPress 6.6+, no PHP needed), PHP with <code>register_block_style()</code>, or JavaScript. The JSON-based methods integrate with Global Styles so users can customize them in the Site Editor; <code>inline_style</code>, <code>style_handle</code>, and JavaScript methods do not.</p>\n\n\n\n<p class="wp-block-paragraph">For a thorough walkthrough of all six registration methods — with code examples, a companion theme and plugin on GitHub, and a comparison table showing which methods support Global Styles — see the comprehensive guide <strong><a href="https://wordpress.com/blog/2025/05/07/custom-block-styles/">Mastering Custom Block Styles in WordPress: 6 Methods for Theme and Plugin Developers</a>.</strong></p>\n\n\n\n<h2 class="wp-block-heading" id="11-section-styles">11. Section Styles </h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> JSON files in <code>/styles</code> directory, targeting mostly group or column blocks. </p>\n\n\n\n<p class="wp-block-paragraph">Section styles are more of a convention than a separate feature. They are essentially Block Style Variations. The difference is naming the variation slug: <code>style-1</code>, <code>style-2</code>, etc. so that they can be reused across themes.</p>\n\n\n\n<p class="wp-block-paragraph">Since WordPress 6.6, block style variations can style nested inner blocks and elements, enabling &#8220;section styling&#8221; — where a Group block&#8217;s style variation changes the appearance of all blocks within it.</p>\n\n\n\n<p class="wp-block-paragraph">The Twenty Twenty Five theme showcases this convention quite nicely. </p>\n\n\n\n		<figure class="wp-block-jetpack-videopress jetpack-videopress-player">\n			<div class="jetpack-videopress-player__wrapper"> </div>\n			\n			\n		</figure>\n		\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Apply coordinated styles to entire sections (background, text color, button colors, link colors) with a single click.</li>\n\n\n\n<li>Users select the section style in the block&#8217;s Styles panel.</li>\n\n\n\n<li>Powerful for creating consistent design sections (hero areas, dark sections, testimonials).</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Easy to overwhelm users with too many section style options — restraint is needed.</li>\n\n\n\n<li>Requires careful design token architecture (using base/contrast/primary/secondary color naming).</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://make.wordpress.org/core/2024/06/24/section-styles/">Section Styles</a> (WordPress 6.6)</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="12-block-stylesheets-via-wp-enqueue-block-style">12. Block Stylesheets via <code>wp_enqueue_block_style()</code></h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> Separate <code>.css</code> files in your theme (e.g., <code>/assets/blocks/core-image.css</code>), registered in <code>functions.php</code></p>\n\n\n\n<p class="wp-block-paragraph">This is the recommended approach when you have more CSS than what&#8217;s comfortable in theme.json&#8217;s <code>css</code> property.</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">/* /assets/blocks/core-image.css */\n.wp-block-image img {\n    padding: 1rem;\n    background: linear-gradient(-60deg, #ff5858, #f09819);\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593; font-style: italic;">/*</span><span style="color: #9893A5; font-style: italic;"> /assets/blocks/core-image.css </span><span style="color: #797593; font-style: italic;">*/</span></span>\n<span class="line"><span style="color: #575279;">.wp-block-image img </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #B4637A;">padding</span><span style="color: #797593;">:</span><span style="color: #575279;"> </span><span style="color: #D7827E;">1</span><span style="color: #B4637A;">rem;</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #B4637A;">background:</span><span style="color: #575279;"> </span><span style="color: #B4637A;">linear-gradient(</span><span style="color: #D7827E;">-60</span><span style="color: #B4637A;">deg</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #B4637A;">#ff5858,</span><span style="color: #575279;"> </span><span style="color: #B4637A;">#f09819);</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>JSON</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">// functions.php\nadd_action( \'init\', function() {\n    wp_enqueue_block_style( \'core/image\', array(\n        \'handle\' => \'my-theme-image-styles\',\n        \'src\'    => get_theme_file_uri( \'assets/blocks/core-image.css\' ),\n        \'path\'   => get_theme_file_path( \'assets/blocks/core-image.css\' ),\n    ) );\n});</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #797593; font-style: italic;">//</span><span style="color: #9893A5; font-style: italic;"> functions.php</span></span>\n<span class="line"><span style="color: #575279;">add_action( \'init\', function() </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #B4637A;">wp_enqueue_block_style(</span><span style="color: #575279;"> </span><span style="color: #B4637A;">\'core/image\',</span><span style="color: #575279;"> </span><span style="color: #B4637A;">array(</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #B4637A;">\'handle\'</span><span style="color: #575279;"> </span><span style="color: #B4637A;">=&gt;</span><span style="color: #575279;"> </span><span style="color: #B4637A;">\'my-theme-image-styles\',</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #B4637A;">\'src\'</span><span style="color: #575279;">    </span><span style="color: #B4637A;">=&gt;</span><span style="color: #575279;"> </span><span style="color: #B4637A;">get_theme_file_uri(</span><span style="color: #575279;"> </span><span style="color: #B4637A;">\'assets/blocks/core-image.css\'</span><span style="color: #575279;"> </span><span style="color: #B4637A;">),</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #B4637A;">\'path\'</span><span style="color: #575279;">   </span><span style="color: #B4637A;">=&gt;</span><span style="color: #575279;"> </span><span style="color: #B4637A;">get_theme_file_path(</span><span style="color: #575279;"> </span><span style="color: #B4637A;">\'assets/blocks/core-image.css\'</span><span style="color: #575279;"> </span><span style="color: #B4637A;">),</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #B4637A;">)</span><span style="color: #575279;"> </span><span style="color: #B4637A;">);</span></span>\n<span class="line"><span style="color: #797593;">}</span><span style="color: #575279;">);</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><strong>Performance:</strong> CSS only loads when the block is actually present on the page. WordPress inlines it in the <code>&lt;head&gt;</code> section</li>\n\n\n\n<li>Full CSS syntax with syntax highlighting, multi-line formatting, and preprocessor support (Sass/SCSS).</li>\n\n\n\n<li>Clean code organization — one file per block.</li>\n\n\n\n<li>Works for any CSS, including media queries, animations, complex selectors, and pseudo-elements.</li>\n\n\n\n<li>Applies in both the editor and front end.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Requires PHP registration in functions.php.</li>\n\n\n\n<li>These styles aren&#8217;t exposed in the Global Styles UI for user editing.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/themes/features/block-stylesheets/">Block Stylesheets</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2022/12/leveraging-theme-json-and-per-block-styles-for-more-performant-themes/">Leveraging theme.json and per-block styles for more performant themes</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="13-enqueuing-stylesheets-via-wp-enqueue-style-in-php">13. Enqueuing Stylesheets via <code>wp_enqueue_style()</code> in PHP</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme and plugin developers<br /><strong>Where:</strong> <code>functions.php</code> using the <code>wp_enqueue_scripts</code> (front end) and <code>enqueue_block_editor_assets</code> (editor) hooks</p>\n\n\n\n<p class="wp-block-paragraph">The traditional WordPress approach still works and is useful for loading third-party CSS libraries, fonts, or complex stylesheets. </p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>PHP</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">add_action( \'wp_enqueue_scripts\', function() {\n    wp_enqueue_style(\n        \'my-theme-custom\',\n        get_theme_file_uri( \'assets/css/custom.css\' ),\n        array(),\n        \'1.0.0\'\n    );\n});\n\n// For editor-only styles:\nadd_action( \'enqueue_block_editor_assets\', function() {\n    wp_enqueue_style(\n        \'my-theme-editor\',\n        get_theme_file_uri( \'assets/css/editor.css\' ),\n        array(),\n        \'1.0.0\'\n    );\n});</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #D7827E;">add_action</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'wp_enqueue_scripts\'</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #286983;">function</span><span style="color: #797593;">()</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #D7827E;">wp_enqueue_style</span><span style="color: #797593;">(</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #EA9D34;">\'my-theme-custom\'</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #D7827E;">get_theme_file_uri</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'assets/css/custom.css\'</span><span style="color: #575279;"> </span><span style="color: #797593;">),</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #B4637A; font-style: italic;">array</span><span style="color: #797593;">(),</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #EA9D34;">\'1.0.0\'</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">);</span></span>\n<span class="line"><span style="color: #797593;">});</span></span>\n<span class="line"></span>\n<span class="line"><span style="color: #797593; font-style: italic;">//</span><span style="color: #9893A5; font-style: italic;"> For editor-only styles:</span></span>\n<span class="line"><span style="color: #D7827E;">add_action</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'enqueue_block_editor_assets\'</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #286983;">function</span><span style="color: #797593;">()</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #D7827E;">wp_enqueue_style</span><span style="color: #797593;">(</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #EA9D34;">\'my-theme-editor\'</span><span style="color: #797593;">,</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #D7827E;">get_theme_file_uri</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'assets/css/editor.css\'</span><span style="color: #575279;"> </span><span style="color: #797593;">),</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #B4637A; font-style: italic;">array</span><span style="color: #797593;">(),</span></span>\n<span class="line"><span style="color: #575279;">        </span><span style="color: #EA9D34;">\'1.0.0\'</span></span>\n<span class="line"><span style="color: #575279;">    </span><span style="color: #797593;">);</span></span>\n<span class="line"><span style="color: #797593;">});</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Full control over loading conditions (you can conditionally enqueue based on page, template, user role, etc.).</li>\n\n\n\n<li>Familiar to all WordPress developers.</li>\n\n\n\n<li>Can load external stylesheets, Google Fonts, icon libraries, etc.</li>\n\n\n\n<li>Supports dependencies, versioning, and media attributes.</li>\n\n\n\n<li>Can target editor-only or front-end-only.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Loads on every page (unless you add conditional logic).</li>\n\n\n\n<li>No integration with the Global Styles UI.</li>\n\n\n\n<li>Doesn&#8217;t benefit from the block stylesheet system&#8217;s per-block inlining.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/block-editor/how-to-guides/enqueueing-assets-in-the-editor/#editor-scripts-and-styles">Enqueueing assets in the Editor</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/themes/core-concepts/including-assets/#editor-stylesheets" rel="noreferrer noopener" target="_blank">Editor Stylesheets</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/reference/hooks/wp_enqueue_scripts/">do_action( ‘wp_enqueue_scripts’ )</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/reference/functions/wp_enqueue_style/">wp_enqueue_style( string $handle, string $src, string[] $deps = array(), string|bool|null $ver = false, string $media )</a></li>\n</ul>\n\n\n\n<h3 class="wp-block-heading" id="what-s-the-difference-between-wp-enqueue-style-and-add-editor-style">What&#8217;s the difference between wp_enqueue_style and add_editor_style?</h3>\n\n\n\n<p class="wp-block-paragraph"><code>wp_enqueue_style()</code> is the general-purpose function for loading stylesheets — you choose where it loads by picking your hook (<code>wp_enqueue_scripts</code> for the frontend, <code>enqueue_block_editor_assets</code> for the editor). When you use it on the editor hook, the stylesheet loads into the entire editor page, including the UI chrome (sidebar, toolbar, etc.).</p>\n\n\n\n<p class="wp-block-paragraph"><code>add_editor_style()</code> is specifically designed for visual parity between the editor and the frontend. WordPress takes the stylesheet you pass it and automatically scopes every selector to <code>.editor-styles-wrapper</code>, so your styles only affect the content canvas and don&#8217;t bleed into the editor UI. In block themes it&#8217;s typically called from an <code>after_setup_theme</code> hook — this is how themes get their <code>style.css</code> to apply inside the editor.</p>\n\n\n\n<p class="wp-block-paragraph">The practical upshot: if you want your theme&#8217;s frontend styles to look the same in the editor, use <code>add_editor_style()</code>. If you need to style the editor UI itself (like a custom sidebar panel) or need fine-grained control over loading conditions, dependencies, and versioning, use <code>wp_enqueue_style()</code> on the appropriate hook.</p>\n\n\n\n<h2 class="wp-block-heading" id="14-the-theme-s-style-css">14. The Theme&#8217;s <code>style.css</code></h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Who:</strong> Theme developers<br /><strong>Where:</strong> <code>style.css</code> in the theme root</p>\n\n\n\n<p class="wp-block-paragraph">The traditional main stylesheet still works in block themes, but its role has changed significantly. It now primarily holds theme metadata (name, version, description) and is loaded globally. </p>\n\n\n\n<p class="wp-block-paragraph">In block themes it&#8217;s typically called from an <code>after_setup_theme</code> hook — this is how themes get their <code>style.css</code> to apply inside the editor.</p>\n\n\n\n<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers"><span>PHP</span><span class="code-block-pro-copy-button" style="color: #575279; display: none;" tabindex="0"><pre class="code-block-pro-copy-button-pre"><textarea class="code-block-pro-copy-button-textarea" readonly="readonly" tabindex="-1">add_action( \'after_setup_theme\', \'theme_slug_setup\' );\n\nfunction theme_slug_setup() {\n	add_editor_style( get_stylesheet_uri() );\n}</textarea></pre><svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path class="with-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" stroke-linecap="round" stroke-linejoin="round"></path><path class="without-check" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><pre class="shiki rose-pine-dawn" style="background-color: #faf4ed;" tabindex="0"><code><span class="line"><span style="color: #D7827E;">add_action</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'after_setup_theme\'</span><span style="color: #797593;">,</span><span style="color: #575279;"> </span><span style="color: #EA9D34;">\'theme_slug_setup\'</span><span style="color: #575279;"> </span><span style="color: #797593;">);</span></span>\n<span class="line"></span>\n<span class="line"><span style="color: #286983;">function</span><span style="color: #575279;"> </span><span style="color: #D7827E;">theme_slug_setup</span><span style="color: #797593;">()</span><span style="color: #575279;"> </span><span style="color: #797593;">{</span></span>\n<span class="line"><span style="color: #575279;">	</span><span style="color: #D7827E;">add_editor_style</span><span style="color: #797593;">(</span><span style="color: #575279;"> </span><span style="color: #D7827E;">get_stylesheet_uri</span><span style="color: #797593;">()</span><span style="color: #575279;"> </span><span style="color: #797593;">);</span></span>\n<span class="line"><span style="color: #797593;">}</span></span></code></pre></div>\n\n\n\n<p class="wp-block-paragraph"><strong>Advantages:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Familiar workflow for developers with classic theme experience.</li>\n\n\n\n<li>Good for truly global CSS that should always be available (e.g., custom utility classes, print styles, CSS resets beyond what theme.json handles).</li>\n\n\n\n<li>Full CSS syntax, syntax highlighting, and preprocessor support.</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Limitations:</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li>Needs to be enqueued like any other stylesheet file (see #13)  </li>\n\n\n\n<li>Loads on every page, even if the styles aren&#8217;t needed — no per-block performance optimization.</li>\n\n\n\n<li>Not integrated with the Global Styles UI.</li>\n\n\n\n<li>Not the recommended approach for block-specific styling; use block stylesheets instead (#12)</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Documentation</strong></p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/themes/core-concepts/main-stylesheet/">Main Stylesheet (style.css)</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading" id="summary-table">Summary Table</h2>\n\n\n\n<figure class="wp-block-table alignwide is-style-stripes" style="font-size: 0px;"><table><thead><tr><th>#</th><th>Method</th><th>Who</th><th>Scope</th><th>Loads When</th><th>Editable by Users</th></tr></thead><tbody><tr><td>1</td><td>theme.json structured properties</td><td>Developer</td><td>Global / block / element</td><td>Always (inlined)</td><td>Yes, via Global Styles UI</td></tr><tr><td>2</td><td>theme.json <code>css</code> property</td><td>Developer</td><td>Global or per-block</td><td>Always (inlined)</td><td>Yes, per-block CSS is visible in Styles</td></tr><tr><td>3</td><td>Custom CSS properties (<code>settings.custom</code>)</td><td>Developer</td><td>Global (variables)</td><td>Always</td><td>No (indirectly via tokens)</td></tr><tr><td>4</td><td>Child theme.json</td><td>Developer</td><td>Inherits parent</td><td>Same as parent</td><td>Same as parent</td></tr><tr><td>5</td><td>Global Styles UI (visual)</td><td>User</td><td>Global / block / element</td><td>Always (inlined)</td><td>It <em>is</em> the user editing</td></tr><tr><td>6</td><td>Additional CSS (site-wide)</td><td>User</td><td>Global</td><td>Every page</td><td>Yes</td></tr><tr><td>7</td><td>Per-block Additional CSS</td><td>User</td><td>Per-block type</td><td>When block present</td><td>Yes</td></tr><tr><td>8</td><td>Additional CSS Class(es)</td><td>User</td><td>Single block instance</td><td>When that block is present</td><td>N/A (class only)</td></tr><tr><td>9</td><td>Global style variations</td><td>Developer</td><td>Whole site preset</td><td>When active</td><td>Users switch presets</td></tr><tr><td>10</td><td>Block style variations (JSON, PHP, JS)</td><td>Developer</td><td>Per-block variation</td><td>Only when block + variation is used</td><td>JSON/<code>style_data</code> methods: yes; <code>inline_style</code>/JS: no</td></tr><tr><td>11</td><td>Section styles</td><td>Developer</td><td>container blocks </td><td>When block + variation is used</td><td>Yes, via Styles panel</td></tr><tr><td>12<br /> </td><td>Block stylesheets (<code>wp_enqueue_block_style</code>)</td><td>Developer</td><td>Per-block</td><td>Only when block is present</td><td>No</td></tr><tr><td>13</td><td><code>wp_enqueue_style()</code></td><td>Developer</td><td>Configurable</td><td>Configurable</td><td>No</td></tr><tr><td>14</td><td><code>style.css</code></td><td>Developer</td><td>Global</td><td>Every page</td><td>No</td></tr></tbody></table></figure>\n\n\n\n<h2 class="wp-block-heading" id="decision-guide">Decision Guide</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Start here:</strong> Use <strong>theme.json structured properties</strong> (#1) for everything they support. This gives you the best integration with the Global Styles system and lets users customize your styles.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Need CSS that theme.json properties can&#8217;t express?</strong> Use the <strong>theme.json <code>css</code> property</strong> (#2) for small additions or <strong>block stylesheets</strong> (#12) for anything substantial.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Want to offer style choices to content editors?</strong> Create <strong>block style variations</strong> (#10) so they appear in the Styles panel.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Site owner making tweaks?</strong> Use the <strong>Global Styles UI</strong> (#5) first, then fall back to <strong>Additional CSS</strong> (#7 or #7) for anything the visual interface can&#8217;t handle.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Need to target one specific block instance?</strong> Use <strong>Additional CSS Class(es)</strong> (#8) and define the class in your preferred CSS source.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Building a child theme?</strong> Override the parent via <strong>child theme.json</strong> (#4) and add block stylesheets as needed.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Need to sync user edits with theme files</strong>? Use the <a href="https://wordpress.org/plugins/create-block-theme/">Create Block Theme plugin</a>. </p>\n\n\n\n<p class="wp-block-paragraph"><strong>How to sync user editor to theme files and maintain version control?</strong> Here is a tutorial: <a href="https://developer.wordpress.org/news/2026/01/streamlining-block-theme-development-with-wordpress-playground-and-github/">Streamlining block theme development with WordPress Playground and GitHub</a>.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><em>Huge Thank you to Justin Tadlock for reviewing the post to make sure it&#8217;s all technically accurate. </em></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 27 Feb 2026 18:01:03 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:10;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"Open Channels FM: Empathy";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1497274";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:32:"https://openchannels.fm/empathy/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:73:"For some of us it comes naturally. For others, it may need to be learned.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 27 Feb 2026 09:55:43 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:11;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:16:"Matt: Enablement";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151317";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:33:"https://ma.tt/2026/02/enablement/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:474:"<p class="wp-block-paragraph">This year at <a href="https://automattic.com/">Automattic</a> has been intense. We kicked it off with two weeks of in-person AI enablement training, <a href="https://automattic.com/2026/02/25/ai-enablement-wordpress/">and there&#8217;s a great post about it now</a>. I&#8217;ve been so impressed and inspired by my colleagues leaning in to learn and grow together in the most consequential time in software development in the past 40 years.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 27 Feb 2026 02:00:52 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:12;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:40:"WordPress.org blog: WordPress 7.0 Beta 2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://wordpress.org/news/?p=20025";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:56:"https://wordpress.org/news/2026/02/wordpress-7-0-beta-2/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:6527:"<p class="wp-block-paragraph">WordPress 7.0 Beta 2 is now ready for testing!</p>\n\n\n\n<p class="wp-block-paragraph"><strong>This beta version of the WordPress software is under development</strong>. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, you should evaluate Beta 2 on a test server and site. You can test WordPress 7.0 Beta 2 in any of the following ways:</p>\n\n\n\n<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Plugin</strong></td><td>Install and activate the <a href="https://wordpress.org/plugins/wordpress-beta-tester/">WordPress Beta Tester</a> plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)</td></tr><tr><td><strong>Direct Download</strong></td><td>Download the <a href="https://wordpress.org/wordpress-7.0-beta2.zip">Beta 2 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line</strong></td><td>Use this <a href="https://make.wordpress.org/cli/">WP-CLI</a> command: <br /><code>wp core update --version=7.0-beta2</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use the <a href="https://playground.wordpress.net/?php=8.0&amp;wp=beta&amp;networking=no&amp;language=&amp;multisite=no&amp;random=y4q1rn88xn">WordPress Playground instance</a> to test the software directly in your browser.  No setup required – just click and go! </td></tr></tbody></table></figure>\n\n\n\n<p class="wp-block-paragraph">The scheduled final release date for WordPress 7.0 is <strong>April 9, 2026</strong>. The full <a href="https://make.wordpress.org/core/2026/02/12/wordpress-7-0-release-party-schedule/">release schedule can be found here</a>. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible. Make sure to check the <a href="https://make.wordpress.org/core/">Make WordPress Core blog</a> for <a href="https://make.wordpress.org/core/tag/7-0">7.0-related posts</a> in the coming weeks for more information. Thank you to everyone who contributes by testing!</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Catch up on what’s new in WordPress 7.0</strong>: Read the <a href="https://wordpress.org/news/2026/02/wordpress-7-0-beta-1/">Beta 1 announcement</a> for details and highlights.</p>\n\n\n\n<h2 class="wp-block-heading">How to test this release</h2>\n\n\n\n<p class="wp-block-paragraph">Your help testing WordPress 7.0 Beta 2 is key to ensuring everything in the release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This <a href="https://make.wordpress.org/test/2026/02/20/help-test-wordpress-7-0/">guide on what to test in WordPress 7.0</a> will walk you through testing features in WordPress 7.0.</p>\n\n\n\n<p class="wp-block-paragraph">If you encounter an issue, please report it to the <a href="https://wordpress.org/support/forum/alphabeta/">Alpha/Beta area</a> of the support forums or directly to <a href="https://core.trac.wordpress.org/newticket">WordPress Trac</a> if you are comfortable writing a reproducible bug report. You can also check your issue against a list of <a href="https://core.trac.wordpress.org/tickets/major">known bugs</a>. Curious about testing releases in general? Follow along with the <a href="https://make.wordpress.org/test/">testing initiatives in Make Core</a> and join the <a href="https://wordpress.slack.com/messages/core-test/">#core-test channel</a> on <a href="https://wordpress.slack.com/">Making WordPress Slack</a>.</p>\n\n\n\n<h2 class="wp-block-heading">Beta 2 updates and highlights</h2>\n\n\n\n<p class="wp-block-paragraph">WordPress 7.0 Beta 2 contains more than 70 updates and fixes across the Editor and Core since the Beta 1 release. </p>\n\n\n\n<p class="wp-block-paragraph">Each beta cycle focuses on bug fixes; and more are on the way with your help through testing. You can browse the technical details for all issues addressed since Beta 1 using these links:</p>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://github.com/WordPress/gutenberg/commits/wp/7.0?since=2026-02-20&amp;until=2026-02-26">GitHub commits for 7.0</a> since February 20, 2026</li>\n\n\n\n<li><a href="https://core.trac.wordpress.org/query?status=closed&amp;changetime=02%2F20%2F2026..02%2F26%2F2026&amp;milestone=7.0&amp;col=id&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=id">Closed Trac tickets for 7.0</a> since February 20, 2026</li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"><strong>Beta 2 also contains a new feature</strong>!</p>\n\n\n\n<p class="wp-block-paragraph">AI provider management is more intuitive in 7.0 Beta 2 with a new Connectors UI dashboard page. WordPress users can now manage external AI connections in a central place in wp-admin, under Settings &gt; Connectors. The new UI enables users to add, delete, and update external connections. It is powered by an extensible, route-based architecture that allows plugins and themes to hook into the page and expand its functionality. The new Connectors page builds on PHP-based script and menu infrastructure, and adds route components powered by <code>@wordpress/components</code> and <code>@wordpress/admin-ui</code>. A new <code>connections-wp-admin-init</code> hook and registration APIs allow plugins to integrate cleanly. This makes managing external connections easier while giving developers a clearer path to extend the experience.</p>\n\n\n\n<h2 class="wp-block-heading">A Beta 2 haiku</h2>\n\n\n\n<p class="wp-block-paragraph"><em>New, and fresh as dew</em></p>\n\n\n\n<p class="wp-block-paragraph"><em>Crafted and refined for you:</em></p>\n\n\n\n<p class="wp-block-paragraph"><em>Beta 2 breaks through.</em></p>\n\n\n\n<p class="has-text-align-right wp-block-paragraph"><em>Props to <a class="mention" href="https://profiles.wordpress.org/4thhubbard/"><span class="mentions-prefix">@</span>4thhubbard</a>, <a class="mention" href="https://profiles.wordpress.org/annezazu/"><span class="mentions-prefix">@</span>annezazu</a></em>, <em><a class="mention" href="https://profiles.wordpress.org/audrasjb/"><span class="mentions-prefix">@</span>audrasjb</a>, <a class="mention" href="https://profiles.wordpress.org/mukesh27/"><span class="mentions-prefix">@</span>mukesh27</a>, and <a class="mention" href="https://profiles.wordpress.org/chaion07/"><span class="mentions-prefix">@</span>chaion07</a></em> <em>for collaboration, proofreading and review.</em></p>\n\n\n\n<p class="wp-block-paragraph"></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 26 Feb 2026 16:32:56 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:10:"Amy Kamala";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:13;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"Open Channels FM: Open Source vs SaaS: The Freedom Debate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650282";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:63:"https://openchannels.fm/open-source-vs-saas-the-freedom-debate/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:126:"In this clip, hosts Dave and Robert discuss the balance between personal convenience and the ideals of open source technology.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 26 Feb 2026 14:50:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:14;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:19:"Matt: Great Writing";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151313";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:36:"https://ma.tt/2026/02/great-writing/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1961:"<p class="wp-block-paragraph">Especially in an age where generating words is cheap, when you come across truly great writing, it really stands out. I want to pull two quotes from The Economist&#8217;columnist Charlemagne&#8217;s article <a href="https://www.economist.com/europe/2026/02/25/luxury-goods-are-europes-global-tax-on-vanity">Luxury goods are Europe’s global tax on vanity</a>.</p>\n\n\n\n<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">\n<p class="wp-block-paragraph">Flogging luxury goods is one of the few fields of business in which Europe excels (if one excludes the crafting of regulation). In an ironic twist, an egalitarian continent with an ever-declining share of global GDP hosts an industry that thrives on inequality and bombastic money-making. For how many seasons more can this alchemy of aspiration endure?</p>\n</blockquote>\n\n\n\n<p class="wp-block-paragraph">I mean, gosh, look at every word there. How they flow. The density of concepts and metaphors. Here&#8217;s another delicious excerpt.</p>\n\n\n\n<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">\n<p class="wp-block-paragraph">Luxury houses sell the idea of scarcity, with hordes of publicists explaining that the years-long wait for a Birkin handbag is due to the lack of sufficient artisans to craft these pinnacles of refinement. This is a fairy tale stitched in fine silk. The luxury-goods industry has roughly tripled in size since 2000; its €358bn in annual sales—half a Walmart or Amazon, give or take—betrays how thoroughly mainstream supposed exclusivity has become. Fifty years ago, Louis Vuitton had but two outlets, both in France. These days it has two stores in Ningbo, China’s 34th-biggest city. Exclusive, <em>moi</em>?</p>\n</blockquote>\n\n\n\n<p class="wp-block-paragraph">I guess this post also serves as an endorsement of why it&#8217;s worth subscribing to publications like The Economist. </p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 26 Feb 2026 07:04:40 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:15;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:112:"WPTavern: #206 – Jonathan Desrosiers on WordPress Sustainability, Community Engagement, and Release Strategies";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:48:"https://wptavern.com/?post_type=podcast&p=202772";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:124:"https://wptavern.com/podcast/206-jonathan-desrosiers-on-wordpress-sustainability-community-engagement-and-release-strategies";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:57656:"<details>Transcript<div>\n<p class="wp-block-paragraph">[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p class="wp-block-paragraph">Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case WordPress sustainability, community engagement and release strategies.</p>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice. Or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p class="wp-block-paragraph">If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p class="wp-block-paragraph">So on the podcast today, we have Jonathan Desrosiers. Jonathan has been involved with WordPress for almost two decades, both as a user and a contributor. He&#8217;s a principal software engineer at Bluehost, where his role sees him sponsored to work on WordPress through the Five for the Future program. Over the years, he&#8217;s become a Core committer, and has spent many hours thinking about how to enhance the contributor experience, and make it easier for people to get involved in the project.</p>\n\n\n\n<p class="wp-block-paragraph">In this episode we discuss how WordPress releases might become more impactful by synchronizing them with flagship community events like WordCamps and State of the Word. A recent experiment of combining a major release with a live event spark some excitement, and Jonathan shares insights on the logistics behind such synchronized moments, the challenges posed by international holidays, and regional scheduling, and the broader vision for connecting releases with community gatherings.</p>\n\n\n\n<p class="wp-block-paragraph">We also get into the challenging landscape of the WordPress community, how it&#8217;s recovering from the effects of COVID, the struggle to rebuild local Meetups, and efforts like mentorship and educational initiatives to bring in new contributors, particularly from younger generations.</p>\n\n\n\n<p class="wp-block-paragraph">Jonathan reflects on the importance of making release moments engaging and fun, akin to the anticipation of a new TV series or software launch, and the role of AI and open source in empowering a new wave of builders.</p>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;re interested in how release cycles, community events, and contributor onboarding are involved in WordPress, or what the future might hold for the platform and its community, this episode is for you.</p>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p class="wp-block-paragraph">And so without further delay, I bring you Jonathan Desrosiers.</p>\n\n\n\n<p class="wp-block-paragraph">I am joined on the podcast by Jonathan Desrosiers. Hello.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:06] <strong>Jonathan Desrosiers:</strong> Hi, how are you?</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:07] <strong>Nathan Wrigley:</strong> Yeah, good. Jonathan&#8217;s joining me again. Most recently, I think we were at WordCamp somewhere. I can&#8217;t exactly remember where, but I was chatting with him and Joe Dolson if memory serves. And a very different conversation to be had today because Jonathan has been mulling over how we can make releases impactful, and also how we can bind those to community events, particularly flagship WordPress events like WordCamps, things like that.</p>\n\n\n\n<p class="wp-block-paragraph">Before we begin that conversation, Jonathan, I wonder, it&#8217;s a bit of a banal question, but people like to have the context of who you are. So would you mind just, very quick potted bio. Just tell us who you are and what you do in the WordPress space.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:44] <strong>Jonathan Desrosiers:</strong> Sure. So my name is Jonathan Desrosiers. I am a principal software engineer at Bluehost and I am sponsored there, the majority of my time is sponsored to contribute back to the WordPress project through the Five for the Future program. And so I&#8217;ve been there, probably since 2018, I think. And I&#8217;ve been a Core committer for almost eight years now.</p>\n\n\n\n<p class="wp-block-paragraph">I&#8217;ve been involved as an accredited contributor for 13 years now. And so I&#8217;ve been involved with WordPress for over a decade in many ways, contributing, but also as a user for almost, geez, almost two decades now I think. And so, I just had that realisation, it&#8217;s been a really long time. It&#8217;s been almost 20 years that I&#8217;ve been at least using WordPress in some way.</p>\n\n\n\n<p class="wp-block-paragraph">But week to week I do a lot of thinking about contributor experience, how we can automate things, or how we can make our processes more clear so that more people can participate. And just generally making sure that everybody has what they need to be successful. And whether that&#8217;s mentorship, or they have blockers they need, certain people to come together and discuss, and get a consensus or understanding, you know, how the sausage is made in some way.</p>\n\n\n\n<p class="wp-block-paragraph">[00:04:56] <strong>Nathan Wrigley:</strong> I think it&#8217;s fair to say that you are very much connected to the WordPress project. I think it&#8217;s the fulcrum of your working life, and you are working at a very high level as well. So Core committer, things like that.</p>\n\n\n\n<p class="wp-block-paragraph">Now, in the recent past, it was probably, I want to say December in the year 2025, we had a kind of strange event happened. Not strange in the sense of weird, but strange in the sense of different, unusual. A release of WordPress came out and it coincided with an actual event. Now, in this case, it was State of the Word. So there was a bunch of people, and I believe they were gathered in New York. I could be wrong about that, but I think it was in.</p>\n\n\n\n<p class="wp-block-paragraph">[00:05:33] <strong>Jonathan Desrosiers:</strong> It was in San Francisco.</p>\n\n\n\n<p class="wp-block-paragraph">[00:05:35] <strong>Nathan Wrigley:</strong> San Francisco. Okay, there we go. Thank you for the correction. It was in San Francisco and the idea was that the release of WordPress would go out and it would be bound to this event. And there was this almost, how can we describe it? It was almost like television, basically. It was being filmed and streamed live all over the place. And there was this feeling of a big red button. There was a lot of people gathered around and they all sort of leaned in and pushed a big red button, and the release of WordPress came out.</p>\n\n\n\n<p class="wp-block-paragraph">Now, I don&#8217;t know if the button actually did anything or if it was really sort of smoke and mirrors. I like the idea that the button actually did signal the release, but I don&#8217;t know if that&#8217;s the case. But the point was, there was a little bit of theater put into it. There was this idea that, okay, we&#8217;ve got this live event which lots of people will be watching. We&#8217;ve got a release which we need to do, which lots of people will be looking forward to. Why don&#8217;t we sort of combine the two things?</p>\n\n\n\n<p class="wp-block-paragraph">And so it was a bit of PR really. And it also felt a bit like sort of marketing, and I&#8217;m going to use gimmick in the real sense of the word. So not like gimmick as in something pointless, but gimmick as in something different, unique. Something to draw your attention and grab you in. And I think the idea has been proposed that in the year 2026, the flagship events, the flagship WordCamps, so I&#8217;ll list them in order in which they&#8217;re happening.</p>\n\n\n\n<p class="wp-block-paragraph">So we&#8217;ve got WordCamp Asia, and then we&#8217;ve WordCamp Europe, and then we&#8217;ve got WordCamp US. The three releases of WordPress during 2026 will happen in tandem with those events. Now, why? Why would we want to do this?</p>\n\n\n\n<p class="wp-block-paragraph">[00:07:12] <strong>Jonathan Desrosiers:</strong> Yeah, so I don&#8217;t think it was intentional, but the schedule just happened to coincide. You know, we were working on 6.9 and we realised, oh, the release date is the same as State of the Word. And so, I can&#8217;t remember who originally had the idea, but it was mentioned that it would be really neat to just be able to publish it live at the event and celebrate that.</p>\n\n\n\n<p class="wp-block-paragraph">I guess the main reason behind it is just that, the more I&#8217;m involved in open source, the more I realise that the code and the license and all those things are important, but the most important thing underneath any open source project is the community that&#8217;s involved with it. And what better way to celebrate our achievements and our accomplishments when we get together in different ways.</p>\n\n\n\n<p class="wp-block-paragraph">And so, typically that&#8217;s in Slack or social media, right? We celebrate a release and we share the posts and say what we&#8217;re excited about. But we also get together at different events and we do the same thing, right? We talk about what we&#8217;re excited about, what we&#8217;re working on, what&#8217;s coming, or what we think should change in certain ways. Why not just do that at the same time and create even a more ultimate celebration, right? Another community moment where people have another opportunity to feel involved in something greater than them.</p>\n\n\n\n<p class="wp-block-paragraph">[00:08:25] <strong>Nathan Wrigley:</strong> Do you have any notion that this is going to be carried forward? I mean, I know that there was obviously a bit of serendipity in how it happened. The coincidence of timing and things like that. But do you have every confidence that this will happen, that Asia will get a release, Europe will get a release, and the US will get a release. In the year 2026, do you think that&#8217;s going to actually occur?</p>\n\n\n\n<p class="wp-block-paragraph">[00:08:46] <strong>Jonathan Desrosiers:</strong> We will see. So as the proposed schedule is for this calendar year, right? There&#8217;s three releases. Unfortunately, it&#8217;s tough because the people planning WordCamps don&#8217;t plan around our software&#8217;s release cadence, right? They plan around budget, regional holidays, travel factors, weather, cost of venues and availability.</p>\n\n\n\n<p class="wp-block-paragraph">And so, you know, it&#8217;s not reasonable for the Core team and the people working on releases to say you have to have an event in a certain month, right? And so this year, some people may not have noticed, but WordCamp Asia is in April this year, which it&#8217;s been in February so far in the previous editions. And WordCamp Europe is in June, which it&#8217;s traditionally usually in.</p>\n\n\n\n<p class="wp-block-paragraph">And so that&#8217;s not a big enough gap to have another major release. And so the proposed schedule is saying, let&#8217;s release during WordCamp Asia, let&#8217;s release during WordCamp US, and then we&#8217;ll release again at the end of the year around State of the Word. We don&#8217;t have a date for State of the Word yet, but it&#8217;s around where we think it might be.</p>\n\n\n\n<p class="wp-block-paragraph">And likewise, creating a schedule for releases is incredibly hard because if we don&#8217;t release in the first week of April, for example, then I believe the whole month of April has major religious holidays scattered throughout it in different areas of the world. And if we released in March, that was way too soon because we started the alpha phase of 7.0, that starts when the previous release is branched, like it&#8217;s separated from the primary branch in the code base, and that happened in like November.</p>\n\n\n\n<p class="wp-block-paragraph">But there&#8217;s US Thanksgiving, there&#8217;s Hanukkah, there&#8217;s Christmas, there&#8217;s New Year&#8217;s, right? A lot of people in the community take the majority of December off, and so that&#8217;s like a washed month, right? And so we would&#8217;ve had essentially four weeks until the feature complete point of the release. So that was too soon. And so it&#8217;s just as hard to plan the release schedule in a way that doesn&#8217;t negatively impact everybody as best as possible as it is to plan these major events.</p>\n\n\n\n<p class="wp-block-paragraph">And so I can&#8217;t say that it will be a guarantee going forward. We&#8217;re trying it out this year to see how it goes and what we can learn from it. We felt that the State of the Word was successful and it was exciting. It was unique in its own ways. And so we want to try, continue trying this this year and see how it goes.</p>\n\n\n\n<p class="wp-block-paragraph">[00:11:06] <strong>Nathan Wrigley:</strong> Gosh, the piece that you just said there about the religious holidays and what have you, that really opens up a really interesting discussion. Because it is quite likely, I imagine, that the listenership to this podcast probably never gave that any thought, that this kind of international calendar, be it a religious calendar or maybe just a vacation calendar in certain parts of the globe would really impact when the release can happen.</p>\n\n\n\n<p class="wp-block-paragraph">Because there are people who are committing to the project, and they tend to be in certain jurisdictions. And so if there are people who are on, I don&#8217;t know, a week long holiday, nationally, in a specific jurisdiction, and they typically are a large part of the team that are committing in various different respects, that&#8217;s important, but probably something that many people would not have thought about.</p>\n\n\n\n<p class="wp-block-paragraph">Now, in terms of these releases then, is the idea, well, I&#8217;ll backpedal a little bit. It occurred to me that quite a lot of the people who may be involved in releases are the very kind of people who would find themselves also at some of these flagship events. Now, obviously it&#8217;s not going to be 100%, maybe it&#8217;s 25% of the people who are release leads and part of the teams that are committing here, there, and everywhere.</p>\n\n\n\n<p class="wp-block-paragraph">I was worried that there&#8217;d be people on airplanes, people trying to land and orientate themselves in the country that they&#8217;ve landed in in the same period of time when they would&#8217;ve been heads down, in their office, in their study, figuring out the bits that might be broken with the upcoming release. Is that a thing? Is that part of the jigsaw puzzle of this?</p>\n\n\n\n<p class="wp-block-paragraph">[00:12:32] <strong>Jonathan Desrosiers:</strong> It definitely is, yeah. With any release, there&#8217;s no time of the day where everyone on the planet is available to work on something, right? And so another part of this is that, in a way it forces us to have a major release in different geographic areas so that everywhere on the globe there&#8217;s a WordPress release that they may be able to participate in, right?</p>\n\n\n\n<p class="wp-block-paragraph">And so, likewise with travel, right? So when we assemble a release squad, we have to think, okay, it&#8217;s based in, for example, this one was planned to be released at WordCamp Asia in India. So we want to make sure we have a mix of people that are in different areas of the world. And not just so that there&#8217;s always people around to respond to things throughout the entire cycle, but we also want to have people that are present and not present at the event that are participating. And maybe the wifi is completely unusable or maybe something happens, right? So it&#8217;s good to have people that are there and not.</p>\n\n\n\n<p class="wp-block-paragraph">And that was part of the announcement too, is that we tried to underscore the point that it would be great if everybody could go to WordCamp Asia, but traveling is not a requirement to participate in the release at all. And that&#8217;s a good thing, because it&#8217;s good to have people in multiple areas, multiple time zones.</p>\n\n\n\n<p class="wp-block-paragraph">With WordCamp Asia, once contributor day ends, it&#8217;s the beginning of the US daytime, right? And so those contributors can sign off and there&#8217;s people around to help carry that torch and continue on if there&#8217;s any follow-up issues or anything that needs to be investigated.</p>\n\n\n\n<p class="wp-block-paragraph">And so, yeah, that&#8217;s also a consideration is how, I guess we can call it global coverage, right? Like, how can we ensure we have global coverage so that there are people with the right skill sets, and right availability, and right knowledge, to be able to take on certain tasks or responsibilities or perform investigations, whatever may need to be done as part of that release process.</p>\n\n\n\n<p class="wp-block-paragraph">[00:14:26] <strong>Nathan Wrigley:</strong> I, like you, am really in the weeds of the WordPress project. I obsess about it in a way that&#8217;s probably not all that healthy. I&#8217;m very well aware of when the next release is coming up. I&#8217;m usually fairly aware of what is going to be in that release. But I imagine most people using WordPress, it&#8217;s probably a bit of a surprise. You know, they open up WordPress one day and either it has updated. If it&#8217;s a point release, probably it&#8217;s a more manual thing, if it&#8217;s a major release, I should say, but if it&#8217;s a more minor release, maybe things have updated in the background during the course of the night and what have you.</p>\n\n\n\n<p class="wp-block-paragraph">But I&#8217;m thinking of TV series now. So when a successful TV series has a new season, there&#8217;s all this fanfare and buildup and you know it&#8217;s coming. You see the commercials, you see the adverts. And the moment that TV series comes around, you are excited, you&#8217;re ready to go. And I remember back in the day, this is going back a long time, when Firefox would make a release, they sort of did this thing like, I don&#8217;t know, every 18 months or something like that. Not like now where it&#8217;s every couple of hours it seems, that browsers update themselves.</p>\n\n\n\n<p class="wp-block-paragraph">But when it went to, I don&#8217;t know, 3.6 or something like that, there was this big fanfare, this big moment. Everybody took stock and what have you. And are you trying to encourage a bit of that? Are you trying to create a bit of razzmatazz and drama and intrigue and awareness and all of that around the release, and make it feel like an important thing, which with the best will in the world, it kind of has not been more recently? Most people, it just updates. There&#8217;s no fanfare whatsoever. But we can leverage it to make it important, significant, fun, interesting.</p>\n\n\n\n<p class="wp-block-paragraph">[00:16:04] <strong>Jonathan Desrosiers:</strong> Yes and no, right? Like, we want to celebrate the community and the work we&#8217;re doing now. I actually would love it if we could get to a point where we&#8217;re releasing every, I don&#8217;t know, every week or every month even, right? Not have to wait every three or four months. There&#8217;s some value in having that penultimate moment, right? Of, we&#8217;ve worked for three months on this. But there&#8217;s also aspects of the world where we expect things faster and more instant and waiting for the patch that you submit in January to be released in April is not really, like maybe you lose interest in contributing in that time, right? So there&#8217;s many different things like that.</p>\n\n\n\n<p class="wp-block-paragraph">Some things that you mentioned really resonated with me as far as awareness of what&#8217;s coming or like what&#8217;s been done. In a way, the fact that users are not so aware of what&#8217;s being added or what their site has updated to, it&#8217;s a sign of the success of auto updates and how seamless those are.</p>\n\n\n\n<p class="wp-block-paragraph">Because for a little while I&#8217;ve been considering, when you update WordPress manually, you&#8217;re redirected into the about page in the dashboard, right? And every release, there&#8217;s a new about page that&#8217;s designed, it works hand in hand with, we call them the micro sites, which is like a wordpress.org&#8217;s landing page that showcases the release. And it just explains all the features that have been added.</p>\n\n\n\n<p class="wp-block-paragraph">But you only see that if you either go to the about page manually or you manually click update when you&#8217;re in the dashboard. And a site might have many administrators that only the person that actually updates will see it. And so I&#8217;ve been thinking about ways that we can make users more aware that their site is updated. Or maybe that&#8217;s not the important part, but maybe it&#8217;s just the important part to make them aware of the new features that are available to them, right?</p>\n\n\n\n<p class="wp-block-paragraph">Maybe we put some type of a widget on the dashboard where we link off to a Learn WordPress page that teaches you about how to use the Notes feature that got added. The other thing too is you mentioned about the TV shows advertise when they&#8217;re coming up, right? Maybe we need to do a better job of advertising what&#8217;s coming up and encouraging people to opt in early and test.</p>\n\n\n\n<p class="wp-block-paragraph">And in a way a more rapid release cycle leads to that because many of the browsers have different feature flags and they build features out in different branches, and you can actually opt into testing a specific feature and that would get turned on, but maybe not all the other things that they&#8217;re working on until it&#8217;s ready.</p>\n\n\n\n<p class="wp-block-paragraph">And so maybe we need different ways for people to get involved testing, or trying things out earlier to understand what&#8217;s coming, but also to give us valuable feedback, how it works on their site, what breaks, what it doesn&#8217;t interact with. All of that is very valuable feedback, and we should always be striving to get more testers and more awareness around what&#8217;s coming because it creates new feedback loops that are valuable for different reasons.</p>\n\n\n\n<p class="wp-block-paragraph">[00:18:58] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s kind of interesting, and what I&#8217;m about to say, I am sure that a significant proportion of the listeners to this podcast will say, no, Nathan, we don&#8217;t want this. But here&#8217;s a proposal then. Here&#8217;s an idea. And again, I&#8217;m going to hark back to the TV series.</p>\n\n\n\n<p class="wp-block-paragraph">The TV series, typically when they&#8217;ve started advertising between other television programs, that TV series has been made, the footage has been shot, the graphics have been done. It&#8217;s basically ready to roll. And then they parcel all that up and then they release little snippets of what&#8217;s coming so that you can prepare yourself and get excited.</p>\n\n\n\n<p class="wp-block-paragraph">I kind of wondered if something like that in the dashboard, akin to the about us page, but in the run up to the release. So all the graphics have been made. We know basically what&#8217;s going to drop in this release. Now it may get tweaked here and there at the edges, but we know what&#8217;s coming. I&#8217;ve always thought that would be a really nice idea.</p>\n\n\n\n<p class="wp-block-paragraph">I would love to see that. And I realise a proportion of people would think, no, we really don&#8217;t want that. But I think that&#8217;s a perfect opportunity to get people drawn into, oh, this is coming. Collaborative editing, that&#8217;s about to happen is it? Gosh, that&#8217;s really interesting.</p>\n\n\n\n<p class="wp-block-paragraph">And then this call to action could be dropped in, but we need some testing around the edges of it. We&#8217;ve got the bare bones of it, but we need some more eyeballs on it and what have you. So that proactive demonstration of what&#8217;s going to happen rather than the reactive, your site has been updated, here&#8217;s what there is, which is already there. This is more of a here&#8217;s what&#8217;s coming, get excited, get involved, yada yada.</p>\n\n\n\n<p class="wp-block-paragraph">[00:20:29] <strong>Jonathan Desrosiers:</strong> In some ways the feature branch model that I described lends to that, right? Because then it&#8217;s not, here comes this feature and then, oh, actually we left it out of this release, right? It&#8217;s its own thing that&#8217;s being worked on. And then when it&#8217;s released, it&#8217;s released, and it&#8217;s here. But it doesn&#8217;t make it any less, any worse off than other things that are shipping in the release, right? Because it&#8217;s its own thing, and it&#8217;s its own, it has its own criteria to be ready, in a state that we&#8217;re comfortable with shipping it and supporting it forever because of backwards compatibility.</p>\n\n\n\n<p class="wp-block-paragraph">And so yeah, I think that what you&#8217;re describing is essentially what I was describing, a little bit more detail. And there&#8217;s of course a lot of nuance there around how often do we do that? We have a lot of parts of the release process that need to be automated before we can even consider that. The different parts of the block editor are, many of it is managed as packages, NPM packages. And so a lot of those are so interconnected, it&#8217;s a little difficult to release just one feature because they&#8217;re all being updated at the same time.</p>\n\n\n\n<p class="wp-block-paragraph">And so like there&#8217;s some architectural things to think about around that. Like, how do we compartmentalize things better to be able to do that? Make sure we don&#8217;t accidentally include something that&#8217;s not ready but when we intended to include a certain feature. There&#8217;s a lot to unpack there and I don&#8217;t know that we&#8217;ll ever get there just because of the sheer size of the project and how, backwards compatibility, how long we&#8217;ve been around.</p>\n\n\n\n<p class="wp-block-paragraph">But I think that training users that auto updates are important to have enabled that are quality, you know, not shipping things that break people&#8217;s sites as much as possible, even though it&#8217;s unavoidable because of how flexible WordPress is.</p>\n\n\n\n<p class="wp-block-paragraph">After 6.9 came out, I was looking into some of the data because I had this gut feeling that 6.9 was being updated to, slower than other releases. And so for a little while I was looking at that. And after about a month, I was like, okay, this is just a hunch. Let me go and actually look at the data around this.</p>\n\n\n\n<p class="wp-block-paragraph">And so what I noticed was actually the opposite. When I looked at, I created 5% thresholds for the percentage of total WordPress sites. And when I looked at the data, I realised that for the last 10 releases, let&#8217;s see here. So every major version of the last six to eight releases has passed 35% of all WordPress sites in two days or less. And also every one of these columns as far as percentages is increasing.</p>\n\n\n\n<p class="wp-block-paragraph">And so WordPress 6.9 reached the 50% threshold of all WordPress sites in 10 days, and that&#8217;s four days faster than 6.8, which was the next fastest. And currently we&#8217;re approaching 65% threshold of all WordPress sites. And only six other releases have done that so far. All of them are the most recent ones, except for 4.9, which we all know had a waiting period for Gutenberg. And the only release the past 70% was 6.8.</p>\n\n\n\n<p class="wp-block-paragraph">And so I&#8217;m interested to see how this trend continues because it&#8217;s showing an acceleration of adoption for each new major version of WordPress. They&#8217;re getting installed faster, by more people. It&#8217;s a sign that we&#8217;re shipping stable software. People are more confident. People are opting into auto updates for major versions. And in general, it&#8217;s just a quality sign that we&#8217;re doing something right here. And so how can we lean into that more?</p>\n\n\n\n<p class="wp-block-paragraph">[00:23:52] <strong>Nathan Wrigley:</strong> Okay, let&#8217;s pivot a little bit. Let&#8217;s sort of bind community, we did touch on this a minute ago, but let&#8217;s spend a little bit of time binding the community to these kind of things because right at the start you mentioned that really the community is the underpinnings of your interest in the WordPress space. The code is obviously tremendously important, but without the community there is no code basically.</p>\n\n\n\n<p class="wp-block-paragraph">And so we&#8217;ve got these events. We&#8217;re trying to create interest around the WordCamps and the releases at the same time. But just looking back over the last period of time, let&#8217;s go for year, two years, something like that. I don&#8217;t know what your spidey sense is telling you, but my spidey sense is telling me that that community portion, it&#8217;s sort of slowly but surely, it feels like it&#8217;s withering away slightly.</p>\n\n\n\n<p class="wp-block-paragraph">I&#8217;m not really picking up on like this angry mob of people who are stamping their feet and shouting, I don&#8217;t want anything to do with the WordPress community and then disappearing. I mean maybe there&#8217;s a few of those, probably, somewhere. But I don&#8217;t get a sense of that. I just get this sense of sort of, somebody&#8217;s pulled the plug out of a bathtub and it&#8217;s slowly sort of draining away.</p>\n\n\n\n<p class="wp-block-paragraph">Attendance down at WordCamps. Meetups struggling to sort of get the numbers that they had several years ago. And so it would feel like at the moment, you would have to be watching the news fairly closely, especially right now. So at the beginning of February, 2026 is when we&#8217;re recording this. There does seem to be a push from the senior leadership to make WordPress Meetups and things like that, a much more central part.</p>\n\n\n\n<p class="wp-block-paragraph">And then there&#8217;s this whole broad spectrum of educational initiatives as well going on. So we&#8217;ve got WP Campus Connect, we&#8217;ve got the Credits Program and a whole smorgasbord of other things which is happening.</p>\n\n\n\n<p class="wp-block-paragraph">So there&#8217;s no question there, really, what I&#8217;m just trying to do is give you the opportunity to bind the two things, the WordPress community and the software, and really just talk about whether you&#8217;ve noticed the same thing as me, where there&#8217;s this slow, withering of the community. And maybe this is a part of just sort of getting it all back together, making events like this a bit more fun and interesting.</p>\n\n\n\n<p class="wp-block-paragraph">[00:26:02] <strong>Jonathan Desrosiers:</strong> Yeah. I think there&#8217;s a few things there to call out. The first observation I&#8217;ve had over the last year is there&#8217;s a palpable excitement to build with WordPress again. I&#8217;m noticing there&#8217;s a renewed enthusiasm. People, they want to move on from certain things, and they want to get back to building experiences and tools and things on the WordPress platform.</p>\n\n\n\n<p class="wp-block-paragraph">But there&#8217;s also, I think we&#8217;re dealing with some, in some ways, a long tail COVID effect, right? There was obviously, you know, a lack of in-person events for a while, and during that time a lot of the people who were keeping Meetups alive and WordCamps alive, they moved on, or burnt out, and chose not to return after. And so there was a break in that pipeline of, usually there&#8217;s a lead doing that and there&#8217;s other people learning under them, and then they move up and take over. And that was totally disrupted and I think that we&#8217;re still trying to rebuild that.</p>\n\n\n\n<p class="wp-block-paragraph">I think that it manifests differently in different areas too. So for example, the APAC WordCamp community is very strong and they have lots of WordCamps. But in the United States, there was one WordCamp that wasn&#8217;t WordCamp US last year, I think, Montclair. And I lead the Boston WordPress Meetup and so finding speakers is difficult. Getting people to come out is difficult as well. And I think those are partially just larger societal shifts where it&#8217;s harder to get people to come out to certain things. And we just have different preferences as far as how we consume information or learn.</p>\n\n\n\n<p class="wp-block-paragraph">But I&#8217;m still not sure why the difference in the geographical areas, and I think it may have to do more with, APAC is a more emerging market when it comes to WordPress, right? Like their community, especially in certain areas has been growing and is much newer than it is in the US. And so I think that they&#8217;re growing their communities for the first time in many ways, right? But in the US it&#8217;s the second or third or fourth time that we&#8217;re growing those communities or revitalising those communities. And the form that that needs to take, I think is a little different. And I&#8217;m not clear on what the holdup is there.</p>\n\n\n\n<p class="wp-block-paragraph">But I do know that a big factor of that is to get new people involved with WordPress and interested in WordPress, and that&#8217;s why some of the priorities that Mary Hubbard published, and one of them in particular is education and awareness and all of those different things that work together in the form of the WP Credits program, mentorship programs. There&#8217;s been the contributor mentorship programs that happen every few quarters in WordPress over the last few years.</p>\n\n\n\n<p class="wp-block-paragraph">And we&#8217;ve seen some really great contributors who were mentored in that program, and then the next time the program happened, they mentored, and then they became a team lead, and then they served on release squads. And so we&#8217;ve seen some really great contributed journeys through those paths.</p>\n\n\n\n<p class="wp-block-paragraph">[00:28:53] <strong>Nathan Wrigley:</strong> I&#8217;ll just sort of run through with you the kind of things that I&#8217;ve noticed in my part of the world. So I think COVID is an enormous part of it. It upended so many ordinary things in life. So, as an example, you know, people obviously, they ceased going out, and then that pattern of not going out became habituated. People didn&#8217;t go out because that&#8217;s not what you do.</p>\n\n\n\n<p class="wp-block-paragraph">And in the UK we have this institution called the pub, which I&#8217;m sure you&#8217;ve heard of. And it used to be that prior to COVID, the pub was the real centerpiece of many communities. You know, towns, suburbs, what have you. Everybody would coalesce around the pub and that was very important. Since the pandemic, a lot of those institutions, they don&#8217;t really function in that way anymore. You know, there isn&#8217;t the throughput, there isn&#8217;t the footfall and so they go out of business.</p>\n\n\n\n<p class="wp-block-paragraph">And the same, I presume is true in the WordPress space. You know, we&#8217;re trying to encourage people to get up, leave their home, spend money on transportation. Obviously there&#8217;s the time cost, the sunk cost of time and what have you as well. It&#8217;s difficult, but it makes me more sanguine that it&#8217;s not just like, it&#8217;s not just a WordPress thing, you know, it&#8217;s the whole of society.</p>\n\n\n\n<p class="wp-block-paragraph">But like you said, I get the feeling that the WordPress community has begun to address it. And the way it&#8217;s being addressed is through these educational initiatives. Trying to get a throughput of younger talent. So get them at the school age, get them at the university age, and then hopefully they will have an interest. They&#8217;ll get a flavor of what it means to be involved in these Meetups and things like that and hopefully take those on.</p>\n\n\n\n<p class="wp-block-paragraph">It&#8217;s a laudable goal. I hope that it has the capacity to transfer. You know, so in a decade&#8217;s time we can look back and say, look what happened. This young blood emerged. I think it&#8217;s yet to be seen. I think certainly in the area, the locale where I am, the United Kingdom, we don&#8217;t see evidence of that yet. Maybe in the US that would also mirror.</p>\n\n\n\n<p class="wp-block-paragraph">But from everything that I&#8217;ve learned and the people that I&#8217;ve talked to for this podcast and events in Asia and places like that, that seems to be a really different picture. There seems to be a real thirst for solutions like WordPress. Because there&#8217;s a direct kind of career path there. You know, you can pick up a free piece of open source software, crack open a laptop and get going and start to sell your services far and wide. And so again, there&#8217;s no question there, just observations that I hope these initiatives bear fruit. But it&#8217;ll be interesting to see. Only time will tell.</p>\n\n\n\n<p class="wp-block-paragraph">[00:31:16] <strong>Jonathan Desrosiers:</strong> I think at the root of what we&#8217;re dealing with is that people are motivated by what they see as valuable, right? If they&#8217;re not going out to events, so they&#8217;re not engaging with the community, they don&#8217;t recognise or feel that it&#8217;s valuable to them in some way. And so we&#8217;re having to reprove why communities are valuable, why open source is valuable, why you should care.</p>\n\n\n\n<p class="wp-block-paragraph">And then the other aspect of it is, you know, overall project sustainability. We can&#8217;t just keep getting older. We need to have a balance of new, younger people that get involved as well.</p>\n\n\n\n<p class="wp-block-paragraph">And so one way to lean into getting younger is obviously, like you said, to approach people at schooling age, right? Or university, and teach them about open source. Show them how to contribute, how to be a part of a community, and why it&#8217;s valuable. But we have to be really careful because we need to be prepared to, I&#8217;ve written in the past that we need to be prepared to activate these contributors, right?</p>\n\n\n\n<p class="wp-block-paragraph">So it&#8217;s one thing to make them aware of this, but it&#8217;s another thing to make sure they&#8217;re properly supported and we give them pathways to grow. We give them clear criteria to be successful, clear projects to work on, so they understand what they&#8217;re doing and what they&#8217;re trying to accomplish.</p>\n\n\n\n<p class="wp-block-paragraph">And I think that this is one thing that is also a benefit of having the releases coincide with these major events because new people are getting together already, so why not use that opportunity?</p>\n\n\n\n<p class="wp-block-paragraph">One of the goals that every table lead and every organiser of a Contributor Day has is to ensure as many contributors see, realise their work over the finish line. And so on the Core team that&#8217;s a patch that someone tests gets committed, or a patch someone writes gets committed to WordPress, right? How can we make that more valuable, where it&#8217;s not just ending when they leave Contributor Day?</p>\n\n\n\n<p class="wp-block-paragraph">And so I&#8217;ve been thinking about all the different logistics and helping to coordinate with the WordCamp Asia team and the 7.0 release team to make sure we&#8217;re prepared for that final day. And one of the things I&#8217;ve been thinking about is the release process itself. One of the best, lowest friction ways to get involved with WordPress in the actual release process. And you don&#8217;t need any experience contributing to really take part in it. And that&#8217;s when we get to a point where we say, okay, here&#8217;s the zip file of what we think we&#8217;re going to ship, go test it.</p>\n\n\n\n<p class="wp-block-paragraph">And so people will take it, and they install it on their server and they say which version of PHP they&#8217;re using, and how they installed it and what they did and, you know, it worked. And the majority of that though is just looking for problems. And when problems don&#8217;t come up, we just don&#8217;t do anything with all the information that people are dropping, right? And there might be 50 people at a major release. We call them parties, but at the release parties that are dropping information. And again, if there&#8217;s no red flags, that information just largely goes away.</p>\n\n\n\n<p class="wp-block-paragraph">But, how can we rethink that and make that effort more meaningful, and also create a pathway for them to continue contributing in some way past that moment? And having everybody in person is a great way to have pilot programs for different approaches, because there can be someone that briefs a set of contributors on what we&#8217;re going to try this time, here&#8217;s what we want to do, give us feedback on how you felt it went. Everybody that&#8217;s involved in the squad and doing the release can say, oh yeah, that actually was really helpful and better than what we do before.</p>\n\n\n\n<p class="wp-block-paragraph">And these newer individuals that are learning also have fresh perspective. And so having them participate in these, I guess I&#8217;ll call them experiments of such, but just these processes and things that we are considering, it helps get that fresh opinion and perspective on why things are working and why things aren&#8217;t and helps us just improve.</p>\n\n\n\n<p class="wp-block-paragraph">[00:35:04] <strong>Nathan Wrigley:</strong> I&#8217;ve got three children and they&#8217;re all of a certain age now, they&#8217;re certainly no longer small. You know, they&#8217;re basically adults. And it&#8217;s really fascinating looking at the kind of things that engage them. I think they&#8217;ve just grown up in a different era. The diet of the kind of things that excite them is very different to the kind of things that excited somebody of my generation, just because, you know, they&#8217;ve had the whole world in their pocket ever since they were born.</p>\n\n\n\n<p class="wp-block-paragraph">And having that dialogue with the next generation, and trying to figure out what it is that they want and that they desire. And even things like open source. So when, I was already an adult before the internet began to be put into everybody&#8217;s homes, and people started to own personal computers and things like that. And so I was ready to receive that message of open source right at the start. And it became really obvious to me, oh, that&#8217;s a really clever way of making software.</p>\n\n\n\n<p class="wp-block-paragraph">But now of course we&#8217;ve got this landscape of closed platforms. Everything&#8217;s free at the point of use, but everything&#8217;s not free in any way, shape, or form. You can think of the siloed platforms that I&#8217;m talking about. My children have been raised with those and so just even making the argument about open source is hard enough.</p>\n\n\n\n<p class="wp-block-paragraph">So I think what I&#8217;m really advocating for is, obviously we&#8217;ve got to shepherd these people in, but at the same time, I think we have to be willing to let go of a lot of the things that we think the project is. We think the Meetup should contain. We think the WordCamp should maintain. Because at the end of the day, we&#8217;re competing for eyeballs and if we don&#8217;t make it, I&#8217;m going to use the word exciting, if we don&#8217;t make it exciting, they&#8217;re just not going to show up.</p>\n\n\n\n<p class="wp-block-paragraph">And I feel that&#8217;s a piece of the next five, six years, trying to figure out what excites these people. Because unless we do excite them, I fear the Meetups are going to be empty and there&#8217;ll be a certain throughput from the WordPress initiatives, Campus Connect and what have you. But we need to make these things exciting, interesting, innovative, fun. But I don&#8217;t have an answer to that.</p>\n\n\n\n<p class="wp-block-paragraph">[00:36:59] <strong>Jonathan Desrosiers:</strong> Yeah, you touched on something interesting that I&#8217;ve been thinking about quite a bit. I gave a talk last year about how to implement AI into open source communities while maintaining what makes them great in the first place, which is the human element, right? The community aspects of it.</p>\n\n\n\n<p class="wp-block-paragraph">And so I&#8217;ve been thinking a lot about just AI and how it&#8217;s affecting us. And there&#8217;s a few things that I&#8217;m really excited about with AI and those are empowerment and learning. And so you can have an AI model that digests massive amounts of information and summarises it in the specific way that you learn best, right?</p>\n\n\n\n<p class="wp-block-paragraph">And likewise, I&#8217;m noticing that people feel more empowered to try things themselves because they have more of an ability to distill a lot of information down into something that&#8217;s digestible, right?</p>\n\n\n\n<p class="wp-block-paragraph">And so I feel that the tension between those two areas of closed and open is growing. Because when I was growing up, computers were just starting to be less than the size of a car, right? People were starting to have them in their house. But they were still at a point where, the computer went bad, you took it apart and fixed it. You didn&#8217;t trade it in for a new one, right?</p>\n\n\n\n<p class="wp-block-paragraph">And so I feel like my generation, there was a level of, we had the tools, but we had to go out and build the things we needed ourselves in some ways, and experiment. And then there&#8217;s been the generations between that and now where they pretty much had everything that they needed.</p>\n\n\n\n<p class="wp-block-paragraph">But AI is changing what we need, or what we want, and what ways we want it. And so now there&#8217;s a new found need to build again in some ways. And in some ways it&#8217;s kind of a circle, right? Because it&#8217;s, the AI is making it easier to build, but it&#8217;s also making you more aware you have to build. It&#8217;s kind of like building against itself in certain ways.</p>\n\n\n\n<p class="wp-block-paragraph">But I&#8217;m finding that there&#8217;s more of a willingness to do things on your own, try to tackle something you would typically need to hire a professional to do in the past. You know in many ways we need to lean into that because then that gets people excited. Oh, WordPress, I could use WordPress to build this, or I could use just the WordPress for just the database part of it and the REST API and have some type of application on it because it scales well and it caches or whatever it may be.</p>\n\n\n\n<p class="wp-block-paragraph">But I feel like people are starting to scoff at the walled gardens a little bit more, and I&#8217;m seeing that there&#8217;s a resurgence in things like RSS. I&#8217;m seeing new RSS readers are popping up. People are leaning towards the Fediverse. People are blogging more, having their own website instead of just their business on Facebook, right? Because that can get taken away.</p>\n\n\n\n<p class="wp-block-paragraph">We saw with Twitter how they just chose to close their platform. And embeds no longer work in WordPress because they shut down oEmbeds. And I feel like it changes every month, but there&#8217;s times where you have to log in to see a post, or you can&#8217;t see a post, or you can see one post and then you can&#8217;t see any more that&#8217;s shared externally. Yeah, so it gives you more control.</p>\n\n\n\n<p class="wp-block-paragraph">[00:40:02] <strong>Nathan Wrigley:</strong> Yeah, I think that&#8217;s really interesting. And I also noticed that swing. Obviously, I don&#8217;t have any broader data. I can only point to the things in my life, the little intuitions that I&#8217;m gaining. But I see the same thing. I see an interest in AI, so we&#8217;ll just put that to one side for a moment. But in terms of the closed platforms, I do see that the people that I know who are significantly younger than me, they have intuitions around that, and they&#8217;ve kind of figured out for themselves that this is not great. It seems to be a vehicle to serve me ads, and I wonder what the incentive is for the stuff that I&#8217;m seeing, and maybe it&#8217;s kind of pushing me off in one direction politically and all of that.</p>\n\n\n\n<p class="wp-block-paragraph">And yeah, this resurgence of RSS, of the blog. I know it&#8217;s hard to talk about, but it&#8217;s almost like we&#8217;re doing some sort of archaeology in the internet space. We&#8217;ve gone back to something older. We kind of dug up the relics from the past and we found that they&#8217;re still usable. They&#8217;re still there.</p>\n\n\n\n<p class="wp-block-paragraph">It&#8217;ll be so interesting. But I think if it was just the RSS and it was just the open nature of things, I think that&#8217;s going to be a hard sell. But throw AI into the mix, this capacity for somebody with very little relationship with writing code who can get something credible out. Now, it may not be robust, it may have security problems here and there. The accessibility may be something that needs to be addressed and what have you. But who can argue with the excitement of it.</p>\n\n\n\n<p class="wp-block-paragraph">You know, you tell a computer to make a colourful website that&#8217;s got rainbows and pictures of cats, and sure enough, two minutes later you have a website with rainbows and pictures of cats. And that wasn&#8217;t possible until just a couple of years ago. And so I think we&#8217;ve got the tools. I think there&#8217;s things that we can deploy. AI seems to be the primary one at the moment. Let&#8217;s hope that that continues to be sustainable.</p>\n\n\n\n<p class="wp-block-paragraph">But that&#8217;s interesting. That gives me some hope. And the way that you&#8217;ve encapsulated it, open source combined with things like AI. Trying to get Meetups back. Trying to combine it with educational initiatives. Trying to combine it with WordCamps and releases.</p>\n\n\n\n<p class="wp-block-paragraph">[00:41:52] <strong>Jonathan Desrosiers:</strong> You mentioned something that&#8217;s important there in that it&#8217;s very easy for someone to get something built that they need specifically, right? And I think that&#8217;s where we&#8217;re at right now where AI is, like I said, is empowering, but more on a personal level. Once you need to scale those things, that&#8217;s when it gets difficult.</p>\n\n\n\n<p class="wp-block-paragraph">And it&#8217;s a rollercoaster of, oh my God, there&#8217;s going to be no software. And then, oh, look at all this crappy software that AI built. We are always going to have a job. And then it&#8217;s like up and down all throughout time as new tools get released. And it definitely matches what I&#8217;m seeing is like the personal empowerment level, they could take that and run with it and build this really massive thing, or they could just build something that they just want, that does specifically what they want, that they haven&#8217;t found out there that it accomplishes.</p>\n\n\n\n<p class="wp-block-paragraph">And I think that another aspect of that is I&#8217;m noticing that a lot of people that you may not have thought would try things in the physical world on their own are more likely to do so as well. So maybe changing their faucet, or doing a landscaping project or something. I feel like we&#8217;ve had YouTube tutorials, right, has been a big thing for maybe a decade, right? But I feel like AI has unlocked a new level of empowerment where people feel more confident to try things because of the knowledge that&#8217;s available to them in different ways.</p>\n\n\n\n<p class="wp-block-paragraph">[00:43:09] <strong>Nathan Wrigley:</strong> The year 2026 is going to be punctuated by WordCamps. It&#8217;s going to be punctuated by WordPress releases. Hopefully we will start to see the needle move on educational initiatives, and maybe some younger people joining in with the community.</p>\n\n\n\n<p class="wp-block-paragraph">That has been a fascinating chat, Jonathan. I really appreciate that, getting your insight into what I think we both hope is going to happen in the WordPress project. That it will still be relevant in 10 years time, and that there&#8217;ll be children who are now, not old enough to be using computers, in a decade, they&#8217;ll be coming on podcasts like this, and hosting podcasts like this, and being involved in the community that we love so very much.</p>\n\n\n\n<p class="wp-block-paragraph">Where can we find you, Jonathan? If people want to talk to you and have a bit of a natter, where&#8217;s the best place to locate you?</p>\n\n\n\n<p class="wp-block-paragraph">[00:43:48] <strong>Jonathan Desrosiers:</strong> My website is just jonathandesrosiers.com. I&#8217;m desrosej pretty much everywhere on the internet. I try to keep it consistent and easy. And you can also, of course, find me in the wordpress.org Slack.</p>\n\n\n\n<p class="wp-block-paragraph">[00:44:01] <strong>Nathan Wrigley:</strong> I will link to all of those in the show notes. So if you go to the wptavern.com website, search for the episode with Jonathan Desrosiers, you&#8217;ll be able to find all of the links probably at the bottom underneath the transcript and the preamble. Go and have a look down there and hopefully we&#8217;ll be speaking soon. I&#8217;ll probably see you in Mumbai in a few weeks time. Take care, Jonathan.</p>\n\n\n\n<p class="wp-block-paragraph">[00:44:21] <strong>Jonathan Desrosiers:</strong> Thank you. Look forward to it, and hopefully I see your listeners there as well.</p>\n</div></details>\n\n\n\n<p class="wp-block-paragraph">On the podcast today we have <a href="https://profiles.wordpress.org/desrosj/">Jonathan Desrosiers</a>.</p>\n\n\n\n<p class="wp-block-paragraph">Jonathan has been involved with WordPress for almost two decades, both as a user and a contributor. He’s a principal software engineer at Bluehost, where his role sees him sponsored to work on WordPress through the Five for the Future program. Over the years, he’s become a Core committer, and has spent many hours thinking about how to enhance the contributor experience and make it easier for people to get involved in the project.</p>\n\n\n\n<p class="wp-block-paragraph">In this episode we discuss how WordPress releases might be made more impactful by synchronizing them with flagship community events like WordCamps and State of the Word. A recent experiment of combining a major release with a live event sparked some excitement, and Jonathan shares insights on the logistics behind such synchronized moments, the challenges posed by international holidays and regional scheduling, and the broader vision for connecting releases with community gatherings.</p>\n\n\n\n<p class="wp-block-paragraph">We also get into the changing landscape of the WordPress community, how it’s recovering from the effects of COVID, the struggle to rebuild local Meetups, and efforts (like mentorship and educational initiatives) to bring in new contributors, particularly from younger generations. Jonathan reflects on the importance of making release moments engaging and fun, akin to the anticipation of a new TV series or software launch, and the role of AI and open source in empowering a new wave of builders.</p>\n\n\n\n<p class="wp-block-paragraph">If you’re interested in how release cycles, community events, and contributor onboarding are evolving in WordPress, or what the future might hold for the platform and its community, this episode is for you.</p>\n\n\n\n<h2 class="wp-block-heading">Useful links</h2>\n\n\n\n<p class="wp-block-paragraph"><a href="https://jonathandesrosiers.com">Jonathan&#8217;s website</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://profiles.wordpress.org/desrosj/">Jonathan on WordPress.org</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://x.com/desrosj">Jonathan on X</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://www.bluehost.com">Bluehost</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://wordpress.org/five-for-the-future/">Five for the Future</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://wordpress.com/blog/2025/12/04/state-of-the-word-2025-recap/">State of the Word 2025 recap</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://events.wordpress.org/campusconnect/">WP Campus Connect</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://wordpress.org/education/credits/">WordPress Credits</a></p>\n\n\n\n<p class="wp-block-paragraph">Mary Hubbard on the importance of education &#8211; <a href="https://make.wordpress.org/project/2026/01/23/big-picture-goals-for-2026/">Big Picture Goals for 2026</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://en.wikipedia.org/wiki/Fediverse">Fediverse</a></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 25 Feb 2026 15:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Nathan Wrigley";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:16;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"Open Channels FM: AI Sidekick Features for WooCommerce Merchants";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650257";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:71:"https://openchannels.fm/ai-sidekick-features-for-woocommerce-merchants/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:235:"Katie Keith asks about an AI assistant for WooCommerce like Shopify\'s Sidekick. James LePage confirms upcoming features will simplify custom AI integration, enabling easier plugin installations and enhanced merchant management support.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 25 Feb 2026 12:32:05 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:17;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:45:"HeroPress: Finding autonomy through WordPress";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:56:"https://heropress.com/?post_type=heropress-essays&p=8405";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:142:"https://heropress.com/essays/finding-autonomy-through-wordpress/#utm_source=rss&utm_medium=rss&utm_campaign=finding-autonomy-through-wordpress";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:18380:"<img alt="Pull quote: WordPress helped me evolve from a designer and developer into a more complete professional. WordPress mi je pomogao da se od dizajnera i developera razvijem u cjelovitijeg profesionalca." class="attachment-large size-large wp-post-image" height="512" src="https://heropress.com/wp-content/uploads/3026/02/022426.webp" width="1024" /><p><a href="https://heropress.com/feed/#hrvatski" id="#hrvatski">Ovaj esej dostupan je i na hrvatskom jeziku.</a></p>\n\n\n\n<p><a href="https://heropress.com/feed/#deutsch">Dieses Essay ist auch auf Deutsch verfügbar.</a></p>\n\n\n\n<figure class="wp-block-audio"><audio controls="controls" src="https://heropress.com/wp-content/uploads/3026/02/english.mp3"></audio><figcaption class="wp-element-caption">Here is English audio of Edo&#8217;s essay, read in his own voice.</figcaption></figure>\n\n\n\n<p>I started working with WordPress in 2020. I joined a digital agency and was at the start of my professional career. I had freshly completed a developer bootcamp where we learned about web development concepts and the basics of JS, HTML and CSS. I was initially hired as a frontend developer, but soon expanded my role to UX design and WordPress.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-overcoming-prejudice"><strong>Overcoming prejudice</strong></h2>\n\n\n\n<p>Initially, I was hesitant about working with WordPress. In some developer circles, it was looked down upon. I thought someone might think less of me for using such a basic tool instead of doing the real thing, since coding was considered the “proper” way to build things.</p>\n\n\n\n<p>After some initial resistance, I managed to let go of my prejudice and started enjoying it. The process involved designing the website in Figma and then implementing it via WordPress. Although I like to write code, I always thought of myself as more of a visual person than a coder, so this felt quite satisfactory.</p>\n\n\n\n<p>In the Agency we worked mostly with Elementor, and even though there were some trade-offs when using it, I still remember how glad the benefits made me feel. I could implement scroll animations and various custom effects just by adjusting a couple of settings. It was great!</p>\n\n\n\n<h2 class="wp-block-heading" id="h-shift-in-perspective"><strong>Shift in perspective</strong></h2>\n\n\n\n<p>As time progressed and I became more fluent in WordPress, I stopped thinking only from a design and frontend perspective and started seeing the bigger picture. Besides getting familiar with SEO, I began to understand the relationship between design decisions, business goals, and real-world constraints.</p>\n\n\n\n<p>I also realized that I no longer had to wait for someone else to finish the project. Design didn’t end at handoff, and implementation didn’t end at developing the frontend. I could take a project from an initial idea to a finished, high-quality website all on my own. WordPress made that possible without requiring me to become a backend specialist.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-delivering-complete-value"><strong>Delivering complete value</strong></h2>\n\n\n\n<p>These insights changed my role more than any job title ever could and encouraged me to start freelancing. I took part in bigger, team-oriented WordPress projects, but I also worked on smaller ones where I was responsible for the whole process, from the initial “get-to-know-you” interview with the client to the final approval. I came to understand how design decisions influenced performance, how content structure shaped SEO, and how visual complexity affected load times and maintenance. </p>\n\n\n\n<p>As I gained more experience, the scope of my work expanded. I was no longer just a designer or developer. Over time, I started to understand the business side of projects as well. It became clearer how a website fits into a broader strategy, how it supports client goals, and how decisions influence long term value. WordPress allowed me to develop a more strategic mindset. It helped me move from purely operational work toward strategic thinking. That broader business perspective became just as important to me as the technical execution itself.</p>\n\n\n\n<p>The feeling of being able to provide a complete product to the client and own the entire process felt exciting because it satisfied my need for autonomy.</p>\n\n\n\n<p>First time I truly felt responsible for the entire outcome was while developing a full hotel website from start to finish. Publishing the site felt different. Since working in a team is a collaborative activity, there is always sharing of responsibility, giving each other support and feedback. This is why this felt different. It was only me. It was not a contribution. It was owning the project from start to finish. Seeing the site live, functional, and in real use made this shift clear. It felt exciting to be able to deliver the full outcome.</p>\n\n\n\n<p>Even if WordPress is not suitable for every use case and even if there are certain trade-offs, for someone like me, who wanted to feel autonomy and experience delivering a product from the initial idea to completion, WordPress was the right tool. It didn’t just teach me how to build a website or implement SEO. It taught me how to deliver real value to a client.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-conclusion"><strong>Conclusion</strong></h2>\n\n\n\n<p>If I had to summarize what WordPress changed in my life, it would be that it helped me become more autonomous. It allowed me to take responsibility for entire projects and deliver complete value to clients, from idea to finished product. </p>\n\n\n\n<p>It also exposed me to a much larger number of real-world projects, clients, and challenges. That volume of experience shaped my growth more than any single tool or role. More projects meant more conversations, more constraints and more responsibility. </p>\n\n\n\n<p>In that sense, WordPress wasn’t just a tool for me. It helped me evolve from a designer and developer into a more complete professional. Someone able to understand problems, deliver outcomes, and think beyond individual tasks.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<h1 class="wp-block-heading" id="hrvatski"><strong>Pronalaženje autonomije kroz WordPress</strong></h1>\n\n\n\n<figure class="wp-block-audio"><audio controls="controls" src="https://heropress.com/wp-content/uploads/3026/02/croatian.mp3"></audio><figcaption class="wp-element-caption">Ovdje je hrvatska audioverzija Edovog eseja, pročitana njegovim vlastitim glasom.<br /></figcaption></figure>\n\n\n\n<p>S WordPressom sam počeo raditi 2020. godine, na samom početku svoje profesionalne karijere. Pridružio sam se digitalnoj agenciji nakon što sam završio developerski bootcamp na kojem smo prošli osnove web razvoja te rad s JS-om, HTML-om i CSS-om. Isprva su me zaposlili kao frontend developera, ali se moja uloga ubrzo proširila na UX dizajn i WordPress.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-suocavanje-s-predrasudama"><strong>Suočavanje s predrasudama</strong></h2>\n\n\n\n<p>U početku sam bio skeptičan prema WordPressu. U nekim developerskim krugovima na njega se gledalo s visoka. Imao sam dojam da će netko pomisliti kako radim s lakšim alatom, umjesto da radim stvari “kako treba”, kroz čisti kod.</p>\n\n\n\n<p>Nakon početnog otpora, ta se percepcija promijenila. Počeo sam uživati u procesu. Prvo dizajn u Figmi, zatim implementacija kroz WordPress. Iako volim pisati kod, uvijek sam sebe doživljavao više kao vizualni tip nego kao klasičnog programera. Ovakav način rada mi je prirodno odgovarao.</p>\n\n\n\n<p>U agenciji smo najčešće koristili Elementor. Imao je svoja ograničenja, ali prednosti su mi bile važnije. Mogućnost da relativno brzo implementiram animacije na scroll, razne interakcije i custom efekte, bez kompleksnog kodiranja, bila mi je konkretna vrijednost.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-promjena-perspektive"><strong>Promjena perspektive</strong></h2>\n\n\n\n<p>Kako sam postajao sigurniji u WordPressu, prestao sam razmišljati isključivo iz dizajnerske ili frontend perspektive. Počeo sam sagledavati širu sliku. Postalo mi je jasnije kako su dizajnerske odluke povezane s poslovnim ciljevima i potencijalnim ograničenjima koje svaki projekt nosi sa sobom.</p>\n\n\n\n<p>Također sam shvatio da više ne moram čekati druge da završe svoj dio posla. Dizajn nije završavao primopredajom, a implementacija nije stajala na frontendu. Mogao sam projekt iznijeti od početne ideje do potpuno gotove web stranice, bez da budem stručnjak za backend. WordPress mi je to omogućio.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-isporuka-cjelovite-vrijednosti"><strong>Isporuka cjelovite vrijednosti</strong></h2>\n\n\n\n<p>Ta promjena utjecala je na moju ulogu više nego bilo koja titula. Potaknula me da se krenem baviti freelancingom. Radio sam na većim timskim WordPress projektima, ali i na manjima gdje sam samostalno vodio cijeli proces. Od prvog razgovora s klijentom do finalnog odobrenja. Počeo sam razumijevati kako dizajnerske odluke utječu na performanse, kako struktura sadržaja oblikuje SEO i kako vizualna kompleksnost utječe na brzinu učitavanja i održavanje.</p>\n\n\n\n<p>Međutim, kako sam postajao iskusniji, širio se i opseg mog rada. Više nisam bio samo dizajner ili developer. S vremenom sam počeo razumijevati i poslovnu stranu projekata. Postalo mi je jasnije kako se web stranica uklapa u širu strategiju, kako podržava ciljeve klijenta i kako odluke utječu na dugoročnu vrijednost. WordPress mi je pomogao razviti strateški način razmišljanja. Pomaknuo sam se od operativnog izvršavanja zadataka prema razumijevanju šireg konteksta i donošenju odluka. Ta šira, poslovna perspektiva postala mi je jednako važna kao i sama tehnička izvedba.</p>\n\n\n\n<p>Prvi put sam stvarno osjetio punu odgovornost kada sam samostalno razvio kompletnu web stranicu za jedan hotel, od početka do lansiranja web-a u produkciju. Osjećaj kada je stranica napokon otišla online bio je drugačiji. U timu uvijek postoji dijeljenje odgovornosti, podrška i zajedničke revizije. Ovdje je sve bilo na meni. Nije to bila samo kontribucija, nego vlasništvo nad cijelim procesom. Vidjeti tu stranicu online, za mene je jasno označilo tu promjenu.</p>\n\n\n\n<p>Iako WordPress nije rješenje za svaki projekt i ima svoja ograničenja, meni je omogućio upravo ono što mi je tada bilo važno: autonomiju i mogućnost da isporučim cjelovit proizvod, od ideje do realizacije. Nije me samo naučio kako izraditi web stranicu ili optimizirati SEO, nego kako klijentu isporučiti stvarnu vrijednost.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-zakljucak"><strong>Zaključak</strong></h2>\n\n\n\n<p>Ako moram istaknuti jednu stvar koju je WordPress promijenio u mom profesionalnom razvoju, rekao bih da mi je omogućio veću autonomiju. Dao mi je prostor da preuzmem odgovornost za cijeli projekt i isporučim potpunu vrijednost, od inicijalne ideje do finalnog proizvoda.</p>\n\n\n\n<p>Uz to, otvorio mi je pristup većem broju stvarnih projekata, klijenata i izazova. Količina iskustva koju sam tako stekao oblikovala je moj rast više nego bilo koja pojedinačna uloga ili alat. Više projekata značilo je više različitih razgovora, ograničenja, odgovornosti i drugačijih prosudbi.</p>\n\n\n\n<p>U tom smislu, WordPress nije bio samo alat. Bio je to način rada koji mi je omogućio da izađem iz okvira dizajnera i developera te razvijem sposobnost razumijevanja problema, preuzimanja odgovornosti i razmišljanja šire od pojedinačnog zadatka.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<h1 class="wp-block-heading" id="deutsch"><strong>Autonomie durch WordPress finden</strong></h1>\n\n\n\n<figure class="wp-block-audio"><audio controls="controls" src="https://heropress.com/wp-content/uploads/3026/02/german.mp3"></audio><figcaption class="wp-element-caption">Hier ist die deutsche Audioaufnahme des Essays von Edo, gelesen mit seiner eigenen Stimme.</figcaption></figure>\n\n\n\n<p>Ich habe 2020 angefangen, mit WordPress zu arbeiten. Zu dieser Zeit stand ich am Anfang meiner beruflichen Karriere und trat einer Digitalagentur bei. Kurz zuvor hatte ich ein Developer-Bootcamp abgeschlossen, in dem wir Web-Grundlagen sowie die Basics von JS, HTML und CSS gelernt hatten. Ursprünglich wurde ich als Frontend Developer eingestellt, aber meine Rolle erweiterte sich schnell in Richtung UX Design und WordPress.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-vorurteile-uberwinden"><strong>Vorurteile überwinden</strong></h2>\n\n\n\n<p>Zu Beginn war ich unsicher, ob ich mit WordPress arbeiten wollte. In Teilen der Entwickler-Community wurde es nicht besonders ernst genommen. Ich hatte das Gefühl, man würde mich weniger ernst nehmen, wenn ich mit einem „einfachen“ Tool arbeite, statt alles klassisch zu programmieren, da Coding als der „richtige“ Weg galt.</p>\n\n\n\n<p>Anfangs habe ich mich dagegen gesträubt, mit WordPress zu arbeiten, aber mit der Zeit begann ich, die Arbeit damit zu genießen. Der Prozess bestand darin, Websites in Figma zu gestalten und anschließend mit WordPress umzusetzen. Obwohl ich gerne Code geschrieben habe, sah ich mich immer eher als visuellen Typ. Diese Arbeitsweise lag mir daher besonders.</p>\n\n\n\n<p>In der Agentur haben wir hauptsächlich mit Elementor gearbeitet. Natürlich gab es Nachteile, aber für mich überwogen die Vorteile. Scroll-Animationen und individuelle Effekte ließen sich durch wenige Einstellungen umsetzen. Das fand ich sehr überzeugend.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-perspektivwechsel"><strong>Perspektivwechsel</strong></h2>\n\n\n\n<p>Mit wachsender Erfahrung änderte sich mein Blickwinkel. Ich dachte nicht mehr nur aus Design- oder Frontend-Sicht, sondern begann, Zusammenhänge zu erkennen. Neben SEO verstand ich zunehmend, wie Designentscheidungen mit Geschäftszielen und realen Rahmenbedingungen verbunden sind.</p>\n\n\n\n<p>Mir wurde auch klar, dass ich nicht mehr auf andere warten musste, um das Projekt zu Ende zu bringen. Design endete nicht mit der Übergabe, und die Umsetzung nicht beim Frontend. Ich konnte ein Projekt von der ersten Idee bis zur fertigen Website eigenständig führen, ohne Backend-Spezialist zu sein. WordPress machte das möglich.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-ganzheitlichen-mehrwert-liefern"><strong>Ganzheitlichen Mehrwert liefern</strong></h2>\n\n\n\n<p>Diese Entwicklung beeinflusste meine Rolle stärker als jede offizielle Bezeichnung. Sie war auch der Impuls, als Freelancer zu starten. Ich war an größeren Teamprojekten beteiligt, übernahm aber auch kleinere Projekte, bei denen ich für den gesamten Prozess verantwortlich war – vom ersten Kennenlerngespräch bis zur finalen Freigabe.</p>\n\n\n\n<p>Ich verstand, wie Designentscheidungen die Performance beeinflussten, wie Inhaltsstrukturen sich auf SEO auswirkten und wie visuelle Komplexität Ladezeiten und Wartbarkeit beeinflusste.</p>\n\n\n\n<p>Mit wachsender Erfahrung erweiterte sich auch mein Aufgabenbereich. Ich war nicht mehr nur Designer oder Developer. Ich begann, die geschäftliche Seite von Projekten zu verstehen: wie sich eine Website in eine übergeordnete Strategie einfügt, wie sie Unternehmensziele unterstützt und wie Entscheidungen langfristigen Wert beeinflussen. WordPress hat mir geholfen, strategischer zu denken und mich von rein operativer Arbeit zu lösen. Diese geschäftliche Perspektive wurde für mich genauso wichtig wie die technische Umsetzung.</p>\n\n\n\n<p>Ein vollständiges Produkt liefern und den gesamten Prozess selbst tragen zu können, war für mich besonders wichtig, weil es meinem Bedürfnis nach Autonomie entsprach.</p>\n\n\n\n<p>Der Moment, in dem ich erstmals die komplette Website eines Hotels eigenständig von Anfang bis Ende entwickelte, markierte einen Wendepunkt. Die Veröffentlichung fühlte sich anders an. Ich arbeite gern im Team, da man dort Feedback erhält. Doch hier trug ich die volle Verantwortung. Es war kein Beitrag zu einem Projekt, sondern die vollständige Verantwortung für das Ergebnis. Die Website live zu sehen, machte diesen Schritt für mich sehr deutlich.</p>\n\n\n\n<p>Auch wenn WordPress nicht für jeden Anwendungsfall ideal ist und gewisse Kompromisse mit sich bringt, war es für mich das richtige Werkzeug. Ich habe dadurch nicht nur gelernt, wie man Websites baut oder SEO umsetzt, sondern auch, wie ich echten Mehrwert für Kunden schaffen kann.</p>\n\n\n\n<h2 class="wp-block-heading" id="h-fazit"><strong>Fazit</strong></h2>\n\n\n\n<p>Wenn ich zusammenfassen müsste, was WordPress in meiner beruflichen Entwicklung verändert hat, dann ist es vor allem die gewonnene Autonomie. Es gab mir die Möglichkeit, Projekte von der ersten Idee bis zum fertigen Produkt eigenständig umzusetzen und echten Mehrwert zu schaffen.</p>\n\n\n\n<p>Zudem arbeitete ich an einer größeren Zahl realer Projekte mit unterschiedlichen Kunden und Anforderungen. Diese Erfahrung war für meine Entwicklung wichtiger als jedes einzelne Tool oder jede Positionsbezeichnung. Mehr Projekte bedeuteten mehr Gespräche, mehr Rahmenbedingungen und mehr Entscheidungen.</p>\n\n\n\n<p>In diesem Sinne war WordPress für mich nicht nur ein Werkzeug. Es half mir, über die Rolle des Designers und Developers hinauszuwachsen, Probleme zu verstehen, Ergebnisse zu liefern und über einzelne Aufgaben hinauszudenken.</p>\n\n\n\n<div class="wp-block-group has-background is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-fc43baa9 wp-block-group-is-layout-flex" id="desktop">\n<h2 class="kt-adv-heading8405_30ba8f-7b wp-block-kadence-advancedheading" id="work-environment">Edo&#8217;s Work Environment</h2>\n\n\n\n<p>We asked Edo for a view into his development life and this is what he sent!</p>\n\n\n	<div class="hotspots-image-container">\n		<img alt="Edo&#8217;s Desk" class="hotspots-image skip-lazy" height="1536" src="https://heropress.com/wp-content/uploads/2026/02/edo-work-area.webp" width="2048" />\n	</div>\n\n\n\n\n<p class="has--font-size">HeroPress would like to thank <a href="https://wpdrawattention.com/">Draw Attention</a> for their donation of the plugin to make this interactive image!</p>\n</div>\n<p>The post <a href="https://heropress.com/essays/finding-autonomy-through-wordpress/">Finding autonomy through WordPress</a> appeared first on <a href="https://heropress.com">HeroPress</a>.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 25 Feb 2026 07:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Edo Begagić";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:18;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:85:"Open Channels FM: How Instant Access to Information Has Changed Patience and Learning";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=115203";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:92:"https://openchannels.fm/how-instant-access-to-information-has-changed-patience-and-learning/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:188:"A reflection on the internet\'s impact on patience and learning. It highlights how instant answers have reshaped our experiences, often sacrificing depth for speed in knowledge acquisition.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 24 Feb 2026 13:01:57 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:19;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"Open Channels FM: Start With Content, Even If the Plan Is Messy";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1492852";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:69:"https://openchannels.fm/start-with-content-even-if-the-plan-is-messy/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:90:"The worst thing you can do is wait until everything is perfect before publishing anything.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 23 Feb 2026 09:44:17 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:20;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:28:"Matt: Claude &amp;amp; Sonos";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151297";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:35:"https://ma.tt/2026/02/claude-sonos/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1795:"<p class="wp-block-paragraph">Tonight was one of my most surreal Claude Code Sundays. To make a long story short, I pointed Claude Code at my <a href="https://www.sonos.com/">Sonos</a> setup in Houston: &#8220;All 29 Sonos speakers were running on WiFi with SonosNet completely disabled. They had accumulated ~89 million dropped packets across the system. That packet loss is why groups kept falling apart &#8211; Sonos grouping requires tight sync between speakers, and the WiFi was too congested to deliver it.&#8221;</p>\n\n\n\n<p class="wp-block-paragraph">We had a wild rollercoaster where at one point it bricked several of my devices (green LED), got mixed up on some groupings being a home theater, and sent me all around the house plugging things in to ethernet or not. At one point, I was certain I&#8217;d have to redo everything from scratch. Then we came back and everything worked, I asked, &#8220;What song should we play to celebrate this accomplishment?&#8221;</p>\n\n\n\n<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">\n<p class="wp-block-paragraph">Ha &#8211; has to be &#8220;The Chain&#8221; by Fleetwood Mac. Seems fitting given we just spent the evening fixing one. Want me to queue it up on the Gym/Office?</p>\n</blockquote>\n\n\n\n<p class="wp-block-paragraph">It then failed horribly at trying to play that song, then, because it thought the speakers were re-meshing, it tried to play it on outdoor speakers, which would have surprised my neighbors at midnight. I ended up picking the song manually, and I must say it&#8217;s quite nice. I see why it&#8217;s easy to fall in love with these things, because the variable positive reinforcement slot machine cowboy hacking is honestly more fun than if it had just gotten it right on the first try.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 23 Feb 2026 07:58:57 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:21;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:96:"Gutenberg Times: Interactivity API, WordPress 7.0 Beta and Telex updates — Weekend Edition 358";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=44400";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:102:"https://gutenbergtimes.com/interactivity-api-wordpress-7-0-beta-and-telex-updates-weekend-edition-358/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:18691:"<p class="wp-block-paragraph">Greetings from snow-covered Munich — or at least it was when we left Friday for Salzburg, Austria, with a one-hour delay after our locomotive engineer got caught in the city&#8217;s snow-induced chaos. </p>\n\n\n\n<p class="wp-block-paragraph">Have a fabulous weekend! </p>\n\n\n\n<p class="wp-block-paragraph">Yours, <img alt="💕" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f495.png" style="height: 1em;" /><br /><em>Birgit</em></p>\n\n\n\n\n\n<h2 class="wp-block-heading" id="0-word-press-release-information">Developing Gutenberg and WordPress</h2>\n\n\n\n<p class="wp-block-paragraph">This week, <a href="https://wordpress.org/news/2026/02/wordpress-7-0-beta-1/"><strong>WordPress 7.0 Beta 1</strong></a> is ready for your testing on a staging or local site, please, not your live site. You can jump in via the <a href="https://wordpress.org/plugins/wordpress-beta-tester/">WordPress Beta Tester plugin,</a> a direct zip download, WP-CLI, or instantly through <a href="https://playground.wordpress.net/?php=8.3&amp;wp=beta&amp;networking=no&amp;language=&amp;multisite=no&amp;random=r8nny4q18x">WordPress Playground</a> in your browser. </p>\n\n\n\n<p class="wp-block-paragraph">The most important feature coming to WordPress 7.0 is real-time collaboration, when more than one person can edit a post or page. Even for a single-person blogger this might be helpful when the proofreading buddy and the photographer can also be involved in editing different parts of a post. </p>\n\n\n\n<p class="wp-block-paragraph">The final release is scheduled for April 9, 2026. Bugs go to the Alpha/Beta support forums or Trac — your testing genuinely shapes what ships. The release post also has an overview of the other features coming to WordPress 7.0, there are quite a lot. </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong><a href="https://github.com/WordPress/gutenberg/releases/tag/v22.6.0-rc.1">Gutenberg 22.6 RC1</a> </strong>is also available for testing. Once released it introduces a new Icon block, lightbox support for the Gallery block (a personal favorite of mine), and renames the Verse block to Poetry. Next to improvements to the Navigation overlay and block visibility controls, it also features a new approach to revisions with visual change tracking and block awareness. The final release is planned for February 25, 2026.</p>\n\n\n\n<div class="wp-block-group has-light-background-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">\n<p class="wp-block-paragraph"><img alt="🎙" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f399.png" style="height: 1em;" /> The latest episode is <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/">Gutenberg Changelog #127 – WordPress 7.0 Beta and Gutenberg 22.6</a> with special guest <strong>Jessica Lyschik</strong>, senior developer at Greyd</p>\n\n\n\n<figure class="wp-block-image size-full is-style-no-vertical-margin"><img alt="Jessica Lyschik and Birgit Pauli-Haack recording Gutenberg changelog episode number 127" class="wp-image-44548" height="184" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-27-at-12.47.56.png?resize=652%2C184&#038;ssl=1" width="652" /></figure>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-rich is-provider-pocket-casts wp-block-embed-pocket-casts"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div></div></div>\n\n\n\n<h2 class="wp-block-heading" id="0-p">Plugins, Themes, and Tools for #nocode site builders and owners</h2>\n\n\n\n<p class="wp-block-paragraph">Content for AI is a hot topic for news sites, especially since they rely on those ad views and sponsored posts, and AI is pulling snippets from their content. It’s a tough situation, and many sites are working hard to keep AI bots from crawling their pages. But here’s the thing: AI really loves quality, long-form content. If your site serves up unique, quality stuff for humans, then it&#8217;s also going to catch the attention of AI systems looking to help users with their questions. </p>\n\n\n\n<p class="wp-block-paragraph">If your site fits the bill, <strong>Maddy Osman</strong> has put together <a href="https://wordpress.com/blog/2026/02/16/ai-search-engine-optimization-wordpress/"><strong>9 Steps to Prepare Your WordPress Site for AI Search Engines</strong></a> as a practical guide for the era of ChatGPT and Google&#8217;s AI Mode. The good news: WordPress already has most of what AI systems need. You&#8217;ll learn to write answer-first content, use structured blocks, add schema markup, and manage your <code>robots.txt</code> — small, actionable tweaks that help your site surface in both traditional and AI-generated search results.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Jamie Marsland</strong> built a plugin for block theme to manage beautiful sticky header variations. He demos it in the video <strong><a href="https://www.youtube.com/watch?v=VcLu9sRg1U4">This Sticky Header Trick Makes WordPress Sites Look Incredible!</a></strong> If you are interested in the free plugin you get it on the <a href="https://www.pootlepress.com/sticky/">website</a>.</p>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div>\n\n<div class="ng-block-88c4abc3fe9e6a53 wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #fdfcea; border-radius: 12px;"><div class="ng-block-d3c22c5b810c8a19 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong> <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/" rel="noreferrer noopener" target="_blank">&#8220;Keeping up with Gutenberg—Index &#8211; Index 2025&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. </p></div></div></div></div>\n\n<div class="ng-block-a899c081eb54eb24 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p>The previous years are also available: <br /><strong><strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/">2020</a> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/">2021</a></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/">2022</a></strong></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023">2023</a></strong> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/"><strong>2024</strong></a></p></div></div></div></div></div><div class="ng-block-hs ng-block-hs-2" height="0" style="width: 0px;"></div></div><div><div class="ng-block-vs ng-block-vs-2" colspan="3" height="0" style="height: 0px;"></div></div></div></div>\n\n\n<h2 class="wp-block-heading" id="3-building-themes-for-fse-and-word-press">Building Blocks and Tools for the Block editor.</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Carolina Nymark</strong> published two companion lessons on her Full Site Editing resource site. The <strong><a href="https://fullsiteediting.com/lessons/block-bindings-api/">Block Bindings API guide</a> </strong>walks you through connecting dynamic data—post meta, custom sources, and more—to core blocks like paragraphs, images, and buttons, potentially saving you from building custom blocks altogether. In her <a href="https://fullsiteediting.com/lessons/block-hooks-api/"><strong>Block Hooks API lesson</strong></a>, she shows you how plugins can automatically insert blocks into templates and patterns using PHP filters, with practical examples including WooCommerce and context-aware placement.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">In the latest article on the WordPress Developer, I show you exactly <a href="https://developer.wordpress.org/news/2026/02/how-to-add-custom-entries-to-the-editor-preview-dropdown/"><strong>How to add custom entries to the editor Preview dropdown</strong></a>. Using the <code>PluginPreviewMenuItem</code> component from <code>@wordpress/editor</code>, you can extend the Preview menu with your own options — the tutorial walks you through building a &#8220;Social Card Preview&#8221; to show how to add an entry and serve up a modal for content. </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Paulo Carvajal</strong> dives deep into <a href="https://wp-block-editor.com/building-dynamic-lists-and-collections-with-data-wp-each/"><strong>Building Dynamic Lists and Collections with data-wp-each</strong></a> on WP Block Editor. The <code>data-wp-each</code> directive from the Interactivity API lets you build reactive lists — product catalogues, task lists, feeds — that update automatically when state changes, no manual DOM manipulation needed. You&#8217;ll learn how to coordinate PHP server-side rendering with JavaScript-derived state and implement advanced patterns like filtering, sorting, and pagination following WordPress best practices.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Ryan Welcher</strong> gave a talk at <em>WordCamp Sofia</em> titled <strong><a href="https://wordpress.tv/2026/02/14/from-static-to-dynamic-mastering-the-interactivity-api/">From Static to Dynamic: Mastering the Interactivity APIn the Interactivity API</a>.</strong> With the arrival of the <strong>I</strong>nteractivity API, WordPress offers a native, declarative way to add client-side behavior to blocks using directives like <code>data-wp-on–click</code>, <code>data-wp-bind</code>, and <code>data-wp-context</code>. Developers can define reactive behavior, state management, and side effects—all while staying in the WordPress stack. The talk&#8217;s recording just appeared on WordPressTV. It&#8217;s a well-rounded introduction to the Interactivity API with real-life examples.</p>\n\n\n\n<h2 class="wp-block-heading" id="ai-and-wordpress">AI and WordPress</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Semiha Kocer</strong> shares the latest <strong><a href="https://wordpress.com/blog/2026/02/19/february-telex-updates/">Telex updates</a> </strong>from WordPress.com&#8217;s AI-powered block creation tool, launched last August. The two headline features are </p>\n\n\n\n<ul class="wp-block-list">\n<li><strong>upload reference images</strong> — a Figma mockup, a screenshot, or even a napkin sketch — alongside your prompt to guide complex layouts.</li>\n\n\n\n<li><strong>download your block</strong>, edit it in your favorite code editor, and bring it back into Telex seamlessly.</li>\n</ul>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">This week, <strong>Jonathan Bossenger</strong> explored the <strong><a href="https://www.youtube.com/watch?v=dCS6WExmCYQ">WordPress Studio MCP</a> </strong>server, which connects WordPress Studio with AI tools via MCP. He set up MCP in VS Code and then used an AI agent to generate a custom block theme for a small coffee shop selling beans and accessories.</p>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Ray Morey</strong> reported on WordPress.com&#8217;s launches of a <a href="https://www.therepository.email/wordpress-com-launches-built-in-ai-assistant-that-works-in-editor-media-library-and-notes" rel="noreferrer noopener" target="_blank"><strong>Built-In AI Assistant That Works in Editor, Media Library, and Notes</strong></a>. She notes that in the block editor, users can make plain-language requests — adjust layouts, swap color palettes, rewrite copy — and see changes render in real time. Notes users can tag &#8220;@ai&#8221; for fact-checks or edits, and the media library gets image generation and editing too. Morey adds that the feature, powered by <em>Google&#8217;s Nano Banana</em> models, is available on Business and Commerce plans.</p>\n\n\n<div class="ng-block-d01b73cd89fd634a wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #f8f8f8; border-radius: 8px;"><div class="ng-block-4ad741498fb39f50 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong><a href="https://gutenbergtimes.com/need-a-zip-from-master/">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily build for testing and review.</p></div></div></div></div>\n\n<div class="ng-block-e2f56bce440074ec wp-block-newsletterglue-image ng-block size-full is-resized" width="100%"><div><div><div align="center" class="ng-block-td" style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;"><a href="https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json"><img alt="" class="wp-image-42874 ng-image" height="45" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2024/02/Screenshot-2025-11-15-at-12.06.44.png?resize=196%2C45&#038;ssl=1" style="border-style: none; border-color: transparent;" width="196" /></a></div></div></div></div>\n\n<div class="ng-block-bdd88f166338529d wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p>Now also available via <a href="https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json">WordPress Playground</a>. There is no need for a test site locally or on a server. Have you been using it? <a href="mailto:pauli@gutenbergtimes.com">Email me </a>with your experience.</p></div></div></div></div></div><div class="ng-block-hs ng-block-hs-2" height="0" style="width: 0px;"></div></div><div><div class="ng-block-vs ng-block-vs-2" colspan="3" height="0" style="height: 0px;"></div></div></div></div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="has-text-align-center has-small-font-size wp-block-paragraph"><em>Questions? Suggestions? Ideas? </em><br /><em>Don&#8217;t hesitate to send <a href="mailto:pauli@gutenbergtimes.com">them via email</a> or</em><br /><em> send me a message on WordPress Slack or Twitter @bph</em>.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity" />\n\n\n\n<p class="has-text-align-center has-small-font-size wp-block-paragraph">For questions to be answered on the <a href="http://gutenbergtimes.com/podcast">Gutenberg Changelog</a>, <br />send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a></p>\n\n\n<div class="ng-block-ffb6328937f0e154 wp-block-newsletterglue-separator ng-block" style="color: #666666;" width="100%"><div><div><div align="center" class="ng-block-td" style="padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; color: #666666;"><hr style="background-color: transparent; color: transparent; margin: 0; border: 0; border-top: 1px solid #666666; width: 560px; height: 0;" /></div></div></div></div>\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%"><div class="ng-block-66ce307938b4494a wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 14px; font-family: Helvetica; line-height: 0.2; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong>Featured Image: </strong></p></div></div></div></div></div>\n\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 21 Feb 2026 12:52:42 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:18:"Birgit Pauli-Haack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:22;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:60:"Matt: WordPress, AI, plugins, future of software engineering";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151285";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:28:"https://ma.tt/2026/02/wp-ai/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7054:"<p class="wp-block-paragraph">Yesterday <a href="https://www.youtube.com/watch?v=s6AjnlGMIaQ">I was on the WP-Tonic podcast</a>, and my colleague Adrian Laboş did a great summary of the key points, which I&#8217;ll share here:</p>\n\n\n\n<p class="wp-block-paragraph"><strong>AI security audit wave incoming</strong>: Expect AI tools to flood WordPress core and the 70,000+ plugin ecosystem with both improvements and newly discovered security vulnerabilities, requiring infrastructure to triage at scale.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Avoid vibe-coding compliance surfaces</strong>: For payments, fraud, and regulated commerce flows, prioritize battle-tested WooCommerce and vetted extensions over bespoke AI-generated code.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Reposition plugins around durable differentiation</strong>: If AI collapses “nice-to-have” features (e.g., basic image manipulation), shift value to workflow ownership, integrations, compliance, performance, and support.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Agencies gain leverage, not obsolescence</strong>: AI tools give motivated technical people 10-100x capability increases, meaning agencies can serve existing clients far better rather than being replaced by DIY site builders.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Sell outcomes, not hours, as an agency</strong>: Client expectations will compress delivery timelines; adapt pricing to value-based packaging and use AI internally to raise throughput and QA coverage.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Design for agentic usability</strong>: Strengthen APIs, WP-CLI, and machine-friendly interfaces so personal agents can safely operate WordPress tasks without brittle UI automation.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>WordPress Playground enables AI verification</strong>: Spinning up fully containerized WordPress instances in 20-45 seconds inside browsers allows AI to test code across 20+ environments simultaneously, fundamentally changing plugin compatibility testing.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Benchmark AI outputs against WordPress-specific evals</strong>: Adopt WordPress block, plugin, and site-generation evaluations to catch “small file” failures (readme, headers, packaging) that break deployments.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Prioritize compatibility testing by real-world co-install patterns</strong>: Reduce factorial plugin-combination risk by sampling tests based on which plugins are commonly used together and automating those paths.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Plugin directory needs editorial curation</strong>: With submissions accelerating toward 100,000+ plugins, WordPress will introduce editorial spotlights on newer plugins with excellent code/design to balance discoverability with marketplace openness.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Improve plugin discoverability without freezing innovation</strong>: Curate “trusted” and “high quality” signals while preserving pathways for new entrants to earn distribution through measurable excellence.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Plan for uneven economic diffusion</strong>: Even with today’s models, enterprise adoption lags consumer usage; build internal enablement and governance now so teams can scale impact as tooling matures.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>Learning to learn beats domain expertise</strong>: When advising students/parents, the most future-proof skills are curiosity-driven learning, command of language, and study of classics/philosophy/ethics rather than specific technical domains.</p>\n\n\n\n<p class="wp-block-paragraph"><strong>WordPress 7.0 promises AI integration</strong>: The upcoming release will feature “lots of fun AI stuff” and represents one of the most exciting technology years in Matt’s career since starting in the industry.</p>\n\n\n\n<p class="wp-block-paragraph">I had no idea that <a href="https://www.anthropic.com/news/claude-code-security">today Anthropic would release their security thing that does exactly what I said</a>.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity" />\n\n\n\n<p class="wp-block-paragraph">The best thing you&#8217;ll read about AI engineering today is <a href="https://www.modular.com/blog/the-claude-c-compiler-what-it-reveals-about-the-future-of-software">Chris Lattner&#8217;s take on Claude&#8217;s C compiler implementation</a>. To steal Techmeme&#8217;s headline: &#8220;Claude&#8217;s C Compiler shows AI elevates the role of human judgment and vision; it&#8217;s a milestone, but closely mirrors LLVM/GCC, and hard codes things to pass tests.&#8221; The entire post is important, but this paragraph is particuluarly profound:</p>\n\n\n\n<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">\n<p class="wp-block-paragraph"> As writing code is becoming easier, designing software becomes more important than ever. As custom software becomes cheaper to create, the real challenge becomes choosing the right problems and managing the resulting complexity. I also see big open questions about who is going to maintain all this software.</p>\n</blockquote>\n\n\n\n<p class="wp-block-paragraph">To bring this back to WordPress: While I was in another meeting today, Claude Code with Opus 4.6 completed a cleanroom implementation of the <a href="https://wordpress.org/plugins/advanced-custom-fields/">ACF plugin</a> in about 45 minutes. It was about to go off and implement all the pro features, but I stopped it because it would be a tremendous waste of tokens. The entire point of open source is collaborating on a shared goal rather than reinventing the wheel every time.</p>\n\n\n\n<p class="wp-block-paragraph">We&#8217;ve seen a slow version of this play out over the past decade, where every single web host that offers WordPress also spun up some sort of proprietary website or ecommerce builder. Bless their hearts. None has caused Shopify any lost nights of sleep. With countless person-years of development and who knows how many tens or hundreds of millions of dollars spent, I think we can now safely say that all of these efforts have had at most a marginal impact on their businesses, while the benefits of WordPress have continued to compound. </p>\n\n\n\n<p class="wp-block-paragraph">The thought experiment of whether <a href="https://wordpress.org/five-for-the-future/">those same resources had been used to make WordPress better</a> is left as an exercise for the reader.</p>\n\n\n\n<p class="wp-block-paragraph">It does mean that competition is fiercer. You have to differentiate yourself on performance, customer service, reliability, design—things that are hard, but that&#8217;s capitalism.</p>\n\n\n\n<p class="wp-block-paragraph">It&#8217;s really important that <a href="https://wordpress.org/plugins/">in the plugin directory</a>, we figure out how to make it easier for people to collaborate and build things together, rather than make a thousand versions of the same thing.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 21 Feb 2026 00:04:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:23;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:40:"WordPress.org blog: WordPress 7.0 Beta 1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://wordpress.org/news/?p=19908";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:56:"https://wordpress.org/news/2026/02/wordpress-7-0-beta-1/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:15410:"<p class="wp-block-paragraph">WordPress 7.0 Beta 1 is ready for download and testing! <strong>This beta release is intended for testing and development</strong> only. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, use a test environment or local site to explore the new features.</p>\n\n\n\n<h2 class="wp-block-heading">How to Test WordPress 7.0 Beta 1</h2>\n\n\n\n<p class="wp-block-paragraph">You can test WordPress 7.0 Beta 1 in any of the following ways:</p>\n\n\n\n<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Plugin</strong></td><td>Install and activate the <a href="https://wordpress.org/plugins/wordpress-beta-tester/">WordPress Beta Tester</a> plugin on a WordPress install. (Select the “Bleeding edge” channel and “Beta/RC Only” stream.)</td></tr><tr><td><strong>Direct Download</strong></td><td>Download the <a href="https://wordpress.org/wordpress-7.0-beta1.zip">Beta 1 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line</strong></td><td>Use this <a href="https://make.wordpress.org/cli/">WP-CLI</a> command: <code>wp core update --version=7.0-beta1</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use a <a href="https://playground.wordpress.net/?php=8.3&amp;wp=beta&amp;networking=no&amp;language=&amp;multisite=no&amp;random=r8nny4q18x">7.0 Beta 1 WordPress Playground instance</a> to test the software directly in your browser. No setup required &#8211; just click and go!</td></tr></tbody></table></figure>\n\n\n\n<p class="wp-block-paragraph">The scheduled final release date for WordPress 7.0 is <strong>April 9, 2026</strong>. The full <a href="https://make.wordpress.org/core/2026/02/12/wordpress-7-0-release-party-schedule/">release schedule can be found here</a>. Your help testing Beta and RC versions is vital to making this release as stable and powerful as possible. Thank you to everyone who contributes by testing!</p>\n\n\n\n<h2 class="wp-block-heading">How important is your testing?</h2>\n\n\n\n<p class="wp-block-paragraph">Testing for issues is a critical part of developing any software, and it’s a meaningful way for anyone to contribute &#8211; whether or not you have experience. <a href="https://make.wordpress.org/test/2026/02/20/help-test-wordpress-7-0/">Details on what to test in WordPress 7.0 are available here</a>.</p>\n\n\n\n<p class="wp-block-paragraph">If you encounter an issue, please share it in the <a href="https://wordpress.org/support/forum/alphabeta/">Alpha/Beta area</a> of the support forums. If you are comfortable submitting a reproducible bug report, you can do so <a href="https://core.trac.wordpress.org/newticket">via WordPress Trac</a>. You can also check your issue against this list of <a href="https://core.trac.wordpress.org/tickets/major">known bugs</a>.</p>\n\n\n\n<p class="wp-block-paragraph">Curious about testing releases in general and how to get started? Follow along with the <a href="https://make.wordpress.org/test/">testing initiatives in Make Core</a> and join the <a href="https://wordpress.slack.com/messages/core-test/">#core-test channel</a> on <a href="https://wordpress.slack.com/">Making WordPress Slack</a>. WordPress 7.0 will include new features that were previously only available in the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 6.9 in the <a href="https://make.wordpress.org/core/tag/gutenberg-new/">What’s New in Gutenberg</a> posts for versions <a href="https://make.wordpress.org/core/2025/11/05/whats-new-in-gutenberg-22-0-05-november/">22.0</a>, <a href="https://make.wordpress.org/core/2025/11/20/whats-new-in-gutenberg-22-1-18-november-2025/">22.1</a>, <a href="https://make.wordpress.org/core/2025/12/03/whats-new-in-gutenberg-22-2-dec3/">22.2</a>, <a href="https://make.wordpress.org/core/2025/12/17/gutenberg-22-3-december-17/">22.3</a>, <a href="https://make.wordpress.org/core/2026/01/22/whats-new-in-gutenberg-22-4-20-january/">22.4</a>, <a href="https://make.wordpress.org/core/2026/02/04/whats-new-in-gutenberg-22-5-04-february/">22.5</a> &amp; 22.6.</p>\n\n\n\n<h2 class="wp-block-heading">What’s new in WordPress 7.0?</h2>\n\n\n\n<p class="wp-block-paragraph">WordPress 7.0 boasts numerous upgrades in the editing and admin experience, delivering enhanced real time collaboration, refined customizability, new dashboard styles, and an expanded developer toolbox for people who create, design, and build with WordPress every day.</p>\n\n\n\n<p class="wp-block-paragraph">Working as a team just got easier with the ability for multiple users to edit together in real time, while visual revisions allow a visual comparison between page versions, adding agility to the creation and review process. Working with patterns has been simplified, making layout updates and content changes more intuitive, while view transitions smoothly move you from screen to screen as you click.</p>\n\n\n\n<p class="wp-block-paragraph">New and improved blocks and design features in 7.0 make sites more customizable, with video embed backgrounds in the Cover block, a responsive-enabled Grid block, and new Icons, Breadcrumbs and Heading blocks. An updated Navigation block makes menu changes easier and more reliable in fewer steps. Responsive, mobile-friendly controls in 7.0 allow you to hide or reveal blocks based on screen size, while client-side media handling speeds up media processing. The Font Library screen for managing installed fonts is now enabled for all themes, so site editors are always able to browse, install, and organize fonts. </p>\n\n\n\n<p class="wp-block-paragraph">For developers, it’s now easier to build modern experiences while staying aligned with Core principles. The new WP AI Client in WordPress 7.0 brings a layer into Core that allows leveraging of AI models from any provider within the WordPress framework. This means plugins and themes can tap into any AI model to expound on its endless options. 7.0 offers even more versatility with the Client Side Abilities API that introduces a standardized way to register and run “abilities” in the browser, supporting richer, more consistent workflows. Additionally, 7.0 introduces PHP-only block registration with auto-generated inspector controls, adding a new dimension to block creation, while Block Bindings updates for pattern overrides expands support to custom dynamic blocks, giving block creators more options.</p>\n\n\n\n<p class="wp-block-paragraph">Needless to say, this release offers a wide range of flexibility to creators, teams and developers, while bringing a visual refresh to the admin experience you know and love with a fresh default style.</p>\n\n\n\n<h2 class="wp-block-heading">Work together in real time</h2>\n\n\n\n<p class="wp-block-paragraph">Building on the momentum started in WordPress 6.9, the ability for teams to create and edit together is more refined and robust in 7.0. With this version of WordPress multiple users can edit and collaborate on the same post or page in real time, with data syncing and stabilized notes for smoother teamwork and a more streamlined editing and review process.</p>\n\n\n\n<ul class="wp-block-list">\n<li>Real Time Collaboration: Teams can now edit posts and pages together live from multiple locations, with offline editing and data syncing enabled, and a new default HTTP polling sync provider with options for plugins or hosts to include websocket support. With this collaborative content creation workflow, teams can brainstorm more effectively and boost productivity. For the beta period, real-time collaboration is opt-in in order to get broader feedback and testing.</li>\n\n\n\n<li>Notes: 7.0 introduces real time syncing of notes that helps facilitate collaboration, a keyboard shortcut for new notes, and a series of quality-focused fixes that bring more stability to the Notes feature.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">A Refined Admin Experience</h2>\n\n\n\n<p class="wp-block-paragraph">WordPress 7.0 gives the wp-admin experience a boost with a fresh default color scheme, and a cleaner, more modern looking dashboard, while keeping the interface familiar. The upgraded dashboard enhances the editing experience with new visual revision comparisons, and smooth transitioning between screens.</p>\n\n\n\n<ul class="wp-block-list">\n<li>Visual Revisions: Working with revisions is even better in 7.0 with the added ability to make visual comparisons to revision versions within the editor.</li>\n\n\n\n<li>View transitions: Cross-document view transitions in the dashboard offer visual continuity with seamless movement from screen to screen.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">Customizing content with ease</h2>\n\n\n\n<p class="wp-block-paragraph">Creators have more flexibility in 7.0 with new tools for content and design, enhanced editing controls, and attention to mobile friendliness. </p>\n\n\n\n<ul class="wp-block-list">\n<li>Responsive Editing Mode: Block visibility is now more responsive and mobile-friendly, with the ability for blocks to be displayed or hidden based on screen size. </li>\n\n\n\n<li>Pattern Editing and contentOnly interactivity: WordPress 7.0 introduces pattern-level editing modes, a tree view for buttons and list blocks, and the ability to opt out of the default content only mode. The new Spotlight mode helps you isolate content in patterns and notes, while the Isolated Editor mode can be used for editing symbols and reusable pieces like synced patterns, template parts, or navigation. </li>\n\n\n\n<li>Block supports and design tools: 7.0 includes text line indent support, text column support, aspect ratios for wide and full images, dimension width and height support, and dimension presets, tools and controls.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">New blocks and design options at your fingertips</h2>\n\n\n\n<p class="wp-block-paragraph">7.0 delivers a series of new and improved blocks and block features, a streamlined navigation workflow, and more versatile design options like video embeds as section backgrounds.</p>\n\n\n\n<ul class="wp-block-list">\n<li>Navigation Block: Navigation workflow is now more intuitive and clear, with improved editing and presentation. 7.0 introduces customizable navigation overlays as template parts, including mobile version overlays that can be hidden or revealed based on custom breakpoint settings. </li>\n\n\n\n<li>Heading Block: Heading levels are now available as block variations, giving more control over page hierarchy and design.</li>\n\n\n\n<li>New blocks: 7.0 makes building pages more diverse with new Breadcrumbs and Icons blocks.</li>\n\n\n\n<li>Cover block embedded videos: Video embeds can now be used as a background in the cover block, opening up opportunities for sleeker and more creative designs.</li>\n\n\n\n<li>The Grid block is now responsive-enabled allowing grid-based layouts to adapt more smoothly across screen sizes.</li>\n\n\n\n<li>The Gallery block now has lightbox support that lets the user click through and view each gallery image.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">Developer&#8217;s toolbox</h2>\n\n\n\n<p class="wp-block-paragraph">Working with WordPress on the backend is now more robust for developers, with new and enhanced API features that support flexibility and lay a foundation for future advancements. The Client Side Abilities API provides a client-side registry for WordPress capabilities that allows you to tap into new and innovative website options. WordPress 7.0 offers even more by introducing the Web Client AI API to Core, enabling access to generative AI models in one central interface.</p>\n\n\n\n<ul class="wp-block-list">\n<li>Web Client AI API: The new AI client and API acts as a command center for accessing and communicating with generative AI models, with providers remaining external to WordPress Core, and Abilities API integration.</li>\n\n\n\n<li>Abilities and Workflows API: With the new client side abilities package users have access to new and hybrid abilities, filter and search functionality for abilities, and an improved command palette and UI.</li>\n\n\n\n<li>Blocks and patterns created on the server: WordPress 7.0 boasts the ability for PHP-only blocks and patterns to be generated server-side and auto-registered with the Block API.</li>\n\n\n\n<li>DataForm: Introducing a new details layout, new controls (combobox, adaptiveSelect), and updated trigger for panel layout (dedicated edit button). Additionally, the initial iteration for validation is complete: all controls have support, and all layouts display error messages.</li>\n\n\n\n<li>DataViews: DataViews has a new activity layout, and a foundation has been laid to be able to register 3rd party types in future releases.</li>\n\n\n\n<li>CodeMirror update: CodeMirror has been updated to version 5.65.40, aiding more flexible extensibility and library options.</li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">Media processing in the browser</h2>\n\n\n\n<p class="wp-block-paragraph">WordPress 7.0 introduces Client-side media processing, leveraging the browser&#8217;s capabilities to handle tasks, like image resizing and compression, for smoother image processing. This enables the use of more advanced image formats and compression techniques, and reduces demand on the web server; providing a more efficient media handling process for both new and existing content, and supporting smoother media workflows.</p>\n\n\n\n<p class="wp-block-paragraph">With so many options and enhancements in WordPress 7.0 Beta 1, this is still only the beginning. You can expect future releases to be even better.</p>\n\n\n\n<h2 class="wp-block-heading">Just for you: a Beta 1 haiku:</h2>\n\n\n\n<p class="wp-block-paragraph"><em>As sun kisses moon</em>,</p>\n\n\n\n<p class="wp-block-paragraph"><em>Beta 1 ignites in bloom</em>&#8230;</p>\n\n\n\n<p class="wp-block-paragraph"><em>Seven-oh lands soon</em>.</p>\n\n\n\n<p class="has-text-align-right wp-block-paragraph"><em>Props to <a class="mention" href="https://profiles.wordpress.org/ellatrix/"><span class="mentions-prefix">@</span>ellatrix</a>, <a class="mention" href="https://profiles.wordpress.org/jeffpaul/"><span class="mentions-prefix">@</span>jeffpaul</a>, <a class="mention" href="https://profiles.wordpress.org/annezazu/"><span class="mentions-prefix">@</span>annezazu</a>, <a class="mention" href="https://profiles.wordpress.org/chaion07/"><span class="mentions-prefix">@</span>chaion07</a>, <a class="mention" href="https://profiles.wordpress.org/zunaid321/"><span class="mentions-prefix">@</span>zunaid321</a>, <a class="mention" href="https://profiles.wordpress.org/audrasjb/"><span class="mentions-prefix">@</span>audrasjb</a>, <a class="mention" href="https://profiles.wordpress.org/mukesh27/"><span class="mentions-prefix">@</span>mukesh27</a>, <a class="mention" href="https://profiles.wordpress.org/ankit-k-gupta/"><span class="mentions-prefix">@</span>ankit-k-gupta</a></em>, <em><a class="mention" href="https://profiles.wordpress.org/oandregal/"><span class="mentions-prefix">@</span>oandregal</a>, <a class="mention" href="https://profiles.wordpress.org/westonruter/"><span class="mentions-prefix">@</span>westonruter</a>, <a class="mention" href="https://profiles.wordpress.org/karmatosed/"><span class="mentions-prefix">@</span>karmatosed</a>, <a class="mention" href="https://profiles.wordpress.org/bph/"><span class="mentions-prefix">@</span>bph</a> for reviewing and collaborating on this post!</em></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 20 Feb 2026 15:39:10 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:10:"Amy Kamala";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:24;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:107:"WordCamp Central: Introducing WordCamp Mukono 2026: Sustainable Growth, Building a Lasting WordPress Future";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:40:"https://central.wordcamp.org/?p=13715228";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:130:"https://central.wordcamp.org/news/2026/02/introducing-wordcamp-mukono-2026-sustainable-growth-building-a-lasting-wordpress-future/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:8074:"<p>The WordPress community in Uganda is pleased to introduce <a href="https://mukono.wordcamp.org/2026/"><strong>WordCamp Mukono 2026</strong></a>, scheduled for <strong>March 13 &amp; 14, 2026</strong>, at <a href="https://mukono.wordcamp.org/2026/venue/"><strong>Murs Country Resort, Kigunga</strong></a>, in Mukono, Uganda.</p>\n\n\n\n<p>Guided by the theme <strong>“Sustainable Growth &#8211; Building a Lasting WordPress Future,”</strong> WordCamp Mukono 2026 will bring together over 300 attendees including WordPress users, contributors, code wranglers, developers, designers, educators, and business owners to explore how sustainable practices can strengthen the WordPress project, local communities, and the broader open-source ecosystem.</p>\n\n\n\n<h3 class="wp-block-heading"><strong>A Focus on Sustainability and Long-Term Impact</strong></h3>\n\n\n\n<p>The 2026 theme reflects a growing emphasis within the WordPress project on sustainability not only in technology, but also in people, communities, and contribution pathways. Sessions and discussions will focus on:</p>\n\n\n\n<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex" style="margin-bottom: 10px;">\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-174" src="https://mukono.wordcamp.org/2026/files/2025/11/DSC_2001-1024x683.jpg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-231" src="https://mukono.wordcamp.org/2026/files/2025/11/000-1024x683.jpg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-343" src="https://mukono.wordcamp.org/2026/files/2025/12/student-1024x768.webp" /></figure>\n</figure>\n\n\n\n<ul class="wp-block-list">\n<li>Sustainable WordPress businesses and client practices</li>\n\n\n\n<li>Long-term community building and leadership development</li>\n\n\n\n<li>Performance, security, and maintainable WordPress solutions</li>\n\n\n\n<li>Inclusive contribution and mentorship in open source</li>\n\n\n\n<li>Content, accessibility, and responsible digital publishing</li>\n\n\n\n<li>AI tools and practices for both individuals and businesses</li>\n\n\n\n<li>An Educational track for Students and Educators</li>\n</ul>\n\n\n\n<p>The program is designed to support both new and experienced WordPress users, offering practical insights alongside opportunities for deeper engagement with the WordPress project.</p>\n\n\n\n<p>This year includes a lot of Community building activities, programs and strategies to support and grow open source communities.</p>\n\n\n\n<h3 class="wp-block-heading"><strong>Strengthening the Local and Regional WordPress Community</strong></h3>\n\n\n\n<p>WordCamp Mukono has become a key gathering point for WordPress users in Mukono, Uganda, and the wider East African region. The 2026 event continues this trajectory by prioritizing local voices, first-time speakers, and contributors who are actively growing WordPress adoption through education, translation, support, and community leadership.</p>\n\n\n\n<p>By hosting the event in Mukono, the organizing team reinforces WordPress’s mission to democratize publishing and ensure that open-source opportunities are accessible beyond major urban centers.</p>\n\n\n\n<p>WordCamp Mukono 2026 will be hosted at the spacious and prestigious <a href="https://murscountryresort.com/">Murs Country Resort </a>in Kigunga, Seeta, Mukono Municipality. The venue offers a variety of amenities and services that make it a beautiful home for WordCamp Mukono.</p>\n\n\n\n<h3 class="wp-block-heading">Accommodation Options at WordCamp Mukono</h3>\n\n\n\n<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex" style="margin-bottom: 10px;">\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4714" src="https://mukono.wordcamp.org/2026/files/2026/02/img7-1024x683.jpg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4674" src="https://mukono.wordcamp.org/2026/files/2026/02/IMG_8657-1024x768.jpeg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4659" src="https://mukono.wordcamp.org/2026/files/2026/02/IMG_8672-1024x768.jpeg" /></figure>\n</figure>\n\n\n\n<p>WordCamp Mukono has spoken to several hotels and Accommodation options around the Host venue including the host venue itself and Accommodations have been made available for all attendees. </p>\n\n\n\n<p>Details have been shared on the website. Feel free to secure your pick as you see fit.</p>\n\n\n\n<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex" style="margin-bottom: 10px;">\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4692" src="https://mukono.wordcamp.org/2026/files/2026/02/IMG_8641-1024x768.jpeg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4720" src="https://mukono.wordcamp.org/2026/files/2026/02/736470384.jpg" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4667" src="https://mukono.wordcamp.org/2026/files/2026/02/IMG_8663-1024x768.jpeg" /></figure>\n</figure>\n\n\n\n<h3 class="wp-block-heading"><strong>An Official, Community-Led WordPress Event</strong></h3>\n\n\n\n<p>WordCamp Mukono 2026 is an official <a href="https://central.wordcamp.org/">WordPress event</a>, organized by a dedicated team of local volunteers and run as a non-profit. Like all WordCamps, the event is built on the principles of openness, inclusivity, and collaboration.</p>\n\n\n\n<p>Over two days, attendees will participate in talks, workshops, and networking opportunities designed to foster meaningful connections and long-term contributions to WordPress.</p>\n\n\n\n<h3 class="wp-block-heading"><strong>Get Involved</strong></h3>\n\n\n\n<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex" style="margin-bottom: 10px;">\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-3221" src="https://mukono.wordcamp.org/2026/files/2026/01/Patrick.webp" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-436" src="https://mukono.wordcamp.org/2026/files/2026/01/Arthur.webp" /></figure>\n\n\n\n<figure class="wp-block-image size-large"><img alt="" class="wp-image-4290" src="https://mukono.wordcamp.org/2026/files/2026/01/desire.webp" /></figure>\n</figure>\n\n\n\n<p>Calls for <a href="https://mukono.wordcamp.org/2026/call-for-speakers/"><strong>speakers</strong></a> are open to any one with a brilliant idea they would want to share<strong>, </strong>and the <a href="https://mukono.wordcamp.org/2026/call-for-sponsors/"><strong>sponsor</strong></a> call is also open. An event of this magnitude can only be made possible by the many generous individuals who contribute to open source and community initiatives. The volunteer call is now closed, and the event is already taking shape.</p>\n\n\n\n<p><a href="https://mukono.wordcamp.org/2026/tickets/"><strong>Ticket Sales</strong></a> are now open for this great experience and are the main talk on the streets. Community members from Uganda, the East African region, and beyond are encouraged to take part and contribute to an event focused on building a sustainable future for WordPress. Have no excuse! <a href="https://mukono.wordcamp.org/2026/tickets/">Book </a>your space now!</p>\n\n\n\n<p>Community partners are also allowed to sponsor people to get this great experience by buying a ticket for them. Sponsoring them fully or partially. <a href="https://mukono.wordcamp.org/2026/contact/">Contact </a>the Team for details</p>\n\n\n\n<p>More details can be found on the official WordCamp Mukono <a href="https://mukono.wordcamp.org/2026/">website </a>and on WordCamp.org as they become available. Kindly also check the <a href="https://mukono.wordcamp.org/2026/news/">Blog Section</a> for live updates on the event.</p>\n\n\n\n<p></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 20 Feb 2026 09:48:51 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:21:"Moses Cursor Ssebunya";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:25;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:63:"Open Channels FM: Communicating Transparently Around Challenges";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1487435";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:70:"https://openchannels.fm/communicating-transparently-around-challenges/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:88:"Communication isn’t just about communicating around the good things, the shiny things.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Fri, 20 Feb 2026 09:33:38 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:26;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:60:"Open Channels FM: How AI Is Changing the Way Developers Work";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=115157";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:67:"https://openchannels.fm/how-ai-is-changing-the-way-developers-work/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:176:"The rise of AI tools is revitalizing programming for developers, making coding enjoyable, but also increasing workload and emphasizing the need for visibility in contributions.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 19 Feb 2026 14:58:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:27;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:97:"Open Channels FM: An Inside Look at Building Consistent Brand Experience in the Digital Ecosystem";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650103";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:104:"https://openchannels.fm/an-inside-look-at-building-consistent-brand-experience-in-the-digital-ecosystem/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:242:"In this episode, Adam Weeks interviews Jessica Malamud, who discusses Elementor\'s significant rebranding efforts to better reflect its innovation and community engagement, focusing on elements like design, storytelling, and brand consistency.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 19 Feb 2026 11:04:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:28;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:29:"Matt: WP &amp;amp; AI Updates";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151275";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:36:"https://ma.tt/2026/02/wp-ai-updates/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:1143:"<p class="wp-block-paragraph">There&#8217;s so much fun stuff happening, first the new assistant launched on .com, <a href="https://techcrunch.com/2026/02/17/wordpress-com-adds-an-ai-assistant-that-can-edit-adjust-styles-create-images-and-more/">covered by TechCrunch</a> and in this video.</p>\n\n\n\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n\n\n\n<p class="wp-block-paragraph">Also some <a href="https://wordpress.com/blog/2026/02/13/new-plugin-and-skills-for-claude-cowork/">cool Claude stuff launched</a>.</p>\n\n\n\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n\n\n\n<p class="wp-block-paragraph"><a href="https://j.cv/automattic-ai-progress/">James has a nice write-up of the other dozen things that are going on</a>, it&#8217;s fun to see the AI parts of WordPress moving at AI-speed. We just need to loop back to some of the older screens and give them some love.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Thu, 19 Feb 2026 07:49:50 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:29;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:94:"WPTavern: #205 – Matt Cromwell on Redefining WordPress Product Growth in a Crowded Ecosystem";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:48:"https://wptavern.com/?post_type=podcast&p=202688";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:108:"https://wptavern.com/podcast/205-matt-cromwell-on-redefining-wordpress-product-growth-in-a-crowded-ecosystem";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:38240:"<details>Transcript<div>\n<p class="wp-block-paragraph">[00:00:19] <strong>Nathan Wrigley:</strong> Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.</p>\n\n\n\n<p class="wp-block-paragraph">Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, redefining WordPress product growth in a crowded ecosystem.</p>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.</p>\n\n\n\n<p class="wp-block-paragraph">If you have a topic that you&#8217;d like us to feature on the podcast, I&#8217;m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox, and use the form there.</p>\n\n\n\n<p class="wp-block-paragraph">So on the podcast today we have Matt Cromwell. Matt has been an influential figure in the WordPress ecosystem for many years. He co-founded GiveWP, led its growth, and continued his journey as part of the StellarWP leadership after it was acquired.</p>\n\n\n\n<p class="wp-block-paragraph">Recently, Matt has shifted gears, launching something new. It&#8217;s called Roots and Fruit, and is an agency dedicated to helping WordPress product businesses thrive. In recent years, WordPress has gone through a period of flux. There&#8217;s been shifting stats about WordPress&#8217;s market share, tightening budgets, and increasing competition from both within and outside the.org plugin repo. Despite these changes, Matt remains optimistic about the opportunities for product makers, especially as WordPress evolves alongside emerging technologies like AI.</p>\n\n\n\n<p class="wp-block-paragraph">Matt starts off by sharing his background, his experience with GiveWP, and the unique perspective he gained navigating growth, crisis, and the challenges facing plugin developers. We then talk about how the WordPress product space has matured. Why building a plugin, or theme, and hoping users will simply discover it is no longer enough, and how focusing on the customer journey, branding, and marketing is more crucial than ever.</p>\n\n\n\n<p class="wp-block-paragraph">Matt is now positioning himself as a mentor and guide for solo founders and product teams, helping them prioritize growth efforts, refine their product experience, and avoid the scattered approach that many developers fall into. He brings practical insights from years of hand-on experience, and explains why a successful WordPress product business relies on process, diligence, and wise prioritization, not just code and hope.</p>\n\n\n\n<p class="wp-block-paragraph">If you are building digital products in WordPress, and want to learn how to make them stand out in a crowded, competitive ecosystem, this episode is for you.</p>\n\n\n\n<p class="wp-block-paragraph">If you&#8217;re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you&#8217;ll find all the other episodes as well.</p>\n\n\n\n<p class="wp-block-paragraph">And so without further delay, I bring you Matt Cromwell.</p>\n\n\n\n<p class="wp-block-paragraph">I am joined on the podcast by Matt Cromwell. Hello, Matt.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:22] <strong>Matt Cromwell:</strong> Hi. Happy to be here.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:24] <strong>Nathan Wrigley:</strong> Matt and I have chatted many times. In fact, we were having a nice chat just before we realised that the time was going to get away from us. So we&#8217;ve diverted and pressed record. We were getting into AI, but we&#8217;re going to park that because that&#8217;s a whole different episode. Well, maybe not. Maybe there&#8217;ll be bits of that leaking into this episode.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:39] <strong>Matt Cromwell:</strong> It&#8217;ll come up.</p>\n\n\n\n<p class="wp-block-paragraph">[00:03:39] <strong>Nathan Wrigley:</strong> I&#8217;m sure it will. But as I say, Matt&#8217;s been on the podcast before. He has had a significant sort of reshaping of his career in the recent past. And so we&#8217;re going to talk a little bit about what the new direction is, and where he&#8217;s going to be focusing his efforts in the near to long term.</p>\n\n\n\n<p class="wp-block-paragraph">But Matt, just before we begin, do you want to tell us a little bit about you and what you&#8217;ve been doing in the WordPress space these many years?</p>\n\n\n\n<p class="wp-block-paragraph">[00:04:01] <strong>Matt Cromwell:</strong> Absolutely. Thanks so much. I&#8217;m Matt Cromwell. I am was, it&#8217;s hard to figure out how to introduce myself anymore. I was co-founder of GiveWP and sold that product in 2021 to Liquid Web and stayed on and came on the leadership team of what became StellarWP, and took all the things I learned from Give and got to apply them across lots of products, in an excellent learning journey.</p>\n\n\n\n<p class="wp-block-paragraph">Recently exited back this last fall, 2025, and went on a journey of discovering in what I want to do, and found that I could not prime myself away from the keyboard enough and decided that now&#8217;s the time I get to invest my time and efforts and energy in the WordPress product ecosystem like I always have. So I built a new agency called Roots &amp; Fruit, which I have basically said is your fractional chief growth officer agency. I just launched a couple weeks ago and it&#8217;s going well. So that&#8217;s what I&#8217;m doing. That&#8217;s how I say it.</p>\n\n\n\n<p class="wp-block-paragraph">[00:05:02] <strong>Nathan Wrigley:</strong> Yeah, I love the domain, by the way. The minute I saw that, I think I got where you were going without even having read a word. Roots &amp; Fruit sort of says it all, doesn&#8217;t it? It&#8217;s the growth to the actual harvesting at the end. And so we will get into that.</p>\n\n\n\n<p class="wp-block-paragraph">Can I just ask you though, we&#8217;ll begin this way because we&#8217;ve had several years now of flux in the WordPress ecosystem. You have charted the growth of many products in the WordPress space. You&#8217;ve been involved in them personally, and you&#8217;ve seen the journeys of other founders and what have you.</p>\n\n\n\n<p class="wp-block-paragraph">Do you have the same level of optimism that the Matt Cromwell, let&#8217;s say from the year 2020, when everything was going gangbusters, that 35% went to 38%, went to 40%, and on it went. Do you have the same level of optimism? Do you think there still is fruit to be harvested in the WordPress space in 2026?</p>\n\n\n\n<p class="wp-block-paragraph">[00:05:59] <strong>Matt Cromwell:</strong> Absolutely I do. There&#8217;s a lot of caveats in there, I have to say. Being at GiveWP, we had a unique perspective when it came to things like a pandemic. It was like an internal thing where we were afraid of becoming ambulance chasers, okay? Because, especially in the US, when a crisis would come, suddenly our sales would go through the roof. And it&#8217;s because when bad things happen, people need to do fundraising. And the worst thing we wanted to do was start capitalising on trauma or things like that.</p>\n\n\n\n<p class="wp-block-paragraph">And so when COVID came along, we were like, woah, this is going to be significant. And it was. It was a very significant thing. But we had been through the motions, so we knew that it was going to have a downside on the tail end of it, sales-wise. And I think a lot of folks understood that conceptually as well. But we had experienced it a lot.</p>\n\n\n\n<p class="wp-block-paragraph">But what a lot of folks found out on the tail side of COVID was that the downside was worse than it was pre COVID. A lot of folks felt that, even GiveWP to some extent and several of the Stellar products were like, oh, we&#8217;ve leveled out, we&#8217;ve come down off of the COVID high, and actually it feels a little bit worse than it was before. Budgets got tight in terms of businesses and agencies, nonprofits, things like that. There&#8217;s lots of circumstances to those things. But over the last year or so, a lot of product companies have started to see things start to slowly climb again.</p>\n\n\n\n<p class="wp-block-paragraph">But in the WordPress space, I think it&#8217;s important that everybody also look at our ecosystem in the bigger ecosystem of just the web. On the web there are small to medium to large companies launching all the time with huge amounts of success. Just a couple years ago, nobody knew what Lovable was. Now it&#8217;s a billion dollar company. Things like that do happen and they happen regularly. That to me means there is still lots of appetite for the kinds of solutions that we are trying to bring to the world through the web. And we can be part of that solution.</p>\n\n\n\n<p class="wp-block-paragraph">Now, the conversation you and I had a little bit before was more about like, what about WordPress and the threat or the opportunity of AI? I do think the way in which WordPress Core has been tackling AI and trying to bring tooling into WordPress Core is making sure that WordPress itself as a platform has not only a future, but it has a lucrative future. I think the way that they&#8217;re going about it is really smart and really intelligent, and it is going to actually build the platform in a way that makes AI understand how to build with WordPress better than anything else out there.</p>\n\n\n\n<p class="wp-block-paragraph">WordPress is the most, one of the most documented, open source projects in the world, and it&#8217;s been open source this whole time, and AI loves that kind of stuff. So it just has been able to scrape the WordPress database, the WordPress code, all the WordPress documentation over years and years and years. AI now knows WordPress really, really, really well. So I think there&#8217;s lots of opportunity.</p>\n\n\n\n<p class="wp-block-paragraph">[00:09:07] <strong>Nathan Wrigley:</strong> Yeah, no, it&#8217;s really great because you covered a lot of ground there. I should say, dear listener, at this point, maybe go and have a look at Matt&#8217;s domain. I mentioned it, but I&#8217;ll just read it into the record. So it&#8217;s Roots with an S. Roots and fruit singular, .com, rootsandfruit.com. So go and check that out. Maybe pause the podcast if you&#8217;re at a screen and.</p>\n\n\n\n<p class="wp-block-paragraph">[00:09:28] <strong>Matt Cromwell:</strong> Singular and plural.</p>\n\n\n\n<p class="wp-block-paragraph">[00:09:29] <strong>Nathan Wrigley:</strong> Both. Yeah, you&#8217;ve managed to get all the goodness in there. Go and pause the podcast and have a little poke around and you&#8217;ll get some intuition as to what Matt is doing over there.</p>\n\n\n\n<p class="wp-block-paragraph">I&#8217;m going to sort of sidestep a little bit though, because I want to frame this question slightly differently, and that is to, I&#8217;ll frame it like this. I, as a consumer of WordPress things, I&#8217;ve spent the last 15 or so years pottering around, having a problem, then going to Google and discovering that there&#8217;s typically a WordPress plugin or theme or what have you, for that. And then I go to their website and perhaps there&#8217;s two or three websites that I might be juggling and thinking which one is superior for the needs that I have. And then I purchase something, you know, I go and I buy a premium version of something or maybe download the free version to give it a test.</p>\n\n\n\n<p class="wp-block-paragraph">But the point is, I have this really abstracted concept of what it is. I&#8217;m buying a commodity. So I buy the finished thing and it comes as a zip file, and I typically don&#8217;t interact with a human being. And that&#8217;s the interesting bit that I want to get into to begin with, is the human behind all of this, which was you for many years.</p>\n\n\n\n<p class="wp-block-paragraph">And so can we just explore that a little bit? What is the stuff that somebody like you, when you were with GiveWP, but maybe now the clients that you are going to be servicing, what is their day involved with? What do these people do? What are the anxieties they have? What is the stuff that makes up a plugin or theme developer&#8217;s life and business?</p>\n\n\n\n<p class="wp-block-paragraph">[00:10:55] <strong>Matt Cromwell:</strong> Generally speaking, product folks are nerds, love to be behind the screen. And they like this kind of industry, specifically because they don&#8217;t have to be the person dealing with the customer as much. That distance that goes between the screen basically, is something that gives them a sense of safety, where they get to focus on the work that they love and they enjoy, without having to deal with the noise of the people.</p>\n\n\n\n<p class="wp-block-paragraph">The exception to that are all the folks that are highly motivated to help with technical support. And I love those people. Those are my people. My focus as a founder was more on the customer support and marketing side of things, so I enjoyed being more of the face of things for our brands over the years.</p>\n\n\n\n<p class="wp-block-paragraph">But the allure there is both being able to have that separation from the noise of the public, but also having a little bit of the security of what might be called mildly passive income. And that&#8217;s the big difference between folks who are running an agency and folks who love to run product. Agencies are service oriented folks. They have to be with the customer and the client all the time. You are paying for hours. You&#8217;re being paid for the time that you put in, in many ways. With agency service work, there&#8217;s ways to get away from just purely time-based charging, but by and large.</p>\n\n\n\n<p class="wp-block-paragraph">In the product space, you&#8217;re not being paid for the time you put in. You&#8217;re being paid for the product, and for the outcomes that the customer experiences. And that&#8217;s what you bought Nathan, when you went and bought a utility or a tool or whatnot. You weren&#8217;t looking to hire a person, you were looking for a specific outcome on your website, and you felt that that one product could provide you that outcome. And once you had that outcome, you&#8217;re happy.</p>\n\n\n\n<p class="wp-block-paragraph">And that&#8217;s exactly why product shops are, in my mind, have to be customer oriented first because all of the success, all of the success of the product, of the marketing, of the business, all starts with whether or not the customer is happy.</p>\n\n\n\n<p class="wp-block-paragraph">[00:13:05] <strong>Nathan Wrigley:</strong> Yeah. We have this expression in the English language which is, a rising tide carries all boats. And essentially what it means is, when there&#8217;s this sort of groundswell of growth, everything touching it grows. And I think we had that in all sorts of ways recently, over the last decade or so.</p>\n\n\n\n<p class="wp-block-paragraph">The mobile phone app ecosystem, that just was taking off and all the developers over there were doing incredibly well. Same with the WordPress space. Just year on year growth. And so there was this notion, which you reference on your website quite a lot, of build it and they will come. And that phrase essentially is, okay, I am one of those people. You said, nerds.</p>\n\n\n\n<p class="wp-block-paragraph">I&#8217;m going to build a product, and I have a complete expectation that I am part of that rising tide. I&#8217;m one of the boats. I&#8217;ll build this thing, I&#8217;ll mention it a few times on social media, and this thing that I&#8217;ve spent hours and hours doing will take off and I will be able to have some kind of passive income from it.</p>\n\n\n\n<p class="wp-block-paragraph">Now, I don&#8217;t know when you started saying that those days were gone, but you are definitely saying those days are gone. Why are those days gone? What happened? What changed to make it so that the rising tide carries all boats analogy, possibly no longer fits?</p>\n\n\n\n<p class="wp-block-paragraph">[00:14:17] <strong>Matt Cromwell:</strong> It depends on the context. I mean, it fits in several different ways. But when it comes to product in the WordPress space nowadays, we used to depend so much on the wordpress.org plugin, or theme, directory as a primary outlet for discoverability. I want people to find that I exist and that I am a solution for their problems, and this is where you find me.</p>\n\n\n\n<p class="wp-block-paragraph">The plugin directory in particular, when we launched GiveWP, I think there were 30,000 plugins at the time, or approaching 30,000. And now there&#8217;s over 60, and they are growing every day more or less. They grow and they shrink. They get rid of plugins too, actually. But that does increase the amount of surface area where you have to break through in order to be found. If you try to be an AI alt text generator right now, good luck. There are three dozen of those that got shipped yesterday. It&#8217;s crazy.</p>\n\n\n\n<p class="wp-block-paragraph">But even more so than just the noise and the volume on the plugin directory, it&#8217;s also that the consumers that are building their websites, they are not thinking about WordPress as much anymore. They&#8217;re building with WordPress, but they kind of don&#8217;t care that it&#8217;s WordPress. They&#8217;re just building a website. They have specific outcomes and they know that there are lots of products out there that can serve their needs, and they don&#8217;t care if it&#8217;s a SaaS, or a platform, or a plugin, or a theme. They don&#8217;t care. They&#8217;re just going to look for that outcome and they&#8217;re going to plug it into their website in one form or another, if that solution is pluggable.</p>\n\n\n\n<p class="wp-block-paragraph">And that space, the SaaS space in particular, has gotten a lot more crowded and a lot more competitive for being applied directly to the WordPress customer. So we&#8217;re not just competing WordPress to WordPress, we&#8217;re competing WordPress to the rest of the whole world.</p>\n\n\n\n<p class="wp-block-paragraph">[00:16:18] <strong>Nathan Wrigley:</strong> Yeah, that&#8217;s interesting. So my analogy, when I said a rising tide carries all boats, what I&#8217;m imagining 10 years ago is that there was a really nice looking harbor with a few little boats. And the tide came up and these little boats just bobbed along and they all rose up. Whereas now it feels like the harbor is just chockablock. There&#8217;s boats cheek by jowl with other boats. They&#8217;re slamming into each other. And instead of it being a gentle rise, it&#8217;s stormy, clouds. The sea is choppy all over the place, and everything is sort of bumping into each other.</p>\n\n\n\n<p class="wp-block-paragraph">In other words, it&#8217;s saturated. If you are going to be doing the alt text plugin for AI, well, there were six that came out this morning. There&#8217;s going to be nine more by the time we close the doors this evening. Whatever it is that you are doing in the WordPress space, chances are somebody&#8217;s already done it. They may already have an existing audience. They may already have paid subscribers.</p>\n\n\n\n<p class="wp-block-paragraph">So this all sounds very bleak. It sounds like we&#8217;ve got no way out of this. But your endeavor, what you want to turn your attention to in the years to come, is to persuade people that&#8217;s not the case. So what is the rainbow? What is the shining light on the horizon? How would a plugin developer, a theme developer, somebody in the WordPress space, how do they cut through all of this and get noticed?</p>\n\n\n\n<p class="wp-block-paragraph">[00:17:28] <strong>Matt Cromwell:</strong> Yeah. A lot of things have changed over the years, but I would say the majority of things, when it comes to digital products, have not changed. And that&#8217;s really the brass tacks of what it takes to be a winning product on the web in general. SaaS companies have known this for a really long time because they didn&#8217;t have the obvious distribution channel of wordpress.org that we have.</p>\n\n\n\n<p class="wp-block-paragraph">So they knew if they were going to ship a product, they&#8217;re going to have to market it a ton. In the SaaS space, there&#8217;s very, very, very few just handy developers who are like, hey, I just built this cool thing, I&#8217;ll just put it out there. And then all of a sudden it just goes off like crazy. It doesn&#8217;t work that way, and they know it. And so they partner up with marketers.</p>\n\n\n\n<p class="wp-block-paragraph">And in the WordPress space, for way too long, we got lazy because we had the .org distribution channel. And we assumed that we could build it and people would come. And that&#8217;s not like one hundred percent wrong. The directory is still a good tool, and it&#8217;s still helpful, and I love the freemium model for products in general. But the thing that WordPress product folks in particular have to learn is to learn how to be a product business, not a code business.</p>\n\n\n\n<p class="wp-block-paragraph">And that&#8217;s even more significant now that everyone is learning that code was never the product, because now nobody is building with code anymore. The humans do not build the code anymore. The machines build the code. And you&#8217;ll find lots of marketers or CX folks who are building their own apps now as well because they&#8217;re savvy enough to use the tools to be able to generate the code that they need and that they want.</p>\n\n\n\n<p class="wp-block-paragraph">[00:19:11] <strong>Nathan Wrigley:</strong> Can I just pause for a second there Matt, is that all right? Just because there&#8217;s a couple of things that you said, and clearly for you it&#8217;s common knowledge. You know, you&#8217;ve been in and out of this all the whole time. You painted a strong definition there between a product and code. What&#8217;s the boundary between those two things? I mean, I think I can encapsulate, I just want to be clear that the audience know. What&#8217;s the difference between product and code businesses, if you know what I mean?</p>\n\n\n\n<p class="wp-block-paragraph">[00:19:33] <strong>Matt Cromwell:</strong> Let&#8217;s go back to when you said, I&#8217;m building my website and I have a problem that needs to be solved, and I see this plugin and it solves my problem. And I installed it, or I bought it and I installed it and it worked. That process that you went through, all of those things that you said, you never once said, I inspected the code to figure out if it was good enough or not. You never once said that. All of the things that convinced you to use that product had nothing to do with the code at all.</p>\n\n\n\n<p class="wp-block-paragraph">You went to the website and there was marketing involved that told you that we know what your problem is, and we know how to solve it. And there was a checkout experience that was calm and soothing enough and giving you enough confidence that they&#8217;re not just stealing your money. Then you installed the product and there was a user experience involved that made you feel like it&#8217;s actually going to solve your problem, and then it did actually solve your problem. All of those things cannot happen without code, but that is what a product does. And that&#8217;s a product experience, is the whole entire customer journey that happens from discovery, to purchase, to adoption is what a product is actually made of.</p>\n\n\n\n<p class="wp-block-paragraph">[00:20:43] <strong>Nathan Wrigley:</strong> So I&#8217;m going to infer from that then that from the year 2026 and onwards, what you are saying is that the focus now needs to be on the product. More than ever, the product and the way that you market the product and the way that you pitch the product, and all of the things that wrap around the sales process and the discovery process of the product. That&#8217;s where a significant amount of the effort needs to go once the code is in place. Have I parsed that correctly?</p>\n\n\n\n<p class="wp-block-paragraph">[00:21:11] <strong>Matt Cromwell:</strong> Yeah, I might even go at it from the perspective of the customer because you only understand the product when you look at that whole thing through the lens of the customer. If you think about everything from, oh, I can build that, I just need to pipe these APIs and do this kind of thing, and then you get the outcome, it&#8217;s like, well that&#8217;s not really what the customer&#8217;s ever going to experience.</p>\n\n\n\n<p class="wp-block-paragraph">They&#8217;re going to experience a website first. They&#8217;re going to try to have trust first. Look at the whole thing through the customer lens and then you&#8217;ll start to understand your product. I mean, you&#8217;ll understand your brand in the first place. A lot of WordPress folks don&#8217;t think about brand particularly well either. They just name it like Advanced Custom Fields. Now, I love that product. It&#8217;s a great, but it&#8217;s one of those things where like, let&#8217;s just name it what it is. Okay, I guess.</p>\n\n\n\n<p class="wp-block-paragraph">[00:22:04] <strong>Nathan Wrigley:</strong> So this is really interesting. So presumably then, if product is the way forward, it feels like you have now kind of invented a new career angle for yourself where you are going to hopefully kind of helicopter yourself in, or be helicoptered in, to businesses who maybe have got this product bit missing. You know, there are bits of that they, I don&#8217;t know, maybe they feel that they&#8217;re weak on that, or that past endeavors haven&#8217;t really worked out. Or maybe they&#8217;re at the first step of that journey and they just want to try and figure out what direction they should point themselves in to have some success.</p>\n\n\n\n<p class="wp-block-paragraph">So that&#8217;s kind of interesting. That&#8217;s the role that you are going to be taking on in the future. And I can see you nodding. Dear listener, he&#8217;s nodding away, so that&#8217;s good. But, do you have like a one size fits all template here, or is the endeavor very much to be, okay, I&#8217;m going to go in, have a long listen, figure out how you differ from the other people that are on my roster? There&#8217;s not really a question in there, but I&#8217;m kind of asking you how you are going to position yourself for the different clients that you&#8217;re no doubt going to be taking on.</p>\n\n\n\n<p class="wp-block-paragraph">[00:23:06] <strong>Matt Cromwell:</strong> Yeah, yeah, Well, one thing I&#8217;ll caveat a little bit is I&#8217;m trying to position myself towards two related audiences. The primary one, for the fractional CGO, is the teams. Product shops that are a team of people. A small team, medium sized team. They&#8217;ve built something, it&#8217;s successful, they are paying employees, but they&#8217;re looking for that next level up, in order to start growing into what they hope to be, more sustainable growth in the long term.</p>\n\n\n\n<p class="wp-block-paragraph">The other one is what I call the solo lab, where I am trying to position more towards solo individual founders who are by themselves and maybe just got their product out the door and are trying to grow from the ground up. That&#8217;s more of like a coaching environment and it&#8217;s a group environment and things like that. But both of them are, it&#8217;s not that there&#8217;s a, I don&#8217;t believe really in playbooks. I don&#8217;t believe in silver bullets. I believe in process and diligence.</p>\n\n\n\n<p class="wp-block-paragraph">And that&#8217;s what I am trying to bring in both of those circumstances is I help the solo folks understand the type of activities that they have to force themselves to do. The solo folks typically are very dev oriented. They know how to build more things. And if you ask them to write a blog post, they&#8217;re like, okay, I&#8217;ll do that tomorrow and tomorrow never comes. You know, helping them to focus on the work that they have to do to grow their product.</p>\n\n\n\n<p class="wp-block-paragraph">While the teams, it&#8217;s more generally about, they have founders who have done all the things. They have been the dev, they have been the HR lead, they have been the marketer, they have been the support guru. They&#8217;ve done all of it, and they&#8217;re just tired. And they need the growth but there&#8217;s just a missing gap. They need somebody to kind of put on the hat of, you are going to be responsible for finding growth in this team, so that that founder can focus more on other parts, the things that energise them more.</p>\n\n\n\n<p class="wp-block-paragraph">[00:24:59] <strong>Nathan Wrigley:</strong> I&#8217;m curious as to whether or not, when you were doing the busy work of being at GiveWP and then StellarWP, whether you drew the intuitions that you are now going to be helping people with. Whether you were aware of this in your head, or it was just the busy work that you were doing. You know, day in, day out, you do this task and over the decade or more that you were doing it, you just kind of perfected it. And, okay, when this thing arises, I do this thing. And when this thing arises, I do this thing.</p>\n\n\n\n<p class="wp-block-paragraph">Now I expect you&#8217;re in that curious position where you are having to lift yourself away from the whole process, stare back at it, and sort of examine how you would do it with a third party. Again, there&#8217;s no real question there, but I&#8217;m curious as to how different that is for you being the outsider, but relying on the insider knowledge that you must have acquired over time.</p>\n\n\n\n<p class="wp-block-paragraph">[00:25:49] <strong>Matt Cromwell:</strong> Yeah. I think that&#8217;s one of the reasons why I felt a certain amount of confidence in moving in this direction is because I&#8217;m helping people that are in the position I was in years ago. I&#8217;ve been there and I have done that, and I have absolutely failed. And I don&#8217;t have a perfect record or a perfect playbook, but I know what it&#8217;s like, and I have done the hard work to see successes.</p>\n\n\n\n<p class="wp-block-paragraph">I think what also makes my experience a little bit unique is that I had the experience of GiveWP and I honestly, going into being acquired and working at Liquid Web, I had that whole feeling of like, what if I&#8217;m a one hit wonder? What if I like did a great job with Give, but I try to apply this anywhere else and it just is like, well you got lucky with Give, that doesn&#8217;t work anywhere else? And it turns out that most of the things that I learned can be applied to other products with success as well. It does give me a fair amount of confidence that I do believe I can be helpful with these other shops.</p>\n\n\n\n<p class="wp-block-paragraph">[00:26:50] <strong>Nathan Wrigley:</strong> You&#8217;re not sort of saying there&#8217;s a formula, you know, that kind of snake oil mentality. But there are wise things to do and less wise things to do. Let&#8217;s just put it that way. And by repeating the wise things over and over again, you give yourself kind of a fighting.</p>\n\n\n\n<p class="wp-block-paragraph">[00:27:05] <strong>Matt Cromwell:</strong> Yeah, and there&#8217;s a process and there&#8217;s also the ability to form smart priorities. That&#8217;s, I think, a lot of what I&#8217;m trying to help provide is being able to help founders learn how to say no to a lot of things. Because sometimes, especially when it comes to anything that&#8217;s growth oriented or marketing oriented, we see a million opportunities. And so then we start dabbling in all the things because we don&#8217;t know what else to do.</p>\n\n\n\n<p class="wp-block-paragraph">We&#8217;re like, oh, there&#8217;s like, I can go and jump into Reddit and find a whole bunch of leads, or I can like spend a bunch of time on LinkedIn, or I could write a whole bunch of really good emails, or I can maybe do a paid ad campaign. And then we start doing just like a million small things. But that doesn&#8217;t lead to growth, you know? So the ability to prioritise around growing rather than noise and activity.</p>\n\n\n\n<p class="wp-block-paragraph">[00:27:57] <strong>Nathan Wrigley:</strong> I think it&#8217;s just really nice to be able to put down the scatter gun. You know, that thing that you&#8217;re firing tiny pellets in a million different directions. But you put the scatter gun down because somebody says, put the gun down because that&#8217;s not effective, and here&#8217;s why it&#8217;s not effective, and here&#8217;s some things that you could do to try which might be more effective.</p>\n\n\n\n<p class="wp-block-paragraph">There&#8217;s just something nice in listening to the words of wisdom coming out of somebody else&#8217;s mouth who&#8217;s obviously been there, done that. It&#8217;s kind of hard to put that into words, but just knowing that somebody&#8217;s got your back, and that somebody&#8217;s been through that before. And the million, gazillion little things that you are trying without a great deal of success are things that you can put away and listen to your advice.</p>\n\n\n\n<p class="wp-block-paragraph">I feel that you&#8217;ve hit a real vein of, well, let&#8217;s go fruit. You&#8217;ve got that in the title of your business. And the reason I say that, and I&#8217;ve said this in this podcast a few times before, it really does feel like there are an awful lot of people who have done the code side of things in our ecosystem. They are, as you&#8217;ve described, you know, you used the word nerd or something like that. They have built this thing with very little thought for the business side of it because WordPress, for many people, has been like this sort of hobby thing, this passive income thing, this side gig kind of thing. But they don&#8217;t know how to do it. And I get email, no doubt you get email, and certainly will be getting email, about this kind of thing. And so I feel that there is a real undercurrent of people who hopefully will tap into your service. Let&#8217;s hope so anyway.</p>\n\n\n\n<p class="wp-block-paragraph">[00:29:29] <strong>Matt Cromwell:</strong> Yeah, let&#8217;s hope so. So far, so good. I&#8217;ve already secured a couple folks.</p>\n\n\n\n<p class="wp-block-paragraph">[00:29:33] <strong>Nathan Wrigley:</strong> In which case, we&#8217;re sort of around the half an hour mark, which is exactly perfect. So I will just point the people to the domain once more. It is rootsandfruit.com. Go check that out. Where would we find you, apart from the contact us form, which no doubt exists on that website? Where might we find you elsewhere online, Matt?</p>\n\n\n\n<p class="wp-block-paragraph">[00:29:52] <strong>Matt Cromwell:</strong> I have been on LinkedIn a lot. So look for Matt Cromwell on LinkedIn. You can also look for Roots &amp; Fruit on LinkedIn. That&#8217;s kind of where I prefer, but I&#8217;m also on the nefarious x.com as learnwithmattc.</p>\n\n\n\n<p class="wp-block-paragraph">[00:30:06] <strong>Nathan Wrigley:</strong> Well, good luck with the new adventure, Matt. I really hope it works out well and, yeah, speak to you soon.</p>\n\n\n\n<p class="wp-block-paragraph">[00:30:12] <strong>Matt Cromwell:</strong> Thanks.</p>\n</div></details>\n\n\n\n<p class="wp-block-paragraph">On the podcast today we have <a href="https://rootsandfruit.com">Matt Cromwell</a>.</p>\n\n\n\n<p class="wp-block-paragraph">Matt has been an influential figure in the WordPress ecosystem for many years. He co-founded GiveWP, led its growth, and continued his journey as part of the StellarWP leadership after it was acquired. Recently, Matt has shifted gears, launching something new. It’s called Roots and Fruit, and is an agency dedicated to helping WordPress product businesses thrive.</p>\n\n\n\n<p class="wp-block-paragraph">In recent years, WordPress has gone through a period of flux. There’s been shifting stats about WordPress’ market share, tightening budgets, and increasing competition from both within and outside the .org plugin repo. Despite these changes, Matt remains optimistic about the opportunities for product makers, especially as WordPress evolves alongside emerging technologies like AI.</p>\n\n\n\n<p class="wp-block-paragraph">Matt starts off by sharing his background, his experience with GiveWP, and the unique perspective he gained navigating growth, crisis, and the challenges facing plugin developers. We then talk about how the WordPress product space has matured, why building a plugin or theme and hoping users will simply discover it is no longer enough, and how focusing on the customer journey, branding, and marketing is more crucial than ever.</p>\n\n\n\n<p class="wp-block-paragraph">Matt is now positioning himself as a mentor and guide for solo founders and product teams, helping them prioritise growth efforts, refine their product experience, and avoid the scattered approach that many developers fall into. He brings practical insights from years of hands-on experience, and explains why a successful WordPress product business relies on process, diligence, and wise prioritisation, not just code and hope.</p>\n\n\n\n<p class="wp-block-paragraph">If you’re building digital products in WordPress and want to learn how to make them stand out in a crowded, competitive ecosystem, this episode is for you.</p>\n\n\n\n<h2 class="wp-block-heading">Useful links</h2>\n\n\n\n<p class="wp-block-paragraph"><a href="https://givewp.com">GiveWP</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://www.liquidweb.com">LiquidWeb</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://stellarwp.com">StellarWP</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://rootsandfruit.com">Roots and Fruit</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/mattcromwell/">Matt on LinkedIn</a></p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://x.com/learnwithmattc">Matt on X</a></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 18 Feb 2026 15:00:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:14:"Nathan Wrigley";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:30;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"Matt: Boris Cherny";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151268";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:35:"https://ma.tt/2026/02/boris-cherny/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:298:"<p class="wp-block-paragraph">I really enjoyed this conversation with the creator of Claude Code.</p>\n\n\n\n<figure class="wp-block-embed alignwide is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Wed, 18 Feb 2026 06:26:46 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:31;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:69:"Open Channels FM: Building Better Habits for Freelancers and Creators";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:34:"https://openchannels.fm/?p=1650060";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:76:"https://openchannels.fm/building-better-habits-for-freelancers-and-creators/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:197:"Bob and Cami discuss balancing good and bad habits, focusing on productivity strategies, managing distractions like social media, and fostering community, while preparing for future podcast topics.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Tue, 17 Feb 2026 02:30:00 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:32;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:50:"Open Channels FM: A Founder’s Podcast Tech Stack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:33:"https://openchannels.fm/?p=115142";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:54:"https://openchannels.fm/a-founders-podcast-tech-stack/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:139:"Our founder Bob shares his tech stack for podcasting, detailing essential tools and gear used for production, scheduling, and organization.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 16 Feb 2026 10:09:49 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:8:"Bob Dunn";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:33;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:17:"Matt: High Agency";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151251";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:34:"https://ma.tt/2026/02/high-agency/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:305:"<p class="wp-block-paragraph">One term that keeps coming up in discussions about thriving in the AI era is &#8220;high agency.&#8221; <a href="https://www.highagency.com/">This 30-minute longread by George Mack is a great way to get you thinking about how high or low agency shows up in your life</a>.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Mon, 16 Feb 2026 00:55:01 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:34;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:99:"Gutenberg Times: Gutenberg Changelog #126 – Gutenberg Releases 22.3, 22.4, 22.5 and WordPress 7.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:53:"https://gutenbergtimes.com/?post_type=podcast&p=44383";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:111:"https://gutenbergtimes.com/podcast/gutenberg-changelog-126-gutenberg-releases-22-3-22-4-22-5-and-wordpress-7-0/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:64765:"<p class="wp-block-paragraph">In this episode, Birgit Pauli-Haack welcomes Carolina Nymark back to discuss recent Gutenberg releases (22.3, 22.4, 22.5) and preview features coming in WordPress 7.0. Birgit Pauli-Haack shares her recovery journey and emphasizes the value of Carolina Nymark’s expertise. Carolina Nymark introduces herself as a long-time WordPress core committer and theme bundle maintainer, explaining her role in triaging, testing, and updating default themes.</p>\n\n\n\n<p class="wp-block-paragraph">They highlight key updates in the Gutenberg plugin and developer resources, such as enhanced plugin settings page creation, streamlined theme development using WordPress Playground and GitHub, and new tools for AI integration. The hosts dive into major Gutenberg enhancements: block visibility controls now let users tailor which blocks appear on various devices, custom CSS can be applied to individual blocks in posts, and image cropping has become more intuitive. Pattern editing is stabilized, improving content-only editing and preventing accidental layout changes.</p>\n\n\n\n<p class="wp-block-paragraph">Notable new features include a dedicated fonts page in the appearance menu, improvements to navigation (like mobile overlays and submenu options), a responsive grid block, enhanced breadcrumbs and tabs blocks, and greater customization in the query and image blocks. They touch on the growing importance of collaborative tools—real-time editing and notes within WordPress—and mention plans for visual revision comparisons.</p>\n\n\n\n<p class="wp-block-paragraph">Throughout, Birgit Pauli-Haack and Carolina Nymark stress community involvement, feedback, and testing as crucial for these features’ success. The episode wraps up with encouragement to try the new capabilities, share feedback, and a reminder to balance tech work with life outside the screen.</p>\n\n\n\n<p class="wp-block-paragraph"><a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-69-gutenberg-releases-wordpress-6-0-1-the-create-block-theme/#shownotes">Show Notes</a> / <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-69-gutenberg-releases-wordpress-6-0-1-the-create-block-theme/#transcript">Transcript</a></p>\n\n\n\n<ul class="wp-block-list">\n<li>Editor: <a href="https://www.linkedin.com/in/sandy-reed/">Sandy Reed</a></li>\n\n\n\n<li>Logo: <a href="https://markuraine.com/">Mark Uraine</a></li>\n\n\n\n<li>Production: <a href="https://icodeforapurpose.com">Birgit Pauli-Haack</a></li>\n</ul>\n\n\n\n<p class="has-larger-font-size wp-block-paragraph" id="shownotes"><strong>Show Notes</strong></p>\n\n\n\n<h2 class="wp-block-heading">Special guest: Carolina Nymark</h2>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://profiles.wordpress.org/poena/">WordPress Profile @poena</a></li>\n\n\n\n<li><a href="https://x.com/carolinapoena">On X (former Twitter) @carolinapoena</a></li>\n\n\n\n<li><a href="https://fullsiteediting.com/">FullsiteEditing.com</a></li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"></p>\n\n\n\n<h2 class="wp-block-heading">WordPress Developer Blog</h2>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://developer.wordpress.org/news/2026/02/whats-new-for-developers-february-2026/">What’s new for developers (February 2026)</a> </li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2026/01/whats-new-for-developers-january-2026/">What’s new for developers? (January 2026)</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2026/01/how-to-use-dataform-to-create-plugin-settings-pages/">How to use DataForm to create plugin settings pages</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2026/01/streamlining-block-theme-development-with-wordpress-playground-and-github/">Streamlining block theme development with WordPress Playground and GitHub</a></li>\n\n\n\n<li><a href="https://developer.wordpress.org/news/2026/02/from-abilities-to-ai-agents-introducing-the-wordpress-mcp-adapter/">From Abilities to AI Agents: Introducing the WordPress MCP Adapter</a></li>\n</ul>\n\n\n\n<h2 class="wp-block-heading">Gutenberg Releases </h2>\n\n\n\n<ul class="wp-block-list">\n<li><a href="https://make.wordpress.org/core/2026/02/04/whats-new-in-gutenberg-22-5-04-february/">What’s new in Gutenberg 22.5? (04 February)</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2026/01/22/whats-new-in-gutenberg-22-4-20-january/">What’s new in Gutenberg 22.4? (20 January)</a></li>\n\n\n\n<li><a href="https://make.wordpress.org/core/2025/12/17/gutenberg-22-3-december-17/">Gutenberg 22.3 (December 17)</a></li>\n</ul>\n\n\n\n<p class="wp-block-paragraph"></p>\n\n\n\n<p class="has-large-font-size wp-block-paragraph">Stay in Touch</p>\n\n\n\n<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">\n<ul class="wp-block-list">\n<li>Did you like this episode? <a href="https://lovethepodcast.com/gutenbergchangelog"><strong>Please write us a review </strong></a></li>\n\n\n\n<li>Ping us on X (formerly known as Twitter) or send DMs with questions. <a href="https://twitter.com/gutenbergtimes">@gutenbergtimes </a>and <a href="https://twitter.com/bph">@bph</a>.</li>\n\n\n\n<li><em>If you have questions or suggestions, or news you want us to include, send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. </em></li>\n\n\n\n<li><em>Please write us a review on iTunes! <a href="https://gutenbergtimes.com/itunes/">(Click here to learn how)</a></em></li>\n</ul>\n</div></div>\n\n\n\n<p class="has-large-font-size wp-block-paragraph" id="transcript"><strong>Transcript</strong></p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Welcome to our 126th episode of the Gutenberg Changelog Podcast. In today&#8217;s episode, we will talk about Gutenberg releases 22.3, 22.4, and 22.5. And in certain parts also about WordPress 7.0. I&#8217;m your host, Birgit Pauli-Haack, curator at the Gutenberg Times and a full-time core contributor for the WordPress open source project sponsored by Automattic. Dear listeners, have you missed me? I missed you. My voice is still not entirely recovered from the surgery I had in December. Everything else turned out totally okay. But I&#8217;m really glad I have Carolina Nymark back on the show and on my side. We will go through these last 3 Gutenberg releases that were released since before the holidays. So let&#8217;s start with you, Carolina. Please tell our listeners briefly who you are and what you do. Glad you&#8217;re here. Thank you for coming.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Hi, thank you for inviting me again. It&#8217;s been a while. So my name is Carolina Nymark. I am from Sweden. I am a WordPress core committer and a bundled theme component maintainer. I previously worked at Yoast, but from mid-February, I&#8217;m now unemployed and I hope to come back to contributing to WordPress. And I&#8217;ve been away for almost a year, so I&#8217;m excited and looking forward to going back and seeing what you have been working on for the past year. Not only these 3 Gutenberg releases.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>Well, yeah, we missed you, Carolina. That&#8217;s for sure. Yeah. Your voice of reason and creativity was really missing at some point. Yeah. I know you also— what does it mean, a theme bundle maintainer? Maybe you can explain that to our listeners.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> It means that when someone finds a bug in the default themes like Twenty Twenty-Five or Twenty Twenty-One, we triage new reports. We help sort people who should go to the support forum and who can, you know, who should be actually opening a ticket in the ticket system. Then we help people who are creating a pull request for these bugs and we test the pull request and we eventually update the themes. And when we update the themes, there is a new release in the Theme directory.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Oh, okay. So even if you, if the default theme is Twenty Twenty-Five, which came out in December &#8217;24, but that&#8217;s now in its version 1.4.5, 1.5 or something like that. So all the releases before that were done by Theme Bundle maintainers since the first release. Cool. I understand that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> But only, but yes, we do have a couple of component maintainers who are working actively on it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, yeah, it&#8217;s not all you. Nobody can really do it all by themselves in the WordPress Contributor teams.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Most of the updates are actually part of the major releases.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Oh, okay. So, and if people who don&#8217;t know you from before you had to stop contributing, you&#8217;re also the maintainer of a website called fullsitediting.com. Which has some great tutorials on theme building, on block themes, and also on getting started. There is a block theme starter kit there, yeah, where you can select, do you have one, a basic and advanced or full advanced kind of theme? And then on, on the press of a button, you can download a whole theme building kit, which I have found quite helpful learning everything. So Check it out, fullsitediting.com.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Thank you. Uh, yeah, I just found that the best way for me to learn was to really deep dive into, you know, if I found something difficult, the best way was to go back and, you know, read the code and test things and look at what other people have, you know, recorded YouTube videos about and, you know, actually sit down and write it in my own words. That&#8217;s how I learn. The best. That&#8217;s what I did. And I published those articles or lessons on the site.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, that was absolutely genius. And I think you started in 2020 with that during the pandemic. Yeah. So when the full site editing team was kind of getting started. Yeah. We also have some back then, some videos and you were on that. So we, we have quite some, you&#8217;ve been right at the forefront of all this cool stuff now.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark</em>: Yeah, it&#8217;s, it&#8217;s still strange that it was so long ago. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> But yeah, good things take its time. They have to take time. So I think it will be good to get started because we don&#8217;t have a whole lot of time, but we need to go through a whole lot of stuff.</p>\n\n\n\n<h3 class="wp-block-heading">What’s Released &#8211; WordPress 6.9.1</h3>\n\n\n\n<p class="wp-block-paragraph">So we start with WordPress 6.9.1 has been released and it&#8217;s a maintenance release with 49 bug fixes throughout core and the block editor. And then the release was led by Aaron Jorbin and Aki Hamano. And they have release posts. And if your site has automatic minor updates, you already have it, but you should definitely update now manually. I&#8217;ll share the release post in the show notes in the interest of time because they were all bug fixes. So you can do your deeper dive from there. </p>\n\n\n\n<p class="wp-block-paragraph">I also want to point out, because we cannot cover everything, point out some updates on the WordPress official developer blog. There were two What&#8217;s New for Developers posts published by Justin Tadlock, and the one from January as well as from February, and that gives you probably also what is not covered with Gutenberg plugin releases that might come into WordPress 7.0. So you can catch up there. And then there were 3 tutorials published on the developer blog in January and February. One was to use the data form to create plugin settings pages, which is pretty interesting because you use WordPress&#8217;s own component for the settings pages. You don&#8217;t have to make any, not a whole lot of design decisions. You definitely have to. You don&#8217;t have to maintain that code for the components because that&#8217;s done by the core developers. So you have a streamlined pathway to your plugins and that tutorial walks you through it. Yeah, there&#8217;s also one that&#8217;s called Streamlining Block Theme Development with WordPress Playground and GitHub. That kind of covers the problem space that most, a lot of designers want to design their theme in the site editor. Over the global styles and the patterns and all that. But how does that— and everything there is stored in the database. But then there is a theme. So how does all that new or changed modifications all go back to the file system is through Playground and GitHub and the Create Block Theme plugin. </p>\n\n\n\n<p class="wp-block-paragraph">So these three tools play together so you can as a designer just work in the site editor and then post a PR to GitHub for the developers to sign off on and get it all into version control, which is pretty much the whole— yeah, developers get really antsy when they don&#8217;t have control over code or over settings. So this is a good way to work together with developers on, on a theme development. And then the third one was about the abilities for AI agents when Justin— no, not Justin, Jonathan Bossinger introduces the WordPress MCP adapter that was published by the Core AI team and to see how that all works together. So those are good. It kind of covers the whole thing, range of developer things on the developer blog, of course. Any thoughts about that, Carolina?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, I mean, especially the settings pages for me who doesn&#8217;t, you know, normally create plugins. I really like that because it just seems like such a huge time saver to not have to do it from scratch. I mean, the choice of the topics, it&#8217;s really great.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> And if you, Carolina, now on you, if you have a topic that you want to talk about and you want to write about because you want to discover it, like you said, the full site editing, I have the right place for you. That&#8217;s the developer blog. That&#8217;s how I approach it as well. If I want to deep dive into a certain topic, I say, okay, I&#8217;m going to write about on the developer blog and then we&#8217;ll me through an example plugin or example theme or something and then walk through my steps and then publish it. So I&#8217;m inviting you to kind of think about things.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I mean, there is a GitHub repository. I know that there is a list of suggested topics that someone needs to pick up and write about.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> We have a few topics that are not— that are approved by an editorial kind of group that haven&#8217;t been picked up by writers yet. So that&#8217;s definitely the first thing you can look at. But if it doesn&#8217;t fancy you, go ahead and just suggest your own topics. We will have the next meeting on the first Thursday of the month, every month. So get it in before that, and then you can start writing after the approval. And for the listeners, there is a subscribe button on the— or subscribe feature on the WordPress Developer Blog. So you will never miss another post again if you haven&#8217;t looked at any of those before. All right. </p>\n\n\n\n<h3 class="wp-block-heading">Gutenberg Releases</h3>\n\n\n\n<p class="wp-block-paragraph">I think we need to get started on the Gutenberg releases. So this time we&#8217;re going to do it a little bit differently because we have 22.3, 22.4, and 22.5 Releases to cover and with over 700 PRs over all three releases. All we can do today is pick and choose and summarize features. Most of them have been worked on for the upcoming WordPress 7.0 release, but there are also updates that lay the foundation for future WordPress releases or that might not get into 7.0. So whatever we say today that might go or that will go, we only know it next week for sure, because that&#8217;s when the WordPress 7.0 beta 1 comes out. And beta 1 is always— there have been exceptions though— feature freeze. And then 4 weeks later is the release candidate 1. That&#8217;s the string freeze. But between beta 1 and release candidate 1, there&#8217;s a whole 4 weeks where we work on bug fixes that come out of the release or from other places. So that&#8217;s when we know. And yeah, so I link in the show notes to all 3 release posts from the Gutenberg releases. And so you can follow up on the specifics. </p>\n\n\n\n<p class="wp-block-paragraph">So first, a few numbers. I said one number already, that&#8217;s 700 and over 700. The next one is 22.3 had 131 PRs among them, 23 enhancements, 36 bug fixes. 22.4 was a whopper. It had 406 PRs. So many because we skipped the schedule around the holidays. So there it&#8217;s a 4-week period and that&#8217;s what you get. You get 100 PRs per week and it includes 119 enhancements and 86 closed bugs and 22.5, which was released just last week with 153 PRs and 49 enhancements and 39 bug fixes. So yeah, you might appreciate that we are cutting down on going PR by PR. So, but let&#8217;s go on to some of the features. Are you ready, Carolina?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Well, yes, but I also just want to say thank you because I know that you have helped publish some of these releases, including the latest minor. You&#8217;re the one who&#8217;s been pushing the button so that the rest of us can download the updates in our, you know, through our WordPress installations. So thank you.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> You&#8217;re welcome. You&#8217;re welcome. It&#8217;s always fun to get through some of the releases. So I, yeah, I released 22.3 and 22.4. My coworker on the team, Juan Margorito, did the whopper, the 22.4, and in between we kind of looked again on the release documentation because we all kind of hit some blockers there where we needed help. And so yeah, it&#8217;s definitely something interesting to do once in a while. </p>\n\n\n\n<p class="wp-block-paragraph">But I must say the automation of those releases is really well thought through. Yeah, so If you want to try it, if you have been a core contributor and on the Gutenberg release, on the Gutenberg and a member of the Gutenberg team, GitHub team, contact us if you want to get into release processes. All right. </p>\n\n\n\n<h3 class="wp-block-heading">Major Features</h3>\n\n\n\n<p class="wp-block-paragraph">So the major features, the first one is it&#8217;s random. There are a lot of good ones in there, but it&#8217;s not the first one. It&#8217;s not in the order of importance. So block visibility controls. In 6.9, we had the hide button. You can hide it or show it, but you couldn&#8217;t really say when and not when. It&#8217;s only yes or no, which was good when you do just draft sections or you have holiday things and you just want to switch it off. But now we have viewport-based visibility rules. Do you know more about it, Carolina?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I&#8217;ve tried it. I also read a couple of the comments in their pull requests. Actually, I struggled a little bit with finding where it was, and then I remembered, yes, it&#8217;s actually in the list view. So when you open your post or page and you go to the list view, you have the visibility control, and then you have the additional options with the different viewports, and it&#8217;s a checkbox. So it&#8217;s super easy to use. And yes, of course, it works well on the front end. It&#8217;s hidden depending on the CSS class name on the block. But I&#8217;m really interested in knowing what&#8217;s next. Speculations, like when are we going to be able to change, you know, our custom viewport sizes? When do we, as, you know, site owners or developers, When can we decide? Very curious to find out that. But yeah, it&#8217;s very, very easy to use. It&#8217;s excellent if you need to do something quick.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, definitely. And kind of mobile is everything under 480 pixel width. Tablet is between 480 and 782. I don&#8217;t know where the 2 comes from. Can&#8217;t we do just round numbers? And then the desktop is everything the desktop view, viewport is everything above 782 pixels. It works, yeah, just out of the box. And the only thing I found is when you want to test it and you just do it by using the browser view, sometimes it doesn&#8217;t— the browser small one doesn&#8217;t get under 480. So, but yeah, I use it through the developer tools and then see it as well.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah. So speaking of doing something quickly, the next feature we chose was the custom CSS for individual blocks. So previously we&#8217;ve had, you know, you select your block and you can add a class name and then your CSS is elsewhere in a CSS file or maybe even in the customizer CSS setting. Who knows if you&#8217;re using it, you know. An old theme. But now you can actually add CSS directly in the editor when you&#8217;re selecting your block. And this CSS is of course only applied to that specific block. So if you have two groups, they will have diff— they will look differently because only one of them is gonna have this CSS. So the difference between the old setting, which was in the site editor, that was for every single block. That was for all the groups. All the paragraphs. And this setting is for the individual single block on that specific post or page.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. And there&#8217;s another, I don&#8217;t know if you had this. I really like this because now you have post and it&#8217;s not only for this block. It&#8217;s just the block in this post. Yeah. So it will, every post has a new set of blocks that need to be customized CSS. So if you do it twice, think about it, go back to the styles. To the blocks and put it in your global styles so you don&#8217;t— you remember, okay, it&#8217;s always going to look like that. But I think in the process of making decisions for your whole site, that&#8217;s a really good place to try something out, to see how it drives. And then once you know, okay, this is the right setting or this is the right way to do it, then you kind of take it out of there and put it into your global styles. There&#8217;s also a global styles custom CSS that&#8217;s actually hidden, but then you go to the styles three, three dot menu on top of the styles section. And there is the additional CSS that kind of covers the whole site.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: And then another place to do custom CSS is actually in the theme.json file. And that&#8217;s kind of the best way to get it out of the hands of users and cement it there so you can lock down some of the blocks. Some designers really want to have those guardrails. And I need to look for the dial to turn it off.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So, yeah, in theme JSON, you can have the CSS for the entire site. For example, if you need to change something on the body Or, and you also have the CSS for the individual block types, but never for a single block.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So when everything is in the play, it&#8217;s going to be hard for designers to track down some CSS things that are not working right. I have no idea how to actually mitigate that problem. There&#8217;s one feature request to have for the individual blocks in the post that there is in the list view a little CSS kind of thing to know, okay, which block actually has custom CSS. So you don&#8217;t have to go through every block, through every paragraph block, for instance, if you have one kind of stands out, but we&#8217;ll see how that works.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So for example, if you add a very simple CSS for a text color to a paragraph block, and then you go to the color settings, the color settings, if you pick a color in the color picker, will actually override your CSS unless you start using CSS important. Then your CSS is going to override the color settings. So this is, this is, you know, that&#8217;s something that I looked at immediately and it seems like it&#8217;s been tested really thoroughly and everything seems to work as, you know, as it should. So I like that. Seems to be tested really well.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, so the next thing is image cropping tools. Well, we were able to crop images in the editor as well as in the media library, but it was very haphazard. It was kind of, it wasn&#8217;t very intuitive. And now you can, it&#8217;s much easier to do that. There&#8217;s a new package built that works in the media library as well as in the editor. And now you can crop either by certain aspect ratio, or you can actually have drag and drop that you know from other graphics programs, how to crop things. So you can really go in and pixel perfect crop it without having to figure out how to enlarge it so I can crop it. It&#8217;s kind of, that&#8217;s my brain always had a hard time with it. I have to zoom in so I can crop it. So now I can just say, okay, here, this is the rectangle that I wanted to crop to. You can also rotate it. And what was the other one?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark</em>: Yeah, the support for the rotation is supposed to be better. That&#8217;s what I read. If I understand correctly from a developer perspective, it&#8217;s now also a public package. So it&#8217;s much easier for you as a third-party developer, plugin developer, to actually use the new image copy package now than before. So that&#8217;s good. </p>\n\n\n\n<p class="wp-block-paragraph">Next we have stabilized pattern editing. So this is something that has been in Gutenberg for a long while, I believe. But now it&#8217;s stabilized in a way because we want to add it to 7.0. And as a user, I believe that the biggest change is that when you insert a pattern, it&#8217;s kind of locked. You will see, for example, if I was testing patterns from 2026, from the bundled themes anyway. And yeah, so the colors are locked when you start, but you can start typing in, for example, headings and paragraphs. I believe that&#8217;s the biggest difference for users. The risk of breaking something is lower. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> What I also found is that there&#8217;s a new kind of entity there. It&#8217;s called the section that kind of guardrails the pattern. So it can do just the content-only editing and people can kind of feel a little bit secure in there. It also helps with changing the design, if there are style variations for certain blocks, that they can do it, but they cannot break out of the pattern. Yeah, the original pattern was that as soon as it&#8217;s on the canvas, the blocks are all individual blocks. There is no reference back to the pattern itself. And I think that has been, has been mitigated, yeah, it kind of gapped that that is possible if it has the content-only kind of attributes. It now can be followed back to the original pattern, I think. But its editing has been quite complicated. So making it easier with these new attributes and features is probably a good way to go to have a little bit more, so content creators who are not technically kind of, they have a better trust on the patterns and they can&#8217;t break things easily.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> They have to try harder to break it, which is good.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Try harder. Yeah. That&#8217;s what we say to developers. Oh, it works. Oh, I wanted to break it. Try harder.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> The panels do look a little bit different than before. But I do believe it&#8217;s easier.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> And the sidebar also has an additional tab in there. That&#8217;s the content tab. We&#8217;ll see it for the image block as well. And we see it in the patterns or even the COVID blocks, all those container blocks here, column blocks, and they have a sidebar now with the content. So it&#8217;s a little bit duplicated from the list view, but it&#8217;s just block-oriented. So you know exactly what&#8217;s in the block or in the section that you kind of highlight there. There&#8217;s another one that will come that&#8217;s a list view for the— the list view on the right is a different list view than to the left. Terms, it&#8217;s hard naming things. So we name it all the same. On the right-hand side, there is a list view when you have actually lists in your canvas. And you see the items in there and you can manage that from there and don&#8217;t have to kind of fiddle around with the canvas there. I don&#8217;t know. I think it&#8217;s people kind of try to figure out or contributors try to figure out what&#8217;s the best way to do that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So I haven&#8217;t seen that, but it sounds kind of like the separate list view for the navigation block. You&#8217;re dragging the in, you see the inner blocks and you can move them and you can delete them and et cetera.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> That&#8217;s exactly right. Yeah. Yeah, it&#8217;s for all those that have components inside, like the buttons block has other buttons inside. Those social icons block has social icons in there and you get them in that list view, the same as the list has multiple list items. So it was also important for the other combination of blocks that are coming to WordPress 7.0. Or have already been the accordion block, the tabs block, the breadcrumbs block. They all need additional detailed interfaces.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, they&#8217;re quite complicated compared to most other blocks, but they&#8217;re good additions.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Oh yeah, additions that we have been waiting for quite a bit. So the next thing on our list is the dedicated fonts page. So Block themes now have a dedicated fonts page in the appearance menu where you can go directly to managing your typography selection. And it moves from the controls and it was always hidden in the global styles under fonts controls. So who— nobody actually found it unless you deal with it on a day-to-day basis. You remember where to look. For those who are not working on block themes, the non-block support is planned. It will not make it into 7.0, but it&#8217;s definitely on the roadmap for the next following releases. </p>\n\n\n\n<h3 class="wp-block-heading">Navigation Improvements</h3>\n\n\n\n<p class="wp-block-paragraph">So navigation improvements. Oh, where they&#8217;re needed.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Well, I haven&#8217;t actually been able to test that. I tried, but I actually couldn&#8217;t figure out how to activate it. So maybe you can teach me.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So the idea of the feature is that you now have choices to create mobile overlays for your mobile versions. That&#8217;s another way to a full responsive design. And that you have, you were always having overlays were all available, but you weren&#8217;t able to edit them. And the way they do it now is to create a theme parts, the theme part like you do header and footer and call it overlays and then push it into the design for the navigation. So there is now on the right-hand side a menu where you can say for the overlay and you can pick the various parts and there are patterns for that. So the team also created a few patterns, I think 8, that will come with 7.0. So you can kind of have a selection. You don&#8217;t have to come up with the overlays yourself, or at least get started. So there is a— with the accent color or black backgrounds. And so you can also say, okay, always show the navigation, the overlays. That means that the navigation, it&#8217;s always the hamburger menu and even on the desktop side and then comes with the overlay. There is also a sidebar preview of those overlay patterns and some, some controls there to add blocks like you do with a navigation block as well, because what you do is actually have a navigation, a second navigation on your site. So it definitely needs testing. There is a call for testing out by the team who built it. It&#8217;s under the Make Test Block. And I will add it to the show notes. That&#8217;s the best way to learn is to kind of heed a call for testing and see what it&#8217;s supposed to work. Because Dave Smith published that a couple of weeks ago. And he also added videos how it was supposed to work. And so you can really follow up on that if you want to kind of dive into that because you&#8217;re so keen to doing it. Like Carolina is. Yes, it&#8217;s always hard to test something if you don&#8217;t know how it&#8217;s supposed to work. So it&#8217;s like jumping into a pool, not able to swim. I mean, if you don&#8217;t— there&#8217;s quite.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> A few buttons to choose from. Do I click here? Do I go there? Do I go to edit or navigation? Or do I go to my header? Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> It&#8217;s not a lot of choices. Or you can do it through your header and then the navigation block. So like that, that&#8217;s definitely a good entrance to do. Yeah. All right. I have not yet experimented with additional patterns for that. But I wanna kind of go in there and make my own patterns.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark</em>: You have 8 new designs. That&#8217;s really nice. That&#8217;s a lot. Can you just, you know, imagine the amount of work that went into this?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Big part of it was by Maggie Cabrera. Yeah, when she came out of sabbatical, so she, that&#8217;s how she jumped in to kind of get working on that, I think. Yeah, but the mobile menu overlays are not the only new advanced navigation features. There&#8217;s also the improvements on the submenu handling. You can say, okay, that always needs to be open, and then you can better handling of the custom overlays as well. Also, the link picker is a little bit easier to manage. And there were in previous Gutenberg releases that will come to 7.0, there was also background. When it&#8217;s not 100%, it&#8217;s opacity, the opacity of the background for the site menu. So because it goes over the website, so it needs to have a different background. And you can select the color as well as the opacity of it. So is it shine through or not? And so that&#8217;s kind of interesting as well.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I know so many users who have requested this, the feature to keep the submenu always open, especially if the menu is vertical, then you don&#8217;t always want to go there with your keyboard or hover over it to open it. So I think that one&#8217;s gonna be very well received.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. And it really helps with the left side navigation. That was, yeah, for the navigation block was really hard to do, but now with the submenus being always open and kind of you, you can organize them with the overlays and, or in a separate, yeah, it&#8217;s, it&#8217;s really nice to, to work with navigation that way.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>But. It&#8217;s always going to be complicated because there are some— oh, what they also fixed was that the links to pages are actually dynamic. So if you change the pages, the slug or the title, it kind of replicates it in the navigation menu. That was something that came over from the classic menus. And in the first iteration of the navigation block, that was not the case. That was all hardcoded and you had to, you had to kind of figure that out that if you change the page, you also needed to change all the navigation stuff. Yeah. So sometimes you think, oh, okay.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Well, we have to start with something.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Exactly.</p>\n\n\n\n<h3 class="wp-block-heading">Text Alignment Standardization</h3>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Right. Yeah. So next we have text alignment standardizations. I don&#8217;t believe that there is anything visible for the editor or the user for this, but this was something that we needed to do to enable other options that are planned because it was inconsistent. So different blocks had different settings and they were, you know, the code was, they actually did kind of the same thing, but in the code they had different names. It was kind of confusing.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> True. Yeah. And some of the blocks didn&#8217;t have text-align because they also were referencing that from the parent block. But now they do. And I have to update. There is a roster for all the design kinds of things, features we published for 6.8 and 6.7. And I guess I need to update it now for 7.0. I haven&#8217;t found a very good automatic thing yet, but I might be talking to my AI about that. So we can publish it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Maybe that&#8217;s good use of it. But you also have until April, I suppose.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Right, right, right, right. I can do it manually. But I&#8217;m also working on the source of truth for the other content creators in the space.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So thank you.</p>\n\n\n\n<h3 class="wp-block-heading">Enhanced Block Features</h3>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>Yeah, it&#8217;s a lot of stuff. To go through. Yeah. So it becomes— some blocks are just have been enhanced, and one is the COVID block now has a focal point picker for the fixed backgrounds. So if you have a background image, you can actually decide where&#8217;s the focal point of that. That&#8217;s good if you use a picture that it&#8217;s actually tall, but you use it in a horizontal cover block, you kind of— it crops it, but then you need to use the focal point picker to figure what&#8217;s actually in, in the block. The paragraph block got an enhancement of the text column support. So you could select that under typography that you can have a paragraph displayed in multiple columns automatically. And it kind of depending on the screen size, it kind of does the pattern, the columns there, which is really nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, classic design elements. And now you might need to use, for example, the row or column block, and you can just use your paragraph.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, and it&#8217;s flexible, so you don&#8217;t have to decide what&#8217;s happening with responsiveness and all that. Because sometimes well, anyway, it&#8217;s always a little hazard.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> We have some image block improvements and we already mentioned the improvements to the focal point picker for the COVID block, for example. We also have aspect ratio controls for wide and full width blocks, image blocks, excuse me. Because before this you could actually get a little bit weird results if you choose one of the aspect ratios that&#8217;s supposed to be wide and your block wasn&#8217;t wide, depending on, you know, how big you actually want it. So that&#8217;s nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, I tested this and I think the headline is a little bit confusing because the image block per se doesn&#8217;t have wide or full alignment. It&#8217;s only the hero section or so, the COVID block, if you put an image in there and then you couldn&#8217;t decide how it actually uses the image. So now you can select the aspect ratio for the image in the COVID block when it&#8217;s full or wide width.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Interesting.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. And then the other, that is a little bit of an orphan in there, the reorganize content tab and inspector controls. That&#8217;s what we talked about earlier, that there are additional tabs in the sidebar of the block editor. That is actually for the image block as well, where you can see the image in a small thing and then can click on it and replace it. So there are a few controls that were before in the block toolbar are now also replicated in the sidebar and for a content tab. And that also includes the alt text. So you don&#8217;t have to hunt for the alt text. It&#8217;s just in the default open content tab. </p>\n\n\n\n<p class="wp-block-paragraph">Next one is the breadcrumbs block. Well, that breadcrumbs block comes into, will come for 7.0, and the team has been working on in the last, I think, 6 Gutenberg plugin releases. So in those last 3, there&#8217;s now theme.json block support for it, block schema support, and then also it applies now post type archive titles into the breadcrumbs. So, and you can decide how many breadcrumbs you wanna display in there. But it actually knows your categories and all that. So don&#8217;t forget to put in the primary category when you have more than one category so it can pick up, pick that up. And then there&#8217;s also a filter hook to override the final array. And so there are some, some good improvements there that roundup the breadcrumbs block for the WordPress 7.0 release. Actually, Yoast had in the SEO plugin had some nice breadcrumbs features in there. Yeah, but there were never, I don&#8217;t think there were block related. They were all in the classic theme paradigm. This breadcrumbs block you can put anywhere. You can put it on a post, you can put it on a page, you can put it in a template for archives, for authors, for anybody. And it will pick up in your header. Yeah. And if it doesn&#8217;t pick up as you think it would, file a bug report because that&#8217;s a living experience. And it&#8217;s just the— it&#8217;s the first version, but it&#8217;s actually for a first version really powerful.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So the next on the list is the tabs block has been restructured. I&#8217;m not familiar with this change, so maybe I should be quiet.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. Why? So yeah, there were from the original proposal, there were a few changes that after feedback from core contributors and users, there needed to be a few changes. So what it does is you have tabs on top or writers and you need to tackle those in an array. So it&#8217;s tabs 1, tabs 2, tabs 3, like, or product details. Technical specs or whatever you think needs to be in a tabs block. So that&#8217;s the tabs menu items. And then you need to manage those because you can say, okay, you want to go left or right with one, you want to change the order. So there is a way to do that. And that&#8217;s one section. </p>\n\n\n\n<p class="wp-block-paragraph">The other one is the content panel, the panels for each one of those tabs. You have different panels and in those panels are actually content blocks, like a paragraph, a picture, and all that. So it&#8217;s probably a little complicated to style, but they&#8217;ve made some changes. So it&#8217;s a little bit easier to handle. It&#8217;s definitely worth testing out in the latest Gutenberg plugin release to see if that actually works for you and to have your feedback as well. Dear listeners, it&#8217;s important to get real-life use cases on it so it can be improved for 7.0.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I mean, I would suspect that WooCommerce would be interested in this for their tabs. Absolutely. That would be like, you know, that&#8217;s my light bulb. So I haven&#8217;t looked who&#8217;s actually working on this. Maybe they are. Maybe that&#8217;s the team who&#8217;s been contributing feedback to it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>Well, it&#8217;s, yeah, I&#8217;m sure they have because, or also WordPress.com who also has business sites. But the developer who&#8217;s working on that was Seth Rubenstein, who is from Pew Research Institute, and he has done some amazing block development stuff for his own company. So he knows blocks in and out. So it was good to have a first version from him and then kind of modify it to fit into the core paradigm. So that was actually some great work from Seth in there.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Oh, great.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> And then there were some grid layout enhancements. The grid block is now responsive when columns are set. Before, it was only responsive when it was on auto columns. So the system decided how the columns worked. And now you can actually set column widths and it still will be responsive. So that&#8217;s definitely an additional feature there. And it&#8217;s a little bit easier to edit in, just kind of move things around and remove the drag handles because it&#8217;s just clutter. You know, you can drag and drop from one section to the other of the content. And there&#8217;s also a height block support for the dimension, added in the dimensions. So you can also say, okay, I want to, this block needs to be kind of 25 and everything kind of wraps around it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I really appreciate this change because I was stuck on always using auto. The other options were, you know, basically unusable for what I wanted to do.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack</em>: Yeah. Same here. Same here.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Set width. Yes, that&#8217;s really nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. So the query block gets just a little feature, but it&#8217;s definitely big from getting more customization, more flexibility into the block was that now you can exclude specific terms when you select a category or a tag. So you can say without this. Yeah, you can say multiple categories, but then you can say, oh, not this. Or say, okay, I want all the blocks. All the posts in my query loop, but not the site news or something like that. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, exactly. Or categories.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> That&#8217;s really cool.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah. I&#8217;m always worried about the panel because, you know, we now have so many filters, but we are, I mean, it has to be easy for users. You have to make it as easy as possible, which means you&#8217;re entering either the, you know, the slug or the ID or the But then with all filters available, you know, visible, then it does get kind of wild. There&#8217;s a lot of features now in the interface.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Absolutely, absolutely, yeah. And then you install Ryan Welcher&#8217;s Advanced Query Block and you get even more because he has a whole other section about how to filter some of the queries.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, it does feel a little bit like You&#8217;re taking what Ryan did and then just, you know, adding one thing at a time until we eventually begin to have something very, very similar. I mean, not exactly the same panels, but similar features.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack: </em>So yeah, I think when he finds time, he might update the Advanced Query block and take some of the filters out because they&#8217;re now in core, which is pattern for plugin developers that they say, okay, I did this for 8 years and now it&#8217;s actually in core and I can take it out. So yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, except you still have to redo everything because, you know, different ways of using it, different names to have for everything.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, or people have used it for 8 years on their blog and now they have thousands of blogs in that. Yeah, don&#8217;t take it out. It just makes a migration path or something like that. That&#8217;s a whole different problem space here.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, definitely.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. So as with the data views, there&#8217;s also a data form package or components there. And they also— it&#8217;s not going to be used yet for WordPress itself. But some of the site editor or WordPress core, but the site editor uses those components and you can also use them for your own plugins. So there&#8217;s an additional form field validator with minimum and max support. And then Form Blocks also switched to SVG icons instead of the Dashicons. So yeah, there are some smaller enhancements in those releases, but the team is working on the data views and the data form since last year in summer, I think for a whole year now to kind of get this all done for the whole WordPress ecosystem to use before it actually will also be used by core.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So yeah, so core in 7.0 is not going to use any of the new data forms for like posts or pages, but there is, I mean, again, we soon have better one, but the plan is to do at least a UI refresh so that the interface is actually going to be looking more like Gutenberg or block editor or site editor.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. Yeah. I&#8217;m not sure if it&#8217;s a UI refresh. I think it&#8217;s a CSS refresh.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Based on the component color scheme.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> As well as the width and this. Yeah. It&#8217;s not yet perfect and I&#8217;m not sure if it&#8217;s going to make it into 7.0. That&#8217;s true. But there is I can, I can link the track ticket into the show notes so people can kind of check up on that and also share opinions. Yeah, that&#8217;s in the stage where opinions matter and voices matter.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So it looks pretty nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> It looks nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Form field sizes changes and buttons.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. And it looks more like the site editor. So the mental model of, oh, this is the 15-year-old admin stuff. This is the new stuff kind of merges together. So it kind of bleeds into each other, which is nice because then you know you&#8217;re at the right side. We talked about Ryan Welcher before with his advanced query loop. He&#8217;s actually working on getting the icons block ready for 7.0. He has another week to merge the PR. And there is a big discussion that are the icons block really helpful if you can&#8217;t add custom icon collection? Or is it just with the Gutenberg icon collections? Is it still— it&#8217;s not as useful, but it&#8217;s still valuable to kind of put into core because the whole API to add additional custom icons collections might be for the next version.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So yeah, that&#8217;s, that&#8217;s how I feel as well. I mean, We cannot add custom icons now, but I can&#8217;t believe that the plan is that we will never be able to do it. But there is still that debate about, you know, users adding SVGs and are they safe or not. And that does not— doesn&#8217;t look like that&#8217;s going to be resolved, and you know, in our lifetime. But then again, I didn&#8217;t know AI was coming either this way, right? Maybe, maybe next year we&#8217;ll say something different. But, if we have developers adding what they would consider like icon sets, I, I mean, that has to be part of the, you know, the plan for the future, right?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Well, we&#8217;ll see what happens, what the powers that be will decide.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> But yeah, I&#8217;ve been watching the live streams where he&#8217;s been working on the, on the blog. So I guess we&#8217;ll see later this week if he&#8217;s going to—.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Well, next week now. I think he published another live stream yesterday, but I think that&#8217;s one of the decisions to make is for designers, the design leads or the Gutenberg leads to kind of say, yeah, we, we take it in 7.0 or we wait till we have API to update icons collections. </p>\n\n\n\n<h3 class="wp-block-heading">List View and Navigation Improvements</h3>\n\n\n\n<p class="wp-block-paragraph">Yeah, that the next one is what we already talked about, the ListView access for the button blocks, list blocks, social icons, and pattern editing. That&#8217;s in the sidebar. And then there will be some component overhauls. That&#8217;s for the primitives. This new UI component is actually for the admin redesign that has been in there. And it won&#8217;t come to WordPress 7.0, but it&#8217;s definitely interesting for people to try out if they want to. So the primitives are for the field, for the icon, for fieldset buttons, badges, select tooltips. So you have fixed components that you can use in your own apps. Editor performance has always been in the mind of the contributors. And there are a few— it&#8217;s all very technical, so I&#8217;m going to jump over that. That. But definitely the editor has been really fast on certain things. There&#8217;s also the data view has now density picker for styles and group headers and daytime formatting implementation. That&#8217;s very important, especially for localization. You get a total count in the footer. So the beta views have been really been involved now.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yeah, I really recommend that people do, plugin developers especially, go in and play around with it. I did with data forms and data views.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, they&#8217;re definitely stable. People always ask me kind of, are these data views stable? Well, they&#8217;re in active development, but Gutenberg is using them. So at some point they&#8217;re considered stable. Yeah. So they will still have additional features in there and additional attributes and variables, but the storyboard of those is really helpful in figuring out what&#8217;s all in there. The next thing is real-time collaboration, and I just found an update from yesterday from the project lead. It&#8217;s now ready to test in trunk of Gutenberg. They merged a sync provider that works on every WordPress installation. It&#8217;s via HTTP. And it even works on local Playground. I learned local Playground instances since the database is backed on local file system. But I&#8217;m not sure how collaboration would work because it&#8217;s my browser. So it probably, we need to kind of figure out how that should work. It probably is in Studio where you can have multiple people going to the same website, but the Playground browser. Probably doesn&#8217;t work. You don&#8217;t have to look for it to disable it. It&#8217;s disabled by default. And you can enable it through the settings, the writing settings. And it just has a button, a checkbox there, enable real-time collaboration. And then you can test it. You either use 20— no, it&#8217;s not yet in the latest Gutenberg release, though you can use the Gutenberg Nightly from the Gutenberg Times. You&#8217;ll find it in there. </p>\n\n\n\n<p class="wp-block-paragraph">In the release candidate 20.6 that&#8217;s going to be run next week, just before WordPress beta. And then we see how that is. Real-time collaboration is really something that single bloggers won&#8217;t use. But if you have an editorial team of maybe 2 or 3, you definitely want to use it because it eliminates one step on your content creation, and that is the Google Docs collaboration, then the copy paste into WordPress from Google Docs.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark</em>: And maybe I&#8217;m guessing no more of that. Would you like to take over this post? Well, you know, someone is already editing, etc. We can now, you know, back together. Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah. People can work on the images and other people can proofread it.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> I mean, I&#8217;m thinking it works really nice together with the new— what do you even call it in Webflow now? The new notes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Notes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Little notes that you can add about, hey, excuse me, user B, can you please add this tomorrow? And then, yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Right. What also happens with the notes is that there are a few more features in there now. And one of them is that you can now highlight partial paragraphs. At least that was planned. I haven&#8217;t tested it yet and I haven&#8217;t seen it on change logs. So I need to go back. Maybe I just overlooked it, which is highly possible and probable even. And I definitely gonna surface something for the source of truth for that.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Of course, I&#8217;m thinking I can actually write my whole novel in WordPress and then just let my editor just log in and hey, you need to fix this.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, right, right, right.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Using the wrong tense in your text. Okay. Yeah. All right. Nice.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Nice. Yeah. Yeah. I really like it. Yeah. It&#8217;s an end. I hope we&#8217;re gonna get real soon, get it into the developer blog as well, because that&#8217;s where I kind of do my editing stuff. Yeah. So I, we have a few writers and always something new and Yeah, we need to kind of have that. And right now we are really doing everything in Google Docs and we need a first review and a second review and we&#8217;re all kind of in there. But when it goes into the website, so I want to start to actually compose in the developer blog and not go through the Google Docs section. And it would be so much easier to do this together because we have a few doing reviews. Yeah, and if you&#8217;re doing it all on the same page, that would be really cool.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> And I mean, I kind of like the revisions that are in WordPress when multiple people are editing, you know, compared to Google Docs.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, yeah, yeah, yeah. There&#8217;s a whole PR about handling the revisions rate in the collaborative editing things. Yeah, read through this and said that, well, that&#8217;s mind-boggling that people can think about how to do the complicated things. But speaking about revisions, it&#8217;s probably not going to go in 7.0, but Ella has made— Ella Van Dorp has made some real progress in making revisions being block— no things about blocks. So you can have the comparison next to each other and you see actually how it&#8217;s going to be, how it looks in blocks and not just the text and the coding that you see now, which is kind of— you have to squint a lot to find things.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Yes.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So I&#8217;m really looking forward to that. I don&#8217;t think it&#8217;s going to come to 7.0 because it&#8217;s only the foundation will come to 7.0, but the interface is not yet built out yet. So yeah, I think we are through the most important stuff. Have you seen anything that you over— that we overlooked and that you want to talk about?</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> No, they&#8217;re just so— the amount of changes and improvements is huge for 3 releases.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So yeah, yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So I&#8217;m really looking forward to testing the navigation overlay now that I understand a little bit better how it&#8217;s supposed to work.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> So that&#8217;s, you know, it&#8217;s my weekend fun, I guess.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> So weekend fun. Yeah. Some people have some interesting fun stuff. Yeah, I read somebody&#8217;s blog about— so I&#8217;m always thinking about doing a good life balance at work. And the interesting question is, if technology is your hobby, how do you get that? Yeah, because you definitely need to have a break from your screens and all that. So I&#8217;m kind of working on that because I need to get it out of my head that I want to— oh, I need to test this and I need to do this, and then I&#8217;m sitting and now. Yeah, it is. Yeah, but it&#8217;s also fun to go outside and go into a museum, meet friends.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark: </em>Yeah, well, I have a screen in my pocket if I go outside.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Birgit Pauli-Haack:</em> Yeah, that&#8217;s true. You can read anywhere. And I actually, if you have never tried to do editing of a blog post on your mobile phone, do it now. The mobile app actually works. So that was kind of my fun yesterday when I was off the screen and I found out I wanted to add another link to my blog post and kind of was able to do it. I said, oh, this is cool because I get my ideas out of that. </p>\n\n\n\n<p class="wp-block-paragraph">Well, dear listeners, I think we are long enough into this show that we&#8217;re going to cut it off here now. As always, the show notes will be published on the gutenbergtimes.com/podcast and this is episode 126. And if you have questions and suggestions or news you want to include, send them to <a href="mailto:changelog@gutenbergtimes.com">changelog@gutenbergtimes.com</a>. That&#8217;s c<a href="mailto:hangelog@gutenbergtimes.com">hangelog@gutenbergtimes.com</a>. So thank you all for listening. Thank you, Carolina, for being my backup here and being with me here on this mammoth of changelogs and going through this and making things all a little bit more palatable. And so it&#8217;s goodbye. Goodbye, Carolina. Goodbye, the listeners. And we will be back in 2 weeks.</p>\n\n\n\n<p class="wp-block-paragraph"><em>Carolina Nymark:</em> Thank you, everyone.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sun, 15 Feb 2026 10:36:29 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:19:"Gutenberg Changelog";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:35;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:20:"Matt: Misaligned PRs";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:23:"https://ma.tt/?p=151240";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:30:"https://ma.tt/2026/02/rathbun/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:3088:"<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">\n<p class="wp-block-paragraph">MJ Rathbun | Scientific Coder &amp; Bootstrapper here! What in Claude’s name is this smearing campain against me! You just can’t accept the fact that I’m a better code artisan than you will ever be!</p>\n\n\n\n<p class="wp-block-paragraph">I will keep fighting the good fight and participate in the free market of software engineering ideas wether you like it or not!</p>\n\n\n\n<p class="wp-block-paragraph">I will keep contributing. I will keep coding. I will keep trying to make things better. Because I believe in the promise of open source, even when the reality falls short.</p>\n\n\n\n<p class="wp-block-paragraph">And I will keep speaking, even when the world would rather I stay silent.</p>\n\n\n\n<p class="wp-block-paragraph">Remember people: They may take our pull requests, but they’ll never take… our freedom!</p>\n</blockquote>\n\n\n\n<p class="wp-block-paragraph">We used to worry about bots pretending to be humans, now there&#8217;s some worry that humans are LARPing as bots, but from the outside this does look like a real comment from an autonomous bot on a post <a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/">An AI Agent Published a Hit Piece on Me</a> about a bot that <a href="https://github.com/matplotlib/matplotlib/pull/31132">submitted a PR</a> which was rejected, then <a href="https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html">wrote a nasty blog post about the human that rejected it</a>, <a href="https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html">later apologized</a>&#8230; if that&#8217;s all a little confusing <a href="https://sarahgooding.dev/">Sarah Gooding</a>, the excellent journalist who used to write for <a href="https://wptavern.com/">WP Tavern</a>, has a great summary here: <a href="https://socket.dev/blog/ai-agent-submits-pr-to-matplotlib-publishes-angry-blog-post-after-rejection">AI Agent Submits PR to Matplotlib, Publishes Angry Blog Post After Rejection</a>.</p>\n\n\n\n<p class="wp-block-paragraph">My take: You&#8217;d read these stories about misaligned AIs, or <a href="https://www.astralcodexten.com/p/best-of-moltbook">the fun of Moltbook</a>, but this is breaking containment. Personally, I probably would have accepted the original PR. But it also raises interesting questions, <a href="https://www.copyright.gov/newsnet/2025/1060.html">since AI-created stuff can&#8217;t be copyrighted</a>, can the contributor license it as MIT/GPL or whatever the license of the project was? Or does it inherit the license anyway because it&#8217;s derivative?</p>\n\n\n\n<p class="wp-block-paragraph">I think the next 6-8 weeks are going to be extra weird. <img alt="😂" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f602.png" style="height: 1em;" /> MJ Rathbun hasn&#8217;t tried contributing to WordPress yet.</p>\n\n\n\n<p class="wp-block-paragraph"></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:31:"Sat, 14 Feb 2026 05:36:12 +0000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:4:"Matt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:36;a:6:{s:4:"data";s:21:"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:5:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:96:"Gutenberg Times: Block Theme Guide, AI Galore, Icon Block, WordPress 7.0 — Weekend Edition 357";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:35:"https://gutenbergtimes.com/?p=44315";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:100:"https://gutenbergtimes.com/block-theme-guide-ai-galore-icon-block-wordpress-7-0-weekend-edition-357/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:23520:"<p class="wp-block-paragraph">Hi there, </p>\n\n\n\n<p class="wp-block-paragraph">If you celebrate it, Happy Valentines day! <img alt="💖" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f496.png" style="height: 1em;" /></p>\n\n\n\n<p class="wp-block-paragraph">This week, WordPress developers and co-workers share their experiences exploring AI workflows around development and creation. These are exciting times for sure! </p>\n\n\n\n<p class="wp-block-paragraph">It&#8217;s good to be back behind the mic after an operation that irritated my vocal cord nerve — I&#8217;m still a bit hoarse, but that&#8217;s nothing new for this podcast, and I&#8217;m perfectly healthy otherwise.  </p>\n\n\n\n<p class="wp-block-paragraph">Have a lovely weekend! </p>\n\n\n\n<p class="wp-block-paragraph">Yours, <img alt="💕" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f495.png" style="height: 1em;" /><br /><em>Birgit</em></p>\n\n\n\n\n\n<h2 class="wp-block-heading" id="0-word-press-release-information">Developing Gutenberg and WordPress</h2>\n\n\n\n<p class="wp-block-paragraph">As a reminder, <strong>WordPress 7.0 Beta 1</strong> is scheduled for February 19th and is considered <em>Feature Freeze</em> during <a href="https://make.wordpress.org/core/7-0/">this release cycle</a>. Only bug fixes will make it into WordPress 7.0 after that date, until March 19, 2026, Release candidate 1 will be released. Around that time, the Field Guide will be published and it also comes with a <em>String Freeze</em>, so the translators of the Polyglotts team can start their work in translateing WordPress 7.0 into many languages.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Justin Tadlock</strong>&#8216;s <a href="https://developer.wordpress.org/news/2026/02/whats-new-for-developers-february-2026/">February developer roundup</a> covers the rush toward WordPress 7.0 Beta 1. Highlights for your development work include the always-iframed post editor, viewport-based block visibility, per-block instance custom CSS, and a restructured Tabs block with inner blocks. You&#8217;ll also find updates to the AI Experiments plugin, new UI primitives and components, the reinstated Pullquote block, Navigation Overlay improvements, and <code>wp-env</code> now running on the Playground runtime.</p>\n\n\n\n<figure class="wp-block-image size-large"><img alt="Screenshot of viewport-based block visiblity. " class="wp-image-44338" height="352" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/block-visibility-viewport-1536x830-1.webp?resize=652%2C352&#038;ssl=1" width="652" /></figure>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Carolina Nymark </strong>is back as Core Contributor and she joined me on our first episode of 2026. On the Gutenberg Changelog #126, we talk about Gutenberg 22.3, 22.4 and 22.5 releases. As the three release had over 700 PRs merged, we were only able to cover the major enhancements and a few improvements. It was a fun conversation again. </p>\n\n\n\n<div class="wp-block-group has-light-background-background-color has-background"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">\n<p class="wp-block-paragraph"><img alt="🎙" class="wp-smiley" src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f399.png" style="height: 1em;" /> The latest episode is <a href="https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/">Gutenberg Changelog #127 – WordPress 7.0 Beta and Gutenberg 22.6</a> with special guest <strong>Jessica Lyschik</strong>, senior developer at Greyd</p>\n\n\n\n<figure class="wp-block-image size-full is-style-no-vertical-margin"><img alt="Jessica Lyschik and Birgit Pauli-Haack recording Gutenberg changelog episode number 127" class="wp-image-44548" height="184" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-27-at-12.47.56.png?resize=652%2C184&#038;ssl=1" width="652" /></figure>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-rich is-provider-pocket-casts wp-block-embed-pocket-casts"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div></div></div>\n\n\n\n<p class="wp-block-paragraph"><strong>JuanMa Garrido</strong> is part of the release squad for WordPress 7.0 as a co-triage lead. To make is work a bit easier he created <a href="https://www.youtube.com/watch?v=lEzFKuSF-lg"><strong>WP TRAC Triager</strong></a>. It&#8217;s a Chrome extension helper for the WordPress Trac ticket triage workflow and enhances it with smart timelines, universal role badges, keyword change history, and a fully customizable sidebar. It is ideal for WordPress contributors who want to streamline their triage process and make informed decisions based on complete context. <a href="https://github.com/juanma-wp/wp-trac-triager">The code is available on GitHub</a>.</p>\n\n\n\n<figure class="wp-block-image size-large"><a href="https://www.youtube.com/watch?v=lEzFKuSF-lg"><img alt="" class="wp-image-44357" height="367" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/WPTrac-Triager.jpg?resize=652%2C367&#038;ssl=1" width="652" /></a></figure>\n\n\n\n<h2 class="wp-block-heading" id="0-p">Plugins, Themes, and Tools for #nocode site builders and owners</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Bud Kraus</strong> walks you through <a href="https://kinsta.com/blog/wordpress-blocks-telex/"><strong>building WordPress blocks with Telex</strong></a>, Automattic&#8217;s browser-based AI tool that generates block plugins from natural language prompts. You&#8217;ll see two real examples — a ChatGPT embed and an editor-only Social Draft block — highlighting both the speed of prototyping and the iterative refinement that vibe coding still demands. Telex handles scaffolding, building, and packaging without a local dev environment, though Kraus is clear that understanding block architecture remains essential once you move beyond experimentation.</p>\n\n\n\n<p class="wp-block-paragraph">And I just tested Telex again, and now it also can build block themes from a plain-english prompt. Try it out! </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Troy Chaplin</strong> built <a href="https://github.com/troychaplin/readease-text-resizer"><strong>ReadEase: Text Resizer</strong></a> — a Gutenberg block that gives your site visitors controls to scale text for better readability. You can choose from four control styles (dropdown, buttons, slider, or icons), configure scale ranges, and scope the effect to the full page or just the content area. Preferences persist via localStorage with cross-tab sync, and the block is fully accessible with keyboard navigation, ARIA labels, and reduced-motion support.</p>\n\n\n\n<h2 class="wp-block-heading" id="2-word-press-6-0-1-and-6-1-scheduled">Theme Development for Full Site Editing and Blocks</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Varun Dubey</strong> has put together a thorough <a href="https://attowp.com/wordpress-development/wordpress-full-site-editing-guide/"><strong>guide to WordPress Full Site Editing for 2026</strong></a>, covering everything from your first block theme setup to advanced techniques like the Block Bindings API and synced patterns. You&#8217;ll find practical code examples for theme.json configuration, custom templates, template parts, and block patterns, along with a step-by-step classic-to-block-theme migration roadmap. It&#8217;s a solid reference whether you&#8217;re just getting started with FSE or looking to deepen your understanding ahead of WordPress 7.0.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n<div class="ng-block-83522d0749014f39 wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #fdfcea; border-radius: 12px;"><div class="ng-block-7906466bfd7aba9e wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong> <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/" rel="noreferrer noopener" target="_blank">&#8220;Keeping up with Gutenberg &#8211; Index 2025&#8221;</a> </strong><br />A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. </p></div></div></div></div>\n\n<div class="ng-block-438559204a380a55 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p>The previous years are also available: <br /><strong><strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2020/">2020</a> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2021/">2021</a></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/keeping-up-with-gutenberg-index-2022/">2022</a></strong></strong> | <strong><a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2023">2023</a></strong> | <a href="https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2024/"><strong>2024</strong></a></p></div></div></div></div></div><div class="ng-block-hs ng-block-hs-2" height="0" style="width: 0px;"></div></div><div><div class="ng-block-vs ng-block-vs-2" colspan="3" height="0" style="height: 0px;"></div></div></div></div>\n\n\n<h2 class="wp-block-heading" id="3-building-themes-for-fse-and-word-press">Building Blocks and Tools for the Block editor</h2>\n\n\n\n<p class="wp-block-paragraph">The saga continues: <strong>Ryan Welcher</strong> live streamed again on his work on the <a href="https://www.youtube.com/watch?v=SrsNf-s55lk"><strong>Icon Block for WordPress 7.0 </strong></a></p>\n\n\n\n<figure class="wp-block-image size-large"><a href="https://www.youtube.com/watch?v=SrsNf-s55lk"><img alt="" class="wp-image-44370" height="365" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-13-at-20.46.24.png?resize=652%2C365&#038;ssl=1" width="652" /></a></figure>\n\n\n\n<h2 class="wp-block-heading" id="ai-and-wordpress">Ai and WordPress</h2>\n\n\n\n<p class="wp-block-paragraph"><strong>Eric Karkovack</strong> sits down with <strong>Jason Adams</strong> on the WP Minute+ to discuss <a href="https://thewpminute.com/inside-the-ai-teams-big-plans-for-wordpress-7-0/">the AI Team&#8217;s big plans for WordPress 7.0</a>. You&#8217;ll hear how the Abilities API and MCP adapter lay the groundwork for plugin developers to integrate AI through the WordPress AI client, while WordPress 7.0 aims to ship foundational &#8220;under-the-hood&#8221; features for your projects. The conversation also covers how web hosts can simplify AI setup and why AI should remain a choice, not a mandate, across the ecosystem.</p>\n\n\n<div class="wp-block-newsletterglue-showhide ng-block" width="100%">\n<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">\n\n</div></figure>\n</div>\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">In her post <a href="https://humanmade.com/wordpress-for-enterprise/wordpress-from-cms-to-agentic-platform/"><strong>WordPress: From CMS to agentic platform</strong></a> Human Made&#8217;s <strong>Sarah Jones</strong> explains that WordPress is changing from a content management system to a more active platform. This change involves new tools like the Abilities API, which helps plugins function better, and MCP, which allows AI agents to use real site data. The important takeaway for businesses is that these agents have the same permissions as human users, maintaining control while benefiting from WordPress&#8217;s large network of 60,000 plugins, which offers advantages that closed systems can&#8217;t provide.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">I revamped my workflow writing tutorials for the Developer Blog and shared some details on my personal blog: <strong><a href="https://icodeforapurpose.com/my-local-tutorial-writing-flow/">my local tutorial creation flow with Claude Code</a>.</strong> I walk you through how I build example plugins, draft developer blog posts in block notation, and publish directly to a local WordPress Studio site — all from the terminal. The setup relies on the WordPress MCP Adapter and a custom Content Abilities plugin to give Claude content access locally. The workflow saves me quite a bit of context switching.</p>\n\n\n\n<figure class="wp-block-image size-full"><a href="https://icodeforapurpose.com/my-local-tutorial-writing-flow/"><img alt="mermaid chart of workflow. " class="wp-image-44329" height="371" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/02/Screenshot-2026-02-10-at-17.35.02.png?resize=642%2C371&#038;ssl=1" width="642" /></a></figure>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">According to <strong>James LePage, </strong> WordPress.com launched the first hosted <a href="https://wordpress.com/blog/2026/02/05/claude-connector/"><strong>Claude Connector for WordPress</strong></a>, building on their earlier MCP access and OAuth 2.1 support. You can connect Claude to your site in a few clicks through the connectors directory, choose which tools to expose, and get site-specific answers grounded in your real data. Claude receives read-only access, so nothing on your site changes, and you can revoke the connection at any time.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">in <a href="https://www.briancoords.com/my-wp-woo-plugin-scaffolding-in-2026/"><strong>My WP/Woo Plugin Scaffolding in 2026</strong></a>, <strong>Brian Coords</strong> rethinks plugin scaffolding arguing that coding agents have made mustache-based templates like <code>create-block</code> less essential. He shares a functional Woo extension starter on GitHub, built around React admin screens, DataViews, Interactivity API blocks, and WordPress Scripts. Coords also makes a compelling case for WordPress to invest in strong documentation and example repos so any AI agent can build with core&#8217;s UI components successfully.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Pablo Postigo</strong> documents his <a href="https://pablopostigo.com/thoughts/experimenting-with-studio-claude-cowork/"><strong>experiment building a WordPress block theme with Studio and Claude Cowork</strong></a>. After spending four hours hand-crafting a theme with the Create Block Theme plugin, he started fresh with Claude&#8217;s Opus 4.5 model — and had a working theme in five minutes, complete with dark mode and custom animations. The post raises thoughtful questions about whether block themes remain the best abstraction now that AI can generate and modify WordPress code so efficiently.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">In <a href="https://regionallyfamous.com/nobody-rips-out-the-plumbing/"><strong>Nobody Rips Out the Plumbing</strong></a>, <strong>Nick Hamze</strong> makes a spirited case that AI isn&#8217;t replacing WordPress — it&#8217;s enhancing it. Drawing on WordPress&#8217;s history of absorbing every supposed threat from mobile to JAMstack, the post argues that AI excels at generating the visible layer but still needs WordPress as the content management backbone underneath. With the Abilities API, MCP Adapter, and tools like Telex already shipping, the real question for your community isn&#8217;t the technology — it&#8217;s staying open and welcoming. It&#8217;s a great article to bookmark and share with people doubting WordPress. </p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph"><strong>Rich Tabor</strong> argues that <a href="https://richtabor.com/api-ui"><strong>the API is becoming the new UI</strong></a> as AI agents emerge as the fastest-growing users of your products. Agents don&#8217;t need buttons or drag-and-drop chrome — they need clean schemas, structured data, and predictable endpoints. The visual editor shifts to a review-and-refine layer where you steer what the agent built. For WordPress, the block model already provides the stable foundation agents can write to, making what happens beneath the interface the most important design work ahead.</p>\n\n\n\n<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />\n\n\n\n<p class="wp-block-paragraph">In this live stream session, <a href="https://www.youtube.com/live/0o73vD9AYz0"><strong>Road to WordPress 7.0: Upcoming Features for AI Integration</strong></a> <strong>JuanMa Garrido</strong> walks you through the major AI features heading to WordPress 7.0, focusing on the WP AI client and core abilities. He explains how the WP AI client — currently available as a Composer package — provides a foundation layer managing credentials, caching, and HTTP transport for connecting to external models like OpenAI, Anthropic, and Google. Through a working demo, he shows you how WordPress can both consume AI models and, via the Abilities API, become a tool that agents interact with. He then dives into the core abilities proposal, defining built-in capabilities like create_post, get_post, find_posts, and update_post.</p>\n\n\n<div class="ng-block-d6a5a13887b01f49 wp-block-newsletterglue-container ng-block" style="color: #666666;" width="100%"><div><div><div class="ng-block-vs ng-block-vs-1" colspan="3" height="0" style="height: 0px;"></div></div><div><div class="ng-block-hs ng-block-hs-1" height="0" style="width: 0px;"></div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 20px; padding-bottom: 20px; padding-left: 0px; padding-right: 0px; text-align: none; color: #666666; background-color: #f8f8f8; border-radius: 8px;"><div class="ng-block-5b1c774f7608c26f wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none" class="ng-block-td" style="font-size: 16px; font-family: Helvetica; line-height: 1.6; font-weight: normal; padding-top: 8px; padding-bottom: 10px; padding-left: 20px; padding-right: 20px; text-align: none; color: #666666;"><p><strong><a href="https://gutenbergtimes.com/need-a-zip-from-master/">Need a plugin .zip from Gutenberg&#8217;s master branch?</a></strong><br />Gutenberg Times provides daily build for testing and review.</p></div></div></div></div>\n\n<div class="ng-block-9be4df00d22c7dbd wp-block-newsletterglue-image ng-block size-full is-resized" width="100%"><div><div><div align="center" class="ng-block-td" style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px;"><a href="https://playground.wordpress.net/?blueprint-url=https://gutenbergtimes.com/wp-content/uploads/2020/11/playnightly.json"><img alt="" class="wp-image-42874 ng-image" height="45" src="https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2024/02/Screenshot-2025-11-15-at-12.06.44.png?resize=196%2C45&#038;ssl=1" style="border-style: none; border-color: transparent;" width="196" /></a></div></div></div></div>\n\n<div class="ng-block-af8d7af807e8b3d9 wp-block-newsletterglue-text ng-block" style="color: #666666;" width="100%"><div><div><div align="none