INSERT INTO `bzr_options` VALUES (42678,'_site_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3','a:6:{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:52:\"\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:4:{s:0:\"\";a:8:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";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:26:\"https://wordpress.org/news\";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:59:\"The latest news about WordPress and the WordPress community\";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:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 22 Jul 2026 15:23:14 +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:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-US\";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:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=7.1-beta3-62830\";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:\"image\";a:1:{i:0;a:6:{s:4:\"data\";s:11:\"\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:3:\"url\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://s.w.org/favicon.ico?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:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";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:26:\"https://wordpress.org/news\";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:\"width\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";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:6:\"height\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"32\";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:10:{i:0;a:6:{s:4:\"data\";s:72:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 7.1 Beta 3\";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/07/wordpress-7-1-beta-3/\";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, 22 Jul 2026 15:23:14 +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:8:\"category\";a:6:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";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:5:{s:4:\"data\";s:7:\"General\";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:5:{s:4:\"data\";s:8:\"Releases\";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:5:{s:4:\"data\";s:3:\"7-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:\"\";}i:4;a:5:{s:4:\"data\";s:11:\"development\";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:5:{s:4:\"data\";s:7:\"release\";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=21177\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:347:\"WordPress 7.1 Beta 3 is ready for download and testing!&#160; This beta release is intended for testing and development 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. How to Test WordPress 7.1 Beta [&#8230;]\";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:17:\"Benjamin Zekavica\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:6980:\"\n<p class=\"wp-block-paragraph\">WordPress 7.1 Beta 3 is ready for download and testing!&nbsp;</p>\n\n\n\n<p class=\"wp-block-paragraph\"><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.1 Beta 3</h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can test WordPress 7.1 Beta 3 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>WordPress Beta Tester Plugin</strong></td><td>Install and activate the <a href=\"https://wordpress.org/plugins/wordpress-beta-tester/\" target=\"_blank\" rel=\"noreferrer noopener\">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.1-beta3.zip\">Beta 3 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line (WP-CLI)</strong></td><td>Use this <a href=\"https://make.wordpress.org/cli/\" target=\"_blank\" rel=\"noreferrer noopener\">WP-CLI</a> command: <br><code>wp core update --version=7.1-beta3</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use a <a href=\"https://playground.wordpress.net/?site-slug=kind-classic-mountain&amp;networking=no&amp;php=8.3&amp;wp=beta&amp;language=&amp;multisite=no\" target=\"_blank\" rel=\"noopener\">7.1 Beta 3 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.1 is <strong>August 19, 2026</strong>. The full <a href=\"https://make.wordpress.org/core/2026/07/03/wordpress-7-1-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<p class=\"wp-block-paragraph\"><strong>Find out what’s new in WordPress 7.1</strong>: Read the <a href=\"https://wordpress.org/news/2026/07/wordpress-7-1-beta-1/\">Beta 1 announcement</a> for details and highlights.</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 – whether or not you have experience.&nbsp;<a href=\"https://make.wordpress.org/test/2026/07/15/help-test-wordpress-7-1/\">Details on what to test in WordPress 7.1 are available here</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you encounter an issue, please share it in the&nbsp;<a href=\"https://wordpress.org/support/forum/alphabeta/\" target=\"_blank\" rel=\"noopener\">Alpha/Beta area</a>&nbsp;of the support forums. If you are comfortable submitting a reproducible bug report, you can do so&nbsp;<a href=\"https://core.trac.wordpress.org/newticket\" target=\"_blank\" rel=\"noopener\">via WordPress Trac</a>. You can also check your issue against this list of&nbsp;<a href=\"https://core.trac.wordpress.org/tickets/major\" target=\"_blank\" rel=\"noopener\">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>&nbsp;and join the&nbsp;<a href=\"https://wordpress.slack.com/messages/core-test/\">#core-test channel</a>&nbsp;on&nbsp;<a href=\"https://wordpress.slack.com/\">Making WordPress Slack</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s in WordPress 7.1 Beta 3?</h2>\n\n\n\n<p class=\"wp-block-paragraph\">For technical details on the more than <strong>71 issues</strong> addressed since Beta 1, see the following links:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://core.trac.wordpress.org/query?status=closed&amp;changetime=07%2F15%2F2026..07%2F22%2F2026&amp;milestone=7.1&amp;group=component&amp;col=id&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=id\">Closed 7.1 WordPress Core Trac tickets</a> since July 15, 2026</li>\n\n\n\n<li><a href=\"https://github.com/WordPress/gutenberg/commits/wp/7.1?since=2026-07-15&amp;until=2026-07-22\">7.1 Gutenberg commits</a> since July 15, 2026</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">Note: <strong>Beta 2 was released on July 17, 2026</strong>, as part of the <a href=\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\">WordPress 7.0.2 release</a> and includes important security fixes.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Beta 3 introduces two improvements to styling.</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Applying local style changes globally is no longer an all-or-nothing action. The <a href=\"https://github.com/WordPress/gutenberg/pull/79839\" target=\"_blank\" rel=\"noopener\">Apply globally</a>&nbsp;option in the block inspector now opens a quick review step, allowing you to choose which modified styles to apply globally while keeping the rest as local overrides.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Other notable fixes include improvements to media uploads: long animated GIF uploads no longer hang, images rotated using EXIF metadata are processed correctly, and uploading a single HEIC image in Safari no longer creates two entries.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The editor also includes additional fixes for Notes, responsive styling, and custom CSS. For developers, WordPress Coding Standards has been updated to version 3.4.0.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/\" target=\"_blank\" rel=\"noopener\">Unicode email address support</a> will <strong>not be included</strong> in WordPress 7.1. The work will continue in a community plugin, allowing broader testing of compatibility, security, and data-handling considerations.</p>\n\n\n\n<h2 class=\"wp-block-heading\">A Beta 3 haiku</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fresh bugs surface now,<br>click by click, we chase them down—<br>codebase grows steady.</p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to </em><a href=\'https://profiles.wordpress.org/krupajnanda/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>krupajnanda</a>, <a href=\'https://profiles.wordpress.org/annezazu/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>annezazu</a>, <br><a href=\'https://profiles.wordpress.org/wildworks/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>wildworks</a>, <a href=\'https://profiles.wordpress.org/amykamala/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>amykamala</a> <em>for proofreading and review.</em></p>\n\n\n\n<p class=\"wp-block-paragraph\"></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"21177\";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:66:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:23:\"WordPress 7.0.2 Release\";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:59:\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\";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, 17 Jul 2026 18:45:54 +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:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";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:5:{s:4:\"data\";s:8:\"Security\";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:5:{s:4:\"data\";s:14:\"minor-releases\";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:5:{s:4:\"data\";s:8:\"releases\";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=21167\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:373:\"WordPress 7.0.2 is now available. The 7.0.2 security release addresses one critical and one high severity security issue. Because this is a security release, it is recommended that you update your sites immediately. Due to the severity, the WordPress.org team have enabled forced updates via the auto-update system for sites running affected versions. To manually [&#8230;]\";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:15:\"John Blackbourn\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4464:\"\n<h2 class=\"wp-block-heading\">WordPress 7.0.2 is now available.</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The 7.0.2 security release addresses one critical and one high severity security issue.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Because this is a security release, <strong>it is recommended that you update your sites immediately.</strong> Due to the severity, the WordPress.org team have enabled forced updates via the auto-update system for sites running affected versions.</p>\n\n\n\n<p class=\"wp-block-paragraph\">To manually update you can visit your WordPress Dashboard, click “Updates”, and then click “Update Now”, or you can <a href=\"https://wordpress.org/wordpress-7.0.2.zip\">download WordPress 7.0.2 from WordPress.org</a>. On sites that support automatic background updates, the update process will begin automatically.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Security updates included in this release</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The security team would like to thank the following people for responsibly <a href=\"https://hackerone.com/wordpress\">reporting</a> vulnerabilities and allowing them to be fixed in this release:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A facilitated SQL injection issue reported as a team by TF1T, dtro, and haongo </li>\n\n\n\n<li>A REST API batch-route confusion and SQL injection issue leading to Remote Code Execution reported by Adam Kues at <a href=\"https://slcyber.io\"><u>Assetnote / Searchlight Cyber</u></a></li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">For more information on this release, please visit the <a href=\"https://wordpress.org/documentation/wordpress-version/version-7-0-2/\">HelpHub site</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Backports</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress 6.9 is affected by both vulnerabilities. Version 6.9.5 has been released containing fixes for both.</li>\n\n\n\n<li>WordPress 6.8 is only affected by the first vulnerability. Version 6.8.6 has been released containing a fix.</li>\n\n\n\n<li>The beta release of WordPress 7.1 is affected by both vulnerabilities. Version 7.1 beta2 has been released containing fixes for both.</li>\n\n\n\n<li>Versions of WordPress prior to 6.8 are not affected.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">CVE and GHSA references</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-fpp7-x2x2-2mjf\"><code>CVE-2026-60137</code> / <code>GHSA-fpp7-x2x2-2mjf</code></a></li>\n\n\n\n<li><a href=\"https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-ff9f-jf42-662q\"><code>CVE-2026-63030</code> / <code>GHSA-ff9f-jf42-662q</code></a></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Thank you to these WordPress contributors</h2>\n\n\n\n<p class=\"wp-block-paragraph\">This release was led by <a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a> and <a href=\"https://profiles.wordpress.org/barry/\">Barry Abrahamson</a>. In addition to the security researchers mentioned above, WordPress 7.0.2 would not have been possible without the significant contributions of the following people: <a href=\"https://profiles.wordpress.org/jorbin\">Aaron Jorbin</a>, <a href=\"https://profiles.wordpress.org/xknown\">Alex Concha</a>, <a href=\"https://profiles.wordpress.org/annezazu\">annezazu</a>, <a href=\"https://profiles.wordpress.org/Barry\">Barry</a>, <a href=\"https://profiles.wordpress.org/davidbaumwald\">David Baumwald</a>, <a href=\"https://profiles.wordpress.org/ocean90\">Dominik Schilling</a>, <a href=\"https://profiles.wordpress.org/ehtis\">Ehtisham Siddiqui</a>, <a href=\"https://profiles.wordpress.org/joedolson\">Joe Dolson</a>, <a href=\"https://profiles.wordpress.org/joehoyle\">Joe Hoyle</a>, <a href=\"https://profiles.wordpress.org/johnbillion\">John Blackbourn</a>, <a href=\"https://profiles.wordpress.org/desrosj\">Jonathan Desrosiers</a>, <a href=\"https://profiles.wordpress.org/clorith\">Marius L. J.</a>, <a href=\"https://profiles.wordpress.org/Matt\">Matt Mullenweg</a>, <a href=\"https://profiles.wordpress.org/batmoo\">Mohammad Jangda</a>, <a href=\"https://profiles.wordpress.org/peterwilsoncc\">Peter Wilson</a>, <a href=\"https://profiles.wordpress.org/sergeybiryukov\">Sergey Biryukov</a>, <a href=\"https://profiles.wordpress.org/vortfu\">vortfu</a>, <a href=\"https://profiles.wordpress.org/westonruter\">Weston Ruter</a>, plus representatives from Altis, Automattic, Bluehost, Cloudflare, GoDaddy, Hostinger, and WP Engine.</p>\n\n\n\n<p class=\"wp-block-paragraph\"></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"21167\";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:72:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"WordPress 7.1 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:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://wordpress.org/news/2026/07/wordpress-7-1-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:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 15 Jul 2026 15:53:33 +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:8:\"category\";a:6:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";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:5:{s:4:\"data\";s:7:\"General\";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:5:{s:4:\"data\";s:8:\"Releases\";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:5:{s:4:\"data\";s:3:\"7-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:\"\";}i:4;a:5:{s:4:\"data\";s:11:\"development\";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:5:{s:4:\"data\";s:7:\"release\";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=20987\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:354:\"WordPress 7.1 Beta 1 is ready for download and testing!&#160; This beta release is intended for testing and development&#160;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. How to Test WordPress 7.1 Beta 1 [&#8230;]\";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:11:\"Krupa Nanda\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:17714:\"\n<p class=\"wp-block-paragraph\">WordPress 7.1 Beta 1 is ready for download and testing!&nbsp;</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>This beta release is intended for testing and development</strong>&nbsp;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.1 Beta 1</h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can test WordPress 7.1 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>WordPress Beta Tester Plugin</strong></td><td>Install and activate the <a href=\"https://wordpress.org/plugins/wordpress-beta-tester/\" target=\"_blank\" rel=\"noreferrer noopener\">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.1-beta1.zip\">Beta 1 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line (WP-CLI)</strong></td><td>Use this <a href=\"https://make.wordpress.org/cli/\" target=\"_blank\" rel=\"noreferrer noopener\">WP-CLI</a> command: <br><code>wp core update --version=7.1-beta1</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use a <a href=\"https://playground.wordpress.net/?site-slug=kind-classic-mountain&amp;networking=no&amp;php=8.3&amp;wp=beta&amp;language=&amp;multisite=no\" target=\"_blank\" rel=\"noopener\">7.1 Beta 1 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.1 is <strong>August 19, 2026</strong>. The full <a href=\"https://make.wordpress.org/core/2026/07/03/wordpress-7-1-release-party-schedule/\" data-type=\"link\" data-id=\"https://make.wordpress.org/core/2026/07/03/wordpress-7-1-release-party-schedule/\" target=\"_blank\" rel=\"noopener\">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 – whether or not you have experience.&nbsp;<a href=\"https://make.wordpress.org/test/2026/07/15/help-test-wordpress-7-1/\">Details on what to test in WordPress 7.1 are available here</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you encounter an issue, please share it in the&nbsp;<a href=\"https://wordpress.org/support/forum/alphabeta/\" target=\"_blank\" rel=\"noopener\">Alpha/Beta area</a>&nbsp;of the support forums. If you are comfortable submitting a reproducible bug report, you can do so&nbsp;<a href=\"https://core.trac.wordpress.org/newticket\" target=\"_blank\" rel=\"noopener\">via WordPress Trac</a>. You can also check your issue against this list of&nbsp;<a href=\"https://core.trac.wordpress.org/tickets/major\" target=\"_blank\" rel=\"noopener\">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>&nbsp;and join the&nbsp;<a href=\"https://wordpress.slack.com/messages/core-test/\">#core-test channel</a>&nbsp;on&nbsp;<a href=\"https://wordpress.slack.com/\">Making WordPress Slack</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 will include new features that were previously only available in the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 7.0 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/2026/03/11/whats-new-in-gutenberg-22-7-11-march/\">22.7</a>, <a href=\"https://make.wordpress.org/core/2026/03/25/whats-new-in-gutenberg-22-8-25-march/\">22.8</a>, <a href=\"https://make.wordpress.org/core/2026/04/09/whats-new-in-gutenberg-22-9-8-april/\">22.9</a>, <a href=\"https://make.wordpress.org/core/2026/04/22/whats-new-in-gutenberg-23-0-22-april/\">23.0</a>, <a href=\"https://make.wordpress.org/core/2026/05/07/whats-new-in-gutenberg-23-1-07-may/\">23.1</a>, <a href=\"https://make.wordpress.org/core/2026/05/21/whats-new-in-gutenberg-23-2-21-may/\">23.2</a>, <a href=\"https://make.wordpress.org/core/2026/06/03/whats-new-in-gutenberg-23-3-03-jun/\">23.3</a>, <a href=\"https://make.wordpress.org/core/2026/06/17/whats-new-in-gutenberg-23-3-03-jun-2/\">23.4</a>, <a href=\"https://make.wordpress.org/core/2026/07/01/whats-new-in-gutenberg-23-5-july-1-2026/\">23.5</a> and 23.6.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What’s new in WordPress 7.1?</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 delivers a more complete set of styling controls, a smoother media experience, and a more personalized admin experience. Notes have evolved to add inline notes with @mentions and rich text formatting that make asynchronous feedback feel more powerful. New styling features unlock long requested features to style how blocks look across screen sizes and to style interactive states, all without writing custom CSS. Various client side media improvements means better format support, improved performance, and more resilient uploads when adding media to your site. A new inline cropping tool brings a fresh and more robust experience to editing images. Finally, the admin experience becomes easier to navigate with an ever present admin bar in the editors, improvements to the command palette, and various quality of life improvements. Underneath it all, developers get an expanding set of APIs to build on, and site owners get better support for a truly global audience.</p>\n\n\n\n<h3 class=\"wp-block-heading\">New suite of Notes features</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Notes continue to grow into a fuller collaboration experience, making asynchronous feedback between teams faster and more expressive.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Text Formatting</strong>: Notes now support inline formatting like bold, italic, code, links and adding emoji; each with a respective keyboard shortcut, so feedback reads clearly without breaking your flow.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>@mentions</strong>: Type &#8220;@&#8221; in a Note to pull up a searchable list of collaborators and tag someone directly, so feedback points at the right person without leaving the sidebar.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Leave notes anywhere</strong>: Start more than one conversation on the same block instead of folding every comment into a single thread, making it easier to track distinct pieces of feedback.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Inline notes:</strong> Leave a note on a text selection instead of on an entire block.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Show more / show less</strong>: Long notes now collapse by default with a toggle to expand them, keeping the margin tidy while you write.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Style it your way, on any screen</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 takes a major step toward built-in responsive design and interactive styling, letting you achieve looks that once required writing custom CSS.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Responsive styling</strong>: Define how a block looks at different screen sizes directly in the editor, for both Global Styles and individual blocks without the need of writing custom CSS.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Viewport breakpoint customization</strong>: Theme authors can now define their own responsive breakpoints in <code>theme.json</code>, giving more flexibility for how responsive controls behave on a given site.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Interactive state styling</strong>: Style how blocks respond to interaction, like a button changing color on hover or focus, using a standardized set of controls for both Global Styles and individual block instances.</p>\n\n\n\n<h3 class=\"wp-block-heading\">A smoother media experience</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Uploading, editing, and browsing media keeps getting more capable and more reliable.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Client-side media processing</strong>: Image and media processing moves into the browser, now with broader format support that includes HEIC (the default format for iPhone photos), UltraHDR, AVIF and WebP support built in,&nbsp;plus GIF-to-video conversion for lighter, more efficient files. Uploads are also more resilient, with a progress indicator and automatic retries if your data connectivity drops off.</li>\n\n\n\n<li><strong>New Media Editor Modal</strong>: A dedicated modal for editing images replaces the inline cropping tool, bringing cropping, rotation, and metadata editing together in one streamlined workflow.</li>\n\n\n\n<li><strong>Smarter galleries</strong>: Gallery blocks can automatically pull in and sort media already attached to the current post, cutting down on manual set-up.</li>\n\n\n\n<li><strong>View attached images:</strong> After you upload images to a post, the inserter will automatically surface them in a new Attached images section to make it easier to find relevant images.</li>\n\n\n\n<li><strong>Infinite scrolling by default</strong>: The Media Library grid view now loads additional items automatically as you scroll, rather than requiring a click on &#8220;Load more&#8221; especially handy for sites that handle large media libraries. This can be disabled under your user profile.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">A more personal, more navigable admin</h3>\n\n\n\n<p class=\"wp-block-paragraph\">These meaningful upgrades make the WordPress admin easier to move around in and more consistent with how you like to work.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Persistent toolbar (Omnibar)</strong>: The admin toolbar now travels with you into the Site Editor and Block Editor, with a series of polish improvements throughout.</li>\n\n\n\n<li><strong>Command palette improvements</strong>: Moving through the dashboard and editor with the command palette <code>(Ctrl/Cmd+K)</code> is more refined to make finding what you need even faster! Now results are grouped into <em>Recent, matching and Suggestions</em> sections instead of one flat list.</li>\n\n\n\n<li><strong>Admin color scheme in the Site Editor</strong>: The Site Editor now reflects your chosen admin color scheme instead of always using a fixed background.</li>\n\n\n\n<li><strong>DataViews and DataForms iterations</strong>: Continued refinement of the components behind managing lists of posts, pages, patterns, and templates, alongside the forms used to edit them.</li>\n\n\n\n<li><strong>Excerpts in the Posts list</strong>: The Posts list view now shows a short excerpt for each entry, making it easier to identify the post you&#8217;re looking for without opening it.</li>\n\n\n\n<li><strong>Visual revisions</strong>: This release adds a picker activity layout for browsing history in more detail, clearly labeled autosaves in the timeline, and an autosave notice that opens straight into the visual revisions view. Global Styles revisions get a small polish too, swapping the <em>active</em> style&#8217;s text label for a badge.</li>\n\n\n\n<li><strong>A dedicated Identity section</strong>: Site identity settings like your title, tagline, and icon are now live in their own clearly labeled section of the Site Editor, making them easier to find and update.</li>\n\n\n\n<li><strong>On This Day Widget</strong>: A new widget resurfaces what you published on this date in past years, right on your dashboard. A small nudge to look back on what you&#8217;ve written, and a reason to write something new today.</li>\n\n\n\n<li><strong>Allow Changing Comment Parent:</strong> Fixing a misthreaded comment used to mean editing the database directly. WordPress 7.1 adds an editable &#8220;In reply to&#8221; control to the Edit Comment screen, letting you pick a new parent from a dropdown of the post&#8217;s other comments. It&#8217;s scoped to the same post, so this is about untangling threads, not moving comments across posts.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">New blocks and block-level enhancements</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 release brings a handful of block refinements that give more control with fewer steps.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Playlist Block:</strong> A new block for adding a collection of audio files to a post or page, with an optional waveform visualization that shows the audio&#8217;s shape as it plays; a more visual way to present podcasts, music, or audio content without using any third-party plugins.</li>\n\n\n\n<li><strong>Tabs Block:</strong> A new block for organizing content into clickable tabbed panels instead of showing everything at once. It&#8217;s a cleaner way to present related content without overwhelming the page.</li>\n\n\n\n<li><strong>Background gradients</strong>: Background gradients and background images no longer conflict. The gradient used to get silently overridden by the image, but now they combine and display together. This fix extends beyond the Group block to Verse, Accordion, Pullquote, Post Content, and Quote block.</li>\n\n\n\n<li><strong>HTML block editable content</strong>: The HTML block now supports editable nested blocks. This is great to use for AI-generated content, which often arrives as raw HTML.</li>\n\n\n\n<li><strong>&#8220;Mark as decorative&#8221; for images</strong>: A new toggle on the Image block lets you hide purely decorative images from screen readers for a better accessibility experience.</li>\n\n\n\n<li><strong>Smarter shortcode handling</strong>: Pasting or converting a shortcode into the Embed block now creates a proper Embed block instead of leaving raw shortcode text behind, and the Shortcode block gains block-specific transforms of its own.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">Built for a global audience</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 continues work to make Core reflect the full diversity of its worldwide community, with progress toward supporting Unicode email addresses so usernames, slugs, and email addresses can better represent users everywhere.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Built for developers</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 continues to expand the foundation developers build on.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Abilities API expansion</strong>: Continued refinement of the Abilities API with improved querying, filtering, and input validation, giving developers and AI tooling a more reliable foundation to build on.</li>\n\n\n\n<li><strong>Block Bindings for list items</strong>: Block Bindings now extend to List Item, making it possible to connect more block content to dynamic data sources without custom code.</li>\n\n\n\n<li><strong>Custom icon registration</strong>: New functions let plugin and theme authors register their own icons for the Icons block for use throughout the block editor.</li>\n\n\n\n<li><strong>Enforced iframed editor</strong>: The post editor now always runs inside an iframe, isolating the editing canvas from admin styles for more predictable rendering. Blocks using Block API v2 or lower should be updated to v3 for compatibility.</li>\n\n\n\n<li><strong>wordpress/theme stabilization</strong>: Introduces design tokens and a stable React ThemeProvider to provide a more consistent, customizable foundation for WordPress admin interfaces.</li>\n\n\n\n<li><strong>Connectors authentication improvements</strong>: The Connectors screen now also supports username and application-password login &#8211; a more familiar way to connect plugins and services. This release also closes a security gap where browsers could auto-suggest saved credentials into the API key field.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">With so much in progress for WordPress 7.1 Beta 1, this is still only the beginning; expect continued refinement with each Beta and RC release ahead of the final release on <strong>August 19, 2026</strong>.</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\">Seeds of Seven-One,<br>Notes, styles, media, and tools—<br>Test, and watch them bloom.</p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to </em><a href=\'https://profiles.wordpress.org/benjamin_zekavica/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>benjamin_zekavica</a>, <a href=\'https://profiles.wordpress.org/amykamala/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>amykamala</a>, <a href=\'https://profiles.wordpress.org/wildworks/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>wildworks</a>, <a href=\'https://profiles.wordpress.org/adamsilverstein/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>adamsilverstein</a>, <a href=\'https://profiles.wordpress.org/annezazu/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>annezazu</a>, <a href=\'https://profiles.wordpress.org/fushar/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>fushar</a>, <a href=\'https://profiles.wordpress.org/jorgefilipecosta/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>jorgefilipecosta</a><em>, <a href=\'https://profiles.wordpress.org/joedolson/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>joedolson</a> for proofreading and review.</em></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20987\";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:63:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"Your Guide to WordCamp US 2026\";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:51:\"https://wordpress.org/news/2026/07/wcus-2026-guide/\";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, 13 Jul 2026 13:07:07 +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:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:6:\"Events\";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:5:{s:4:\"data\";s:8:\"WordCamp\";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:5:{s:4:\"data\";s:4:\"WCUS\";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=21007\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:350:\"WordCamp US 2026 returns for another year, this time in Phoenix, Arizona, for four days, August 16 to 19. It comes at a moment of real energy for WordPress, as artificial intelligence reshapes everyday workflows, the business of building and maintaining sites is shifting, and new people keep discovering the platform every day. Four tracks [&#8230;]\";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:17:\"Nicholas Garofalo\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:55793:\"\n<figure class=\"wp-block-image size-large has-custom-border is-style-default\" style=\"margin-top:var(--wp--preset--spacing--10);margin-bottom:var(--wp--preset--spacing--10)\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser.png?resize=1024%2C321&#038;ssl=1\" alt=\"WordCamp US: Powered by WordPress, Driven by Community, August 16-19, 2026\" class=\"wp-image-20859\" style=\"border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=1024%2C321&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=300%2C94&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=768%2C241&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=1536%2C482&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=2048%2C643&amp;ssl=1 2048w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" /><figcaption class=\"wp-element-caption\"><img src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c5.png\" alt=\"📅\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" /> <strong>August 16-19, 2026 | Phoenix Convention Center</strong>,<strong> Phoenix, Arizona</strong></figcaption></figure>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp US 2026 returns for another year, this time in Phoenix, Arizona, for four days, August 16 to 19. It comes at a moment of real energy for WordPress, as artificial intelligence reshapes everyday workflows, the business of building and maintaining sites is shifting, and new people keep discovering the platform every day. Four tracks address this moment, covering AI, Honing Your Skills, Technical WordPress, and Beginner WordPress. Between them, there is something for everyone, whether you lead an agency, freelance for local clients, write code for a living, or are building your very first site. Whatever draws you in, you will leave Phoenix better equipped and better connected than ever.</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-c9c19393 wp-block-buttons-is-layout-flex\" style=\"padding-right:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2026/tickets/\">Get Your Tickets</a></div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2026/contributor-day/\">Sign Up for Contributor Day</a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Phoenix itself rewards anyone who adds a day or two to their trip. The capital of Arizona sits in the Sonoran Desert and pairs a lively downtown with a rich arts and food scene. The Roosevelt Row arts district is known for its galleries, murals, and independent restaurants. It is also home to one of the largest art walks in the region. Nearby, Chase Field and the Footprint Center host professional baseball and live shows, and the surrounding desert offers striking scenery at places like Papago Park and the Desert Botanical Garden.</p>\n\n\n\n<div class=\"wp-block-jetpack-slideshow aligncenter\" data-effect=\"fade\"><div class=\"wp-block-jetpack-slideshow_container swiper\"><ul class=\"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper\"><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1920\" height=\"1147\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21052\" data-id=\"21052\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=1920%2C1147&#038;ssl=1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?w=1920&amp;ssl=1 1920w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=767%2C458&amp;ssl=1 767w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=1024%2C612&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=1536%2C918&amp;ssl=1 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"612\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21053\" data-id=\"21053\" data-aspect-ratio=\"1024 / 612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=1024%2C612&#038;ssl=1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=1024%2C612&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=768%2C459&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=1536%2C918&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"612\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21054\" data-id=\"21054\" data-aspect-ratio=\"1024 / 612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=1024%2C612&#038;ssl=1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=1024%2C612&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=768%2C459&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=1536%2C918&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"612\" alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21056\" data-id=\"21056\" data-aspect-ratio=\"1024 / 612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=1024%2C612&#038;ssl=1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=1024%2C612&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=768%2C459&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=1536%2C918&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" /></figure></li></ul><a class=\"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white\" role=\"button\"></a><a class=\"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white\" role=\"button\"></a><a aria-label=\"Pause Slideshow\" class=\"wp-block-jetpack-slideshow_button-pause\" role=\"button\"></a><div class=\"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white\"></div></div></div>\n\n\n\n<h2 class=\"wp-block-heading\">Start with Contributor Day</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The week begins with <a href=\"https://us.wordcamp.org/2026/contributor-day/\">Contributor Day</a>, a full day set aside for giving back to the project that makes everything else possible. Attendees will gather in teams to improve WordPress itself, from Core code and documentation to design, training, accessibility, and translation.</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\">WordPress is so unique because we&#8217;re not just a product; we&#8217;re a movement.</p>\n<cite>Matt Mullenweg, WordPress Cofounder</cite></blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Contributor Day is open to everyone, whatever your skills, and whether or not you have ever contributed before. Come and experience the open source collaboration that is at the heart of the project. <a href=\"https://us.wordcamp.org/2026/contributor-day/\">Signing up</a> in advance helps us prepare our veteran contributors and provide you with the best experience.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4e8c73a&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery alignfull has-nested-images columns-6 is-cropped has-black-background-color has-background wp-block-gallery-1 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px;border-radius:2px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8cf6c&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8cf6c\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"19085\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-19085\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926-scaled.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926-scaled.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926-scaled.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926-scaled.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926-scaled.jpg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8d7b0&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8d7b0\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1707\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"19089\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?fit=1024%2C683&amp;ssl=1\" alt=\"\" class=\"wp-image-19089\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?w=2560&amp;ssl=1 2560w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8df39&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8df39\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"19110\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-19110\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?w=2048&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8e705&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8e705\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21080\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21080\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8ef0f&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8ef0f\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21078\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21078\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8f671&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8f671\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21079\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21079\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e8fe88&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e8fe88\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21077\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21077\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e906ba&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e906ba\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21074\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21074\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e90db9&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e90db9\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21076\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21076\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e91576&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e91576\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21083\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21083\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e91ed7&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e91ed7\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21082\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21082\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z632983.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e9276e&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e9276e\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"19083\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-19083\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2-scaled.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2-scaled.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2-scaled.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2-scaled.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8887-2-scaled.jpg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<h2 class=\"wp-block-heading\">Explore Real-World Projects on Showcase Day</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Day 2, Showcase Day, is dedicated to real-world WordPress projects and focuses on how teams develop features, manage publishing, and run demanding sites at scale. It brings to life the kind of work collected in the WordPress <a href=\"https://wordpress.org/showcase/\">Showcase</a>, the directory of standout sites built on the platform, from global brands like <a href=\"https://wordpress.org/showcase/disney-connect/\">Disney</a> to community publishers and institutions like <a href=\"https://wordpress.org/showcase/nasa/\">NASA</a>. Past WordCamp US Showcase days have brought teams from the likes of <a href=\"https://www.youtube.com/watch?v=PGvh7fCOUk0\">Wikimedia</a> and <a href=\"https://www.youtube.com/watch?v=MHk-Us00pTk\">CANCOM</a> to explain how they manage large, high-traffic systems. Other sessions took a builder&#8217;s perspective on catching bugs faster with automated testing and even running the Block Editor inside a custom app.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-21064\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637241.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\">Dive Into Two Conference Days</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The two main conference days will bring a full slate of sessions across four tracks. First among them is the AI track, which treats the technology as a tool to handle with care rather than a headline to chase. Its sessions set guardrails for AI-assisted development, prepare for a web where AI agents become the visitors a site must serve, and weigh the legal and ethical questions of putting AI tools in the hands of clients. Speakers from companies like Elementor will be taking a look at where the web is heading, while keeping the focus on what teams can adopt today without giving up control of their work.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The Technical WordPress and Honing Your Skills tracks cover the craft and business of building with WordPress. On the technical side, sessions dig into modern development workflows, automated testing with tools like the browser-based <a href=\"https://playground.wordpress.net/\">WordPress Playground</a>, and plugin pipelines. The Honing Your Skills track adds practical guidance on pricing, maintenance, and how the agency model is changing as clients ask for more. The Beginner WordPress track keeps the door open for newcomers, with approachable sessions that make your first WordCamp less daunting. Hands-on work runs through all of these tracks, so alongside the talks, attendees will find workshops and working sessions where they can build something real and leave ready to apply it to their own projects.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4e9402e&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery alignfull has-nested-images columns-6 is-cropped has-black-background-color has-background wp-block-gallery-2 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e946d0&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e946d0\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"19080\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-19080\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641-scaled.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641-scaled.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641-scaled.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641-scaled.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2025/08/IMG_5641-scaled.jpg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e94f16&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e94f16\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21086\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21086\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z633923.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e9562b&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e9562b\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21085\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21085\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9190.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e95b19&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e95b19\" class=\"wp-block-image size-full wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1280\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21065\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z637801.jpg?resize=1920%2C1280&#038;ssl=1\" alt=\"\" class=\"wp-image-21065\" style=\"aspect-ratio:1\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e96360&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e96360\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21084\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?resize=819%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-21084\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?resize=819%2C1024&amp;ssl=1 819w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?resize=240%2C300&amp;ssl=1 240w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?resize=1229%2C1536&amp;ssl=1 1229w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?resize=768%2C960&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/Z637088-1.jpg?w=1536&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4e96b7f&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4e96b7f\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"21081\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-21081\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/07/DSC9344.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<p class=\"wp-block-paragraph\">Not all of the value happens in the session rooms. On the show floor, the <a href=\"https://us.wordcamp.org/2026/47-days-out-whats-waiting-for-you-at-wordcamp-us-2026/#happiness\">Happiness Bar</a> is a free, drop-in help desk where you can sit down with a volunteer WordPress expert and work through whatever has you stuck. The <a href=\"https://us.wordcamp.org/2026/47-days-out-whats-waiting-for-you-at-wordcamp-us-2026/#sponsor\">Sponsor Hall</a> next door is where many of the best unplanned conversations happen, and its <a href=\"https://us.wordcamp.org/2026/47-days-out-whats-waiting-for-you-at-wordcamp-us-2026/#career\">Career Corner</a> gives anyone weighing their next move a relaxed place to browse the job board, meet company reps, and see who is hiring across the ecosystem.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Plan Your Trip to Phoenix</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Getting to Phoenix is straightforward. The <a href=\"https://us.wordcamp.org/2026/about/venue/\">Phoenix Convention Center</a> sits in the heart of downtown, less than five miles from Phoenix Sky Harbor International Airport (PHX) and about 15 minutes away on the <a href=\"https://www.valleymetro.org/how-to-ride/rail\">Valley Metro light rail</a>. WordCamp US has a room block at the Sheraton Phoenix Downtown, close to the convention center, so <a href=\"https://book.passkey.com/event/51129263/owner/68648/home\">book your hotel</a> before the block fills, and <a href=\"https://us.wordcamp.org/2026/tickets/\">reserve your ticket</a> if you have not already. The full event lineup and details live on the <a href=\"https://us.wordcamp.org/2026/schedule/\">WordCamp US 2026 site</a>, and the conference closes with an evening social before everyone heads home.</p>\n\n\n\n<div class=\"wp-block-group has-off-white-background-color has-background is-nowrap is-layout-flex wp-container-core-group-is-layout-7c1a8141 wp-block-group-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--edge-space);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--edge-space)\">\n<ol style=\"padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\" class=\"wp-block-list has-off-white-background-color has-background has-large-font-size wp-container-content-9cfa9a5a\">\n<li><strong><img src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f39f.png\" alt=\"🎟\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" /> </strong><a href=\"https://us.wordcamp.org/2026/tickets/\">Reserve your ticket</a></li>\n\n\n\n<li><img src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f6cf.png\" alt=\"🛏\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" /><a href=\"https://us.wordcamp.org/2026/about/travel-accommodation/\"> Find accommodations</a></li>\n\n\n\n<li><img src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f68c.png\" alt=\"🚌\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" /><a href=\"https://us.wordcamp.org/2026/plan-your-trip-to-phoenix/\"> Plan your trip</a></li>\n\n\n\n<li><img src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cd.png\" alt=\"📍\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" /><a href=\"https://www.visitphoenix.com/\">Explore Phoenix</a></li>\n</ol>\n\n\n\n<figure class=\"wp-block-image size-full wp-container-content-577e1c61\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2066\" height=\"2560\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=2066%2C2560&#038;ssl=1\" alt=\"\" class=\"wp-image-21164\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?w=2066&amp;ssl=1 2066w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=242%2C300&amp;ssl=1 242w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=826%2C1024&amp;ssl=1 826w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=768%2C952&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=1240%2C1536&amp;ssl=1 1240w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?resize=1653%2C2048&amp;ssl=1 1653w, https://i0.wp.com/wordpress.org/news/files/2026/07/route-66-traveller-boy-scaled.png?w=2000&amp;ssl=1 2000w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n</div>\n\n\n\n<h3 class=\"wp-block-heading\">Help Us Spread the Word!</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Whether attending in person or following along online, share your experience and help welcome others to the WordPress community. Use the #WCUS and #WordPress hashtags to tell your story on social.</p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"21007\";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:69:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 7.0.1 Maintenance Release\";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://wordpress.org/news/2026/07/wordpress-7-0-1-maintenance-release/\";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, 09 Jul 2026 17:33: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:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";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:5:{s:4:\"data\";s:3:\"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:\"\";}i:2;a:5:{s:4:\"data\";s:5:\"7.0.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:\"\";}i:3;a:5:{s:4:\"data\";s:14:\"minor-releases\";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:5:{s:4:\"data\";s:8:\"releases\";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=21005\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:395:\"WordPress 7.0.1 is now available! This minor release includes fixes for 31 bugs throughout Core and the Block Editor, addressing issues affecting multiple areas of WordPress including the block editor, admin ui, and media. For a full list of bug fixes, please refer to the release candidate announcement. WordPress 7.0.1 is a short-cycle maintenance release. The next major version [&#8230;]\";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:\"Estela Rueda\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8722:\"\n<p class=\"wp-block-paragraph\"><strong>WordPress 7.0.1 is now available!</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">This minor release includes fixes for 31 bugs <a href=\"https://core.trac.wordpress.org/query?resolution=fixed&amp;milestone=7.0.1&amp;group=component&amp;col=id&amp;col=summary&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=status&amp;col=priority&amp;order=priority\">throughout Core</a> and the <a href=\"https://core.trac.wordpress.org/changeset/62610\">Block Editor</a>, addressing issues affecting multiple areas of WordPress including the block editor, admin ui, and media. For a full list of bug fixes, please refer to the <a href=\"https://make.wordpress.org/core/2026/07/01/wordpress-7-0-1-rc1-is-now-available/\">release candidate announcement.</a></p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.0.1 is a short-cycle maintenance release. The next major version of WordPress will be 7.1; it is scheduled for release on 19 August 2026 at <a href=\"https://us.wordcamp.org/2026/\">WordCamp US</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have sites that support automatic background updates, the update process will begin automatically.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You can&nbsp;<a href=\"https://wordpress.org/wordpress-7.0.1.zip\">download WordPress 7.0.1 from WordPress.org</a>, or visit your WordPress Dashboard, click “Updates”, and then click “Update Now”. For more information on this release, please&nbsp;<a href=\"https://wordpress.org/support/wordpress-version/version-7-0-1\">visit the HelpHub site</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Thank you to these WordPress contributors</h2>\n\n\n\n<p class=\"wp-block-paragraph\">This release was led by&nbsp;<a href=\"https://profiles.wordpress.org/jorbin/\">Aaron Jorbin</a>, <a href=\"https://profiles.wordpress.org/masteradhoc/\">Brian Haas</a>, <a href=\"https://profiles.wordpress.org/cbravobernal/\">Carlos Bravo</a> and <a href=\"https://profiles.wordpress.org/estelaris/\">Estela Rueda</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.0.1 would not have been possible without the contributions of the following people. Their asynchronous coordination to deliver maintenance fixes into a stable release is a testament to the power and capability of the WordPress community.</p>\n\n\n\n<p class=\"is-style-wporg-props-long wp-block-paragraph\"><a href=\"https://profiles.wordpress.org/jorbin\">Aaron Jorbin</a>, <a href=\"https://profiles.wordpress.org/abduremon\">Abdur Rahman Emon</a>, <a href=\"https://profiles.wordpress.org/abhishekfdd\">Abhishek Kumar</a>, <a href=\"https://profiles.wordpress.org/adamsilverstein\">Adam Silverstein</a>, <a href=\"https://profiles.wordpress.org/zieladam\">Adam Zieliński</a>, <a href=\"https://profiles.wordpress.org/iamadisingh\">Aditya Singh</a>, <a href=\"https://profiles.wordpress.org/wildworks\">Aki Hamano</a>, <a href=\"https://profiles.wordpress.org/afercia\">Andrea Fercia</a>, <a href=\"https://profiles.wordpress.org/andraganescu\">Andrei Draganescu</a>, <a href=\"https://profiles.wordpress.org/andrewserong\">Andrew Serong</a>, <a href=\"https://profiles.wordpress.org/annezazu\">annezazu</a>, <a href=\"https://profiles.wordpress.org/scruffian\">Ben Dwyer</a>, <a href=\"https://profiles.wordpress.org/bacoords\">Brian Coords</a>, <a href=\"https://profiles.wordpress.org/masteradhoc\">Brian Haas</a>, <a href=\"https://profiles.wordpress.org/cbravobernal\">Carlos Bravo</a>, <a href=\"https://profiles.wordpress.org/cogdesign\">cogdesign</a>, <a href=\"https://profiles.wordpress.org/danluu\">Dan Luu</a>, <a href=\"https://profiles.wordpress.org/talldanwp\">Daniel Richards</a>, <a href=\"https://profiles.wordpress.org/darshitrajyaguru97\">Darshit Rajyaguru</a>, <a href=\"https://profiles.wordpress.org/davidbaumwald\">David Baumwald</a>, <a href=\"https://profiles.wordpress.org/dmsnell\">Dennis Snell</a>, <a href=\"https://profiles.wordpress.org/dhruvang21\">Dhruvang21</a>, <a href=\"https://profiles.wordpress.org/ellatrix\">Ella Van Durpe</a>, <a href=\"https://profiles.wordpress.org/r1k0\">Erick Wambua</a>, <a href=\"https://profiles.wordpress.org/ecairol\">Esteban</a>, <a href=\"https://profiles.wordpress.org/estelaris\">Estela Rueda</a>, <a href=\"https://profiles.wordpress.org/mamaduka\">George Mamadashvili</a>, <a href=\"https://profiles.wordpress.org/gziolo\">Greg Ziółkowski</a>, <a href=\"https://profiles.wordpress.org/abcd95\">Himanshu Pathak</a>, <a href=\"https://profiles.wordpress.org/hbhalodia\">Hit Bhalodia</a>, <a href=\"https://profiles.wordpress.org/huzaifaalmesbah\">Huzaifa Al Mesbah</a>, <a href=\"https://profiles.wordpress.org/iflairwebtechnologies\">iflairwebtechnologies</a>, <a href=\"https://profiles.wordpress.org/jamesbregenzer\">James</a>, <a href=\"https://profiles.wordpress.org/jsnajdr\">Jarda Snajdr</a>, <a href=\"https://profiles.wordpress.org/audrasjb\">Jb Audras</a>, <a href=\"https://profiles.wordpress.org/joedolson\">Joe Dolson</a>, <a href=\"https://profiles.wordpress.org/joen\">Joen Asmussen</a>, <a href=\"https://profiles.wordpress.org/jonsurrell\">Jon Surrell</a>, <a href=\"https://profiles.wordpress.org/desrosj\">Jonathan Desrosiers</a>, <a href=\"https://profiles.wordpress.org/karthikeya01\">Karthikeya Bethu</a>, <a href=\"https://profiles.wordpress.org/khokansardar\">Khokan Sardar</a>, <a href=\"https://profiles.wordpress.org/rlucian\">Lucian R.</a>, <a href=\"https://profiles.wordpress.org/luismulinari\">luismulinari</a>, <a href=\"https://profiles.wordpress.org/dervishov\">Mahammad Darvishov</a>, <a href=\"https://profiles.wordpress.org/manhar\">Manhar Barot</a>, <a href=\"https://profiles.wordpress.org/mciampini\">Marco Ciampini</a>, <a href=\"https://profiles.wordpress.org/tyxla\">Marin Atanasov</a>, <a href=\"https://profiles.wordpress.org/muryam\">Maryam Sultana</a>, <a href=\"https://profiles.wordpress.org/masum52\">Masum</a>, <a href=\"https://profiles.wordpress.org/mcsf\">Miguel Fonseca</a>, <a href=\"https://profiles.wordpress.org/369work\">Miroku</a>, <a href=\"https://profiles.wordpress.org/mohamedahamed\">Mohammed Noumaan Ahamed</a>, <a href=\"https://profiles.wordpress.org/mukesh27\">Mukesh Panchal</a>, <a href=\"https://profiles.wordpress.org/mustafabharmal\">Mustafa Bharmal</a>, <a href=\"https://profiles.wordpress.org/ntsekouras\">Nik Tsekouras</a>, <a href=\"https://profiles.wordpress.org/noruzzaman\">Noruzzaman</a>, <a href=\"https://profiles.wordpress.org/ozgursar\">Ozgur Sar</a>, <a href=\"https://profiles.wordpress.org/peterwilsoncc\">Peter Wilson</a>, <a href=\"https://profiles.wordpress.org/presskopp\">Presskopp</a>, <a href=\"https://profiles.wordpress.org/ekla\">Rahul Kumar</a>, <a href=\"https://profiles.wordpress.org/ramonopoly\">ramonopoly</a>, <a href=\"https://profiles.wordpress.org/youknowriad\">Riad Benguella</a>, <a href=\"https://profiles.wordpress.org/rishabhwp\">Rishabh Gupta</a>, <a href=\"https://profiles.wordpress.org/roshniahuja14\">Roshni Ahuja</a>, <a href=\"https://profiles.wordpress.org/sainathpoojary\">Sainath Poojary</a>, <a href=\"https://profiles.wordpress.org/sakshamsharma5\">Saksham Sharma</a>, <a href=\"https://profiles.wordpress.org/andrewssanya\">SAndrew</a>, <a href=\"https://profiles.wordpress.org/coffee2code\">Scott Reilly</a>, <a href=\"https://profiles.wordpress.org/sergeybiryukov\">Sergey Biryukov</a>, <a href=\"https://profiles.wordpress.org/siliconforks\">siliconforks</a>, <a href=\"https://profiles.wordpress.org/sabernhardt\">Stephen Bernhardt</a>, <a href=\"https://profiles.wordpress.org/swanandm\">Swanand M</a>, <a href=\"https://profiles.wordpress.org/inc2734\">Takashi Kitajima</a>, <a href=\"https://profiles.wordpress.org/edent\">Terence Eden</a>, <a href=\"https://profiles.wordpress.org/threadi\">threadi</a>, <a href=\"https://profiles.wordpress.org/tusharaddweb\">Tushar Patel</a>, <a href=\"https://profiles.wordpress.org/umesh.nevase\">Umesh Nevase</a>, <a href=\"https://profiles.wordpress.org/webmandesign\">WebMan Design | Oliver Juhas</a>, <a href=\"https://profiles.wordpress.org/westonruter\">Weston Ruter</a>, <a href=\"https://profiles.wordpress.org/yogeshbhutkar\">Yogesh Bhutkar</a>, <a href=\"https://profiles.wordpress.org/yusufmudagal\">Yusuf Mudagal</a> </p>\n\n\n\n<h2 class=\"wp-block-heading\">How to contribute</h2>\n\n\n\n<p class=\"wp-block-paragraph\">To get involved in WordPress core development, head over to Trac,&nbsp;<a href=\"https://core.trac.wordpress.org/report/6\">choose a ticket</a>, and join the conversation in the&nbsp;<a href=\"https://wordpress.slack.com/archives/C02RQBWTW\">#core</a>&nbsp;channel. Need help? Check out the&nbsp;<a href=\"https://make.wordpress.org/core/handbook/\">Core Contributor Handbook</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Props to </em><a href=\'https://profiles.wordpress.org/jorbin/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>jorbin</a><em> for proofreading.</em></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"21005\";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:63:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"The First AI Leaders Graduates\";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/06/ai-leaders-graduates/\";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, 29 Jun 2026 20:29:26 +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:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:9:\"Education\";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:5:{s:4:\"data\";s:7:\"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:\"\";}i:2;a:5:{s:4:\"data\";s:2:\"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:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=20951\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:377:\"On June 23, around 40 students from the University of Illinois Chicago (UIC), Louisiana Tech University, and the University of Louisiana at Lafayette were celebrated in Chicago as the first cohort to receive the AI Leaders Micro-Credential through AI Leaders, the nation&#8217;s first workforce-focused AI literacy course tied to a recognized credential. Each of them [&#8230;]\";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:\"Mary Hubbard\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5442:\"\n<p class=\"wp-block-paragraph\">On June 23, around 40 students from the University of Illinois Chicago (UIC), Louisiana Tech University, and the University of Louisiana at Lafayette were celebrated in Chicago as the first cohort to receive the AI Leaders Micro-Credential through <a href=\"https://ai-leaders.org/\">AI Leaders</a>, the nation&#8217;s first workforce-focused AI literacy course tied to a recognized credential. Each of them earned it by building real projects, applying generative AI to genuine work, and contributing to the open source software that powers more than 40% of the web. Students who completed the course also earned $1,000, made possible by a donation from Automattic and UIC. This celebration was the moment the program had been building toward since it was <a href=\"https://wordpress.org/news/2026/02/ai-leaders-credential/\">first announced in February</a>.</p>\n\n\n\n<div class=\"wp-block-group has-background is-layout-constrained wp-container-core-group-is-layout-2431c55b wp-block-group-is-layout-constrained\" style=\"background-color:#0c1125;padding-top:var(--wp--preset--spacing--edge-space);padding-right:var(--wp--preset--spacing--edge-space);padding-bottom:var(--wp--preset--spacing--edge-space);padding-left:var(--wp--preset--spacing--edge-space)\">\n<p class=\"has-text-align-center has-white-color has-text-color has-link-color has-normal-font-size wp-elements-2 wp-block-paragraph\"><strong>Explore the project portfolios built by this year’s AI Leaders</strong></p>\n\n\n\n<figure class=\"wp-block-image size-full\" style=\"margin-top:var(--wp--preset--spacing--10);margin-bottom:var(--wp--preset--spacing--10)\"><a href=\"https://aileaderswp.blog/\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/aileaderswpblog-scaled.png?ssl=1\" alt=\"\" class=\"wp-image-20975\" /></a></figure>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://aileaderswp.blog/\"><strong>AI Leaders · Class of 2026</strong></a></div>\n</div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">When the pilot launched, the goal was to test whether open source learning could connect directly to job pathways rather than stopping at a certificate. What makes this program distinct is that it is built on open source from the ground up: students learn on WordPress, contribute to it, and use generative AI the way the WordPress ecosystem uses it every day, leaving with a credential that employers can verify and a community that continues long after the course ends.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The pilot reflects a shared belief that AI and open source skills should be within reach regardless of where someone lives or what they can afford.</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\">WordPress was built to expand access to publishing and participation on the open web.</p>\n</blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The program is a collaboration with distinct roles for each partner. It is funded through the <a href=\"https://osf.it.uic.edu/\">UIC Tech Solutions Open Source Fund</a>, with support from the <a href=\"https://www.uic.edu/\">University of Illinois Chicago</a> and <a href=\"https://automattic.com/?p=867048\">Automattic</a>, while the WordPress project and the <a href=\"https://wordpressfoundation.org/\">WordPress Foundation</a> contribute to the development of the curriculum itself.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What Comes Next</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first cohort was just the beginning. The gathering in Chicago brought this group together with employers and agencies, and further job placements are already in motion. </p>\n\n\n\n<div class=\"wp-block-group has-off-white-2-background-color has-background is-layout-constrained wp-container-core-group-is-layout-2431c55b wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--edge-space);padding-right:var(--wp--preset--spacing--edge-space);padding-bottom:var(--wp--preset--spacing--edge-space);padding-left:var(--wp--preset--spacing--edge-space)\">\n<p class=\"has-text-align-center wp-block-paragraph\">The next round of AI Leaders is on the horizon. Subscribe for updates to be the first to hear when the next cohort opens and how to take part.</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://ai-leaders.org/#apply\"><strong>Subscribe for AI Leaders Updates</strong></a></div>\n</div>\n</div>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-dark-strokes-grey-color has-alpha-channel-opacity has-dark-strokes-grey-background-color has-background\" />\n\n\n\n<p class=\"wp-block-paragraph\"><em>WordPress offers a wide range of educational opportunities for people at every stage, from first steps to advanced contribution. Explore workshops, lesson plans, and community-created resources designed to help you build practical skills while connecting with others who are learning and contributing at <a href=\"https://wordpress.org/education/\">WordPress.org/education/</a>.</em></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20951\";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:57:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:36:\"Browse the New Mercantile Swag Store\";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:50:\"https://wordpress.org/news/2026/06/open-web-merch/\";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, 22 Jun 2026 15:07: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:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:6:\"Design\";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=20930\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:324:\"Mercantile, the official swag store of the WordPress project, has a newly redesigned storefront with a catalog that now sits front and center, and a design tuned to hold up across a wide range of screen sizes. There are also small touches, like automatically selecting a variant when only one is in stock and order [&#8230;]\";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:5:\"jillq\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5622:\"\n<p class=\"wp-block-paragraph\"><a href=\"https://mercantile.wordpress.org/\">Mercantile</a>, the official swag store of the WordPress project, has a newly redesigned storefront with a catalog that now sits front and center, and a design tuned to hold up across a wide range of screen sizes. There are also small touches, like automatically selecting a variant when only one is in stock and order emails styled to match the look and feel of the store.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1055\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?resize=2048%2C1055&#038;ssl=1\" alt=\"\" class=\"wp-image-20931\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?w=2048&amp;ssl=1 2048w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?resize=300%2C155&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?resize=767%2C395&amp;ssl=1 767w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?resize=1024%2C528&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-1.png?resize=1536%2C791&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Throughout the design, the storefront leans into the history and culture of WordPress. Visual and copy choices nod to familiar elements of the project, from the metabox and the admin bar to Wapuu making the occasional appearance, with small open source and code references for those who look closely. The aim was a storefront that feels uniquely WordPress.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Under the hood, the storefront shows what a modern WordPress and <a href=\"https://woocommerce.com/\">WooCommerce</a> site can do. It is built almost entirely with blocks, including a block-based cart, checkout, mini-cart, and order confirmation, supported by a set of custom theme blocks created for the store. The <a href=\"https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/iapi-about/\">Interactivity API</a> powers the catalog navigation and modal states, the store runs on WordPress 7.0, and accessibility is built in throughout, honoring reduced-motion preferences across animations and meeting color contrast standards. Product pages surface per-product attributes such as size, material, and care, so shoppers have the details they need before adding an item to the cart.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"800\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?resize=2048%2C800&#038;ssl=1\" alt=\"\" class=\"wp-image-20932\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?w=2048&amp;ssl=1 2048w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?resize=768%2C300&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?resize=1024%2C400&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-2.png?resize=1536%2C600&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">This latest redesign supported the Mercantile booth at <a href=\"https://europe.wordcamp.org/2026/\">WordCamp Europe</a>. To make in-person sales work smoothly, the team enabled local pickup at checkout and added a set of event-only products refined to match the rest of the catalog. Fifty orders were completed at the event using in-person payments, a strong real-world test of the new checkout flow.</p>\n\n\n\n<p class=\"wp-block-paragraph\">There is more on the way! A playful experiment in progress will let curious shoppers explore a text-based version of the store from the command line, a small tribute to the developers who make up much of the WordPress community. Subtle hints pointing the way will appear once it is ready.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"719\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?resize=2048%2C719&#038;ssl=1\" alt=\"\" class=\"wp-image-20933\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?w=2048&amp;ssl=1 2048w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?resize=300%2C105&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?resize=766%2C269&amp;ssl=1 766w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?resize=1024%2C360&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/image-3.png?resize=1536%2C539&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">The new Mercantile is the work of many contributors who designed, built, tested, and refined it together. Every purchase supports the <a href=\"https://wordpressfoundation.org/\">WordPress Foundation</a>, a 501(c)(3) nonprofit organization, in its mission to democratize publishing and preserve open source software for generations to come. Take a look around and find something you love.</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://mercantile.wordpress.org/\">Shop at <strong>mercantile.WordPress.org</strong></a></div>\n</div>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20930\";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:72:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"Kim Parsell Memorial Scholarship Opens for WordCamp US 2026\";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:64:\"https://wordpress.org/news/2026/06/kim-parsell-wcus-scholarship/\";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, 19 Jun 2026 16:55: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:8:\"category\";a:6:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";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:5:{s:4:\"data\";s:6:\"Events\";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:5:{s:4:\"data\";s:8:\"WordCamp\";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:5:{s:4:\"data\";s:11:\"Kim Parsell\";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:5:{s:4:\"data\";s:11:\"Scholarship\";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:5:{s:4:\"data\";s:4:\"WCUS\";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=20927\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:350:\"Applications are now open for the 2026 Kim Parsell Memorial Scholarship, which supports one active WordPress contributor who identifies as a woman and has not previously attended WordCamp US. The scholarship helps make it possible for a community member with financial need to join WordCamp US 2026 in Phoenix, Arizona, and take part in one [&#8230;]\";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:\"Brett McSherry\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5857:\"\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?resize=1920%2C1080&#038;ssl=1\" alt=\"\" class=\"wp-image-20941\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?w=1920&amp;ssl=1 1920w, https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/Kim-Parsell-Blog-post.png?resize=1536%2C864&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Applications are now open for the 2026 Kim Parsell Memorial Scholarship, which supports one active WordPress contributor who identifies as a woman and has not previously attended WordCamp US. The scholarship helps make it possible for a community member with financial need to join WordCamp US 2026 in Phoenix, Arizona, and take part in one of the largest annual gatherings in the WordPress project.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The scholarship honors Kim Parsell, a longtime WordPress contributor whose work and presence left a meaningful mark on the project. Kim was known for her care, generosity, and commitment to helping others feel welcome in open source spaces. For readers who are less familiar with her story, the <a href=\"https://us.wordcamp.org/2019/memories-of-kim-parsell/\">tributes shared by friends and colleagues</a> offer a deeper look at her role in the WordPress community and the lasting impact she had on those who knew her. Through this scholarship, the WordPress Foundation continues to recognize contributors who reflect that same spirit of participation and community.</p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress is built by people from many backgrounds, experiences, and areas of expertise. Events like WordCamp US create space for contributors to meet in person, learn from one another, and continue the work that supports the software and the community around it. For some contributors, the cost of travel, lodging, and registration can make attending difficult. The Kim Parsell Memorial Scholarship helps reduce that barrier for one eligible contributor each year.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Scholarship Details</h2>\n\n\n\n<p class=\"wp-block-paragraph\">One scholarship will be awarded for WordCamp US 2026. Applicants must:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identify as a woman. </li>\n\n\n\n<li>Be actively involved as a contributor to WordPress.</li>\n\n\n\n<li>Have never attended WordCamp US before.</li>\n\n\n\n<li>Demonstrate financial need to attend the event.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">The scholarship includes the cost of a WordCamp US 2026 ticket, round-trip flight, and lodging. Applications are open through July 10, 2026, and all applicants will be notified of the decision by July 24, 2026.</p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https://wordcampcentral.survey.fm/wcus-2026-kim-parsell-scholarship-application\" style=\"background-color:#6c214f\">Apply for the Kim Parsell Memorial Scholarship</a></div>\n</div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"wp-block-paragraph\">WordCamp US 2026 will take place August 16–19, 2026, at the Phoenix Convention Center in Phoenix, Arizona. Contributors, attendees, volunteers, organizers, and sponsors will come together to share ideas, learn from each other, and continue building the future of WordPress. For many contributors, attending in person creates new ways to collaborate, find support, and stay connected to the open source work that happens throughout the year.</p>\n\n\n\n<p class=\"wp-block-paragraph\">To learn more about eligibility, visit the <a href=\"https://wordpressfoundation.org/kim-parsell-memorial-scholarship/\">Kim Parsell Memorial Scholarship page</a>. Community members are encouraged to share this opportunity with contributors who may qualify. You can also learn more about attending WordCamp US 2026 on the <a href=\"https://us.wordcamp.org/2026/tickets/\">WordCamp US tickets page</a>, explore <a href=\"https://us.wordcamp.org/2026/call-for-volunteers/\">volunteer opportunities</a>, or review <a href=\"https://us.wordcamp.org/2026/call-for-sponsors/\">sponsorship opportunities</a>.</p>\n</div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"943\" height=\"1978\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?resize=943%2C1978&#038;ssl=1\" alt=\"\" class=\"wp-image-20939\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?w=943&amp;ssl=1 943w, https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?resize=143%2C300&amp;ssl=1 143w, https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?resize=768%2C1610&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?resize=488%2C1024&amp;ssl=1 488w, https://i0.wp.com/wordpress.org/news/files/2026/06/WCUS26_Sign.png?resize=732%2C1536&amp;ssl=1 732w\" sizes=\"auto, (max-width: 943px) 100vw, 943px\" /></figure>\n</div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\"></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20927\";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:69:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"Global Partners Across the First Half of the 2026 WordPress Event Season\";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://wordpress.org/news/2026/06/global-partners-first-half-2026/\";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, 18 Jun 2026 17:01:21 +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:8:\"category\";a:5:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";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:5:{s:4:\"data\";s:9:\"Education\";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:5:{s:4:\"data\";s:6:\"Events\";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:5:{s:4:\"data\";s:8:\"WordCamp\";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:5:{s:4:\"data\";s:15:\"Global Partners\";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=20910\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:402:\"This post recaps how the WordPress project&#8217;s five Global Partners — Jetpack, WordPress.com, WooCommerce, Bluehost, and Hostinger — supported community events during the first half of 2026. Across more than a dozen regional the first WordPress Developers Day, and a growing network of WordPress Campus Connect events, Global Partners staffed booths, sponsored sessions, and connected [&#8230;]\";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:\"Harmony Romo\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8155:\"\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55169598894_0199c1bbb9_o-scaled.jpg?ssl=1\" alt=\"\" class=\"wp-image-20911\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">This post recaps how the WordPress project&#8217;s five Global Partners — Jetpack, WordPress.com, WooCommerce, Bluehost, and Hostinger — supported community events during the first half of 2026. Across more than a dozen regional <a href=\"https://events.wordpress.org/novisad/2026/developer-day/\">the first WordPress Developers Day</a>, and a growing network of <a href=\"https://events.wordpress.org/campusconnect/\">WordPress Campus Connect</a> events, Global Partners staffed booths, sponsored sessions, and connected with developers, freelancers, students, and agency owners around the world.</p>\n\n\n\n<h2 class=\"wp-block-heading\">A global footprint</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The year began in January with <a href=\"https://nepal.wordcamp.org/2026\">WordCamp Nepal</a>, where Jetpack joined the community in Kathmandu. The momentum carried into India, where <a href=\"https://kolhapur.wordcamp.org/2026\">WordCamp Kolhapur</a> and, a week later, <a href=\"https://pune.wordcamp.org/2026\">WordCamp Pune</a> brought Global Partners face-to-face with a student-heavy audience of roughly 200-250 attendees. In Pune, a session on connecting WordPress with AI workflows drew a large crowd, and attendees were curious about WordPress.com plans, new AI features, and Automattic for Agencies.&nbsp;</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1206\" height=\"675\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/img_1932.jpg?resize=1206%2C675&#038;ssl=1\" alt=\"\" class=\"wp-image-20920\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/img_1932.jpg?w=1206&amp;ssl=1 1206w, https://i0.wp.com/wordpress.org/news/files/2026/06/img_1932.jpg?resize=300%2C168&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/img_1932.jpg?resize=766%2C429&amp;ssl=1 766w, https://i0.wp.com/wordpress.org/news/files/2026/06/img_1932.jpg?resize=1024%2C573&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">In February, Jetpack traveled to <a href=\"https://portharcourt.wordcamp.org/2026\">WordCamp Port Harcourt</a> in Nigeria, an inclusive and well-organized event with 256 attendees that featured talks on inclusion and accessibility. Locally produced swag was a standout success there, a reminder that the WordPress community&#8217;s reach extends well beyond Europe and North America.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Across Europe</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spring brought a wave of European events. At <a href=\"https://madrid.wordcamp.org/2026\">WordCamp Madrid</a>, with 280 attendees, WordPress.com served as a Global Sponsor and ran a Wapuu treasure hunt that drew 97 participants.&nbsp;</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55230328181_175ece15a5_o-scaled.jpg?ssl=1\" alt=\"\" class=\"wp-image-20921\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Down the coast in France, <a href=\"https://nice.wordcamp.org/2026\">WordCamp Nice</a> gave Jetpack a chance to connect with 247 freelancers and developers, an audience that appreciated concrete, easy-to-explain solutions and asked questions about newsletters, security, and Jetpack&#8217;s broader feature set.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://vienna.wordcamp.org/2026\">WordCamp Vienna</a> stood out for its developer-heavy crowd of 277. From a Jetpack-branded booth staffed on both days, the team engaged with agencies and merchants, fielded numerous questions about WooCommerce and security, and booked 8 agency meetings. Many builders were interested to learn that Automattic stands behind both WordPress.com and WooCommerce. In Italy and Germany, <a href=\"https://torino.wordcamp.org/2026\">WordCamp Torino</a> and <a href=\"https://leipzig.wordcamp.org/2026\">WordCamp Leipzig</a> both reflected growing curiosity about AI, a theme that resurfaced throughout the year. At Leipzig, with 109 agencies, hosting companies, and freelancers in attendance, WordPress.com staffed a booth where tote bags were in high demand, while conversations kept returning to AI and WordPress Studio.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://slovenia.wordcamp.org/2026\">WordCamp Slovenia </a>and <a href=\"https://portugal.wordcamp.org/2026\">WordCamp Portugal</a> closed the European stretch. WordPress.com brought a booth to Ljubljana, and in Porto, it appeared with both a booth and logo presence alongside WooCommerce, which suited an event filled with e-commerce builders and Woo payment providers. The first WordPress Developers Day in Novi Sad introduced a new format, with Jetpack as a global sponsor and nearly 30 in-depth conversations on Jetpack, WooCommerce, performance, and the realities of client work.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Community in Uganda</h2>\n\n\n\n<p class=\"wp-block-paragraph\">In May, <a href=\"https://kampala.wordcamp.org/2026\">WordCamp Kampala</a> brought four Global Partners onto the sponsor roster: Jetpack, WooCommerce, Bluehost, and WordPress.com. The event, themed &#8220;Tech for Social Good,&#8221; welcomed more than 200 attendees and reflected the energy of a fast-growing local community.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Support from Global Sponsors</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Behind every one of these events is a layer of support that does not always appear at a booth. In 2026, Bluehost and Hostinger both joined the <a href=\"https://events.wordpress.org/sponsor/\">WordPress community sponsorship program</a> as top-tier Global Sponsors, alongside Jetpack and WordPress.com. Their contributions help underwrite the global WordCamp program and the community events that make a year like this possible. That program-level backing is what allows organizers in Kathmandu, Porto, and Kampala to bring their events to life, and the WordPress community is grateful to every partner that invests at that scale.<br></p>\n\n\n\n<h2 class=\"wp-block-heading\">Campus Connect reaches 6,200 students</h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most notable stories of 2026 is not a WordCamp at all. It is <a href=\"https://events.wordpress.org/campusconnect/\">WordPress Campus Connect</a>. As of early June, the program has passed 6,200 students, with 25 events completed in 2026, 45 events all-time, and 42 more in planning or already scheduled. WordPress.com has played a direct support role throughout, including providing hosting for WordPress Campus Connect events around the world.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The connective tissue between these events and the broader community is real. An organizer first met at WordCamp Mukono went on to help lead WordPress Campus Connect work in Uganda. A student who built her first WordPress site at a WordPress Campus Connect event later attended a WordCamp. These events serve as a pathway for the next generation of WordPress contributors, builders, and professionals.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Looking ahead</h2>\n\n\n\n<p class=\"wp-block-paragraph\">If 2026 has shown anything, it is that interest in WordPress, and in the tools and services that Global Partners provide, continues to grow around the world. The questions being asked at booths and in sessions are sharper, the audiences more diverse, and the community&#8217;s reach more genuinely global. Thank you to Jetpack, WordPress.com, WooCommerce, Bluehost, and Hostinger for being part of that story this year, and to every organizer, volunteer, speaker, and attendee who made these events possible.</p>\n\n\n\n<p class=\"wp-block-paragraph\">To find an upcoming event near you, visit <a href=\"https://central.wordcamp.org\">WordCamp Central</a>. To learn how organizations can support the WordPress project, see the <a href=\"https://events.wordpress.org/sponsor/\">community sponsorship program</a>.</p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20910\";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:66:\"\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:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"What Happened at WordCamp Europe 2026\";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:51:\"https://wordpress.org/news/2026/06/wceu-2026-recap/\";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, 06 Jun 2026 17:44:14 +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:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";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:5:{s:4:\"data\";s:6:\"Events\";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:5:{s:4:\"data\";s:8:\"WordCamp\";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:5:{s:4:\"data\";s:4:\"WCEU\";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=20793\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}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:249:\"WordCamp Europe 2026 brought the WordPress community to Kraków for three days of contribution and conversation, from CERN going live on WordPress to WordPress 7.0, AI, and a closing fireside chat on where the project goes next. Read the full recap.\";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:17:\"Nicholas Garofalo\";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:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:72610:\"\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1440\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=2560%2C1440&#038;ssl=1\" alt=\"\" class=\"wp-image-20801\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?w=2560&amp;ssl=1 2560w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=1536%2C864&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-01.08.10-1-scaled-edited.jpeg?resize=2048%2C1152&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></figure>\n\n\n\n<div class=\"wp-block-group is-horizontal is-content-justification-left is-nowrap is-layout-flex wp-container-core-group-is-layout-e8523bbf wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"501\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/Witold-wapuu-wceu-2026.jpg?resize=386%2C501&#038;ssl=1\" alt=\"\" class=\"wp-image-20863\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/Witold-wapuu-wceu-2026.jpg?w=386&amp;ssl=1 386w, https://i0.wp.com/wordpress.org/news/files/2026/06/Witold-wapuu-wceu-2026.jpg?resize=231%2C300&amp;ssl=1 231w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" /></figure>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp Europe, <a href=\"https://europe.wordcamp.org/2026/\">the biggest WordPress conference in Europe</a>, spent the first week of June in Kraków. The 2026 edition of this event filled the ICE Kraków Congress Centre from June 4 to 6, drawing 2,458 ticket holders from 81 countries to the south of Poland. Close to a quarter of them were attending their first WordCamp Europe.</p>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">The city made it easy to settle in. Every attendee&#8217;s badge carried a transport hologram good for unlimited trams and buses. The Main Market Square, the largest in Europe, sat a short ride away, and the local food ran the gamut from pierogi to żurek soup to obwarzanek pretzels sold off the street.</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\">Kraków is beautiful, with history everywhere.<br><em>&#8211; Sebastian Miśniakiewicz, local team lead</em></p>\n</blockquote>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">The program kept pace with the setting. Across multiple tracks, the schedule held 49 talks and eight hands-on workshops, grouped into themes that ran from core development and AI to business and the open web. Around them sat a full Contributor Day, a sponsor area, side events, on-site childcare, and an after-party the local team stretched to eight hours.</p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"500\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wandzia-wapuu-wceu-2026.jpg?resize=474%2C500&#038;ssl=1\" alt=\"\" class=\"wp-image-20864\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wandzia-wapuu-wceu-2026.jpg?w=474&amp;ssl=1 474w, https://i0.wp.com/wordpress.org/news/files/2026/06/wandzia-wapuu-wceu-2026.jpg?resize=284%2C300&amp;ssl=1 284w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" /></figure>\n</div>\n\n\n\n<h2 class=\"wp-block-heading\">Contributor Day Opens the Week</h2>\n\n\n\n<p class=\"wp-block-paragraph\">As it does every year, the event began the day before the talks. Contributors filled the venue for Contributor Day, a working session where people work together to improve WordPress itself rather than watch a presentation about it. The morning started with registration and a welcome, the room split into teams, and a group photo broke up the work around midday. The afternoon ran a second working block before each team gathered to share what it had done.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4ec703c&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery has-nested-images columns-default is-cropped has-black-background-color has-background wp-block-gallery-3 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px;border-radius:2px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec74d8&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec74d8\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20812\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20812\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.16.10-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec7a6d&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec7a6d\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20806\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20806\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.48.24-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec7fd0&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec7fd0\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20805\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20805\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?resize=1536%2C1025&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-02.43.58.jpeg?w=2048&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec8532&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec8532\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20807\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20807\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.15.18-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec8a88&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec8a88\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20808\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20808\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.46-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec8fef&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec8fef\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20809\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20809\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-03.32.47-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec9566&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec9566\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20810\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20810\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.00.15-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ec9ae5&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ec9ae5\" class=\"wp-block-image size-full wp-lightbox-container\"><img data-recalc-dims=\"1\" decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20813\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-06.25.24-1-scaled.jpeg?ssl=1\" alt=\"\" class=\"wp-image-20813\" style=\"aspect-ratio:1\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4eca058&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4eca058\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20811\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20811\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-04-at-04.31.29-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<p class=\"wp-block-paragraph\">The range of tables is the clearest picture of how wide the project has become. Newcomers could sit down with Polyglots to translate WordPress into their own language, with Documentation to fix the pages people reach when they get stuck, or with Support to answer questions in the forums. More technical tables covered Core, Performance, Testing, Themes, and the Plugins team, whose reviewers screen every plugin submitted to the directory.</p>\n\n\n\n<p class=\"wp-block-paragraph\">First-timers were not left to find their own way. The day was built around onboarding tables, named table leads, and mentors, with an open invitation for experienced contributors to adopt a newcomer and walk them through their first patch, string, or ticket.</p>\n\n\n\n<p class=\"wp-block-paragraph\">People who could not travel to Kraków were welcomed to join remotely through the #contributor-day channel in the <a href=\"https://make.wordpress.org/\">Make WordPress Slack</a>, so distance was not a reason to sit the day out.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Birthplace of the Web</h2>\n\n\n\n<p class=\"wp-block-paragraph\">It was fitting that the opening keynote came from CERN. The European Laboratory for Particle Physics, on the French-Swiss border outside Geneva, is where the World Wide Web was invented more than 30 years ago, and <a href=\"https://profiles.wordpress.org/joachimv\">Joachim Valdemar Yde</a>, who has managed CERN&#8217;s web team since 2021, came to explain why the laboratory had chosen WordPress to carry its web presence forward.</p>\n\n\n\n<div class=\"wp-block-group has-black-background-color has-background is-layout-constrained wp-container-core-group-is-layout-ef2f134e wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\">\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<iframe loading=\"lazy\" class=\"youtube-player\" width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/712t_Kjbj3I?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent&#038;listType=playlist&#038;list=PL1pJFUVKQ7ET_os7azDwYFsUDoc0Y9plA\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"></iframe>\n</div></figure>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Yde and <a href=\"https://profiles.wordpress.org/franciscobbarros\">Francisco Borges Aurindo Barros</a>, who leads CERN&#8217;s WordPress infrastructure, framed the move as a chance to give a web presence built up over three decades a shared, modern foundation. After evaluating several leading content management systems against CERN&#8217;s needs, WordPress came out on top.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Barros walked through what they had built. The guiding idea is that people at CERN focus on their content while the web team looks after the platform underneath. A self-service portal lets anyone request a site in a few clicks. Behind it, a shared distribution supplies a common theme and a set of approved, security-hardened plugins, and an in-house tool provisions each new site on Kubernetes in about a minute. In its first year, the platform has already set up hundreds of sites.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Moving years of existing content onto the new platform is the other half of the work, and the team automated it: a single command lifts each site&#8217;s pages, headings, and images and rebuilds them as Gutenberg blocks, with no downtime. They plan to open source the tool.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Then Yde delivered the line that the room had been waiting for.</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 of today, our main flagship website, home.cern, is now served on WordPress. It&#8217;s been automatically migrated, and it&#8217;s live.<br><br><em>&#8211; Joachim Valdemar Yde, Web Manager, CERN</em></p>\n</blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The rollout is on track to wrap up over the coming months, and early impressions, Yde said, have been overwhelmingly positive, with easy wins in responsiveness and accessibility. For those at the event, the keynote pointed the room toward <a href=\"https://youtu.be/f09yvh3mnME\">a later talk by CERN&#8217;s Akanksha Chatterjee</a> on building and maintaining the laboratory&#8217;s engineering websites on the same service.</p>\n\n\n\n<p class=\"wp-block-paragraph\">There is a neat symmetry to it. The institution that published the world&#8217;s first website now runs on the software that powers more than 40% of today&#8217;s web, licensed under the GPL and maintained by the people in the room.</p>\n\n\n\n<h2 class=\"wp-block-heading\">WordPress 7.0 and AI</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.0 was a throughline of the conference. Several sessions placed the release at the center, framing it less as a routine update than as a change in what the software is, and in what it makes possible for the people who build with it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The anchor for that conversation was a panel called &#8220;Inside WordPress 7.0.&#8221; It gathered contributors who worked on the release, among them <a href=\"https://profiles.wordpress.org/juanmaguitar\">Juan Manuel Garrido</a>, <a href=\"https://profiles.wordpress.org/adamsilverstein\">Adam Silverstein</a>, <a href=\"https://profiles.wordpress.org/benjamin_zekavica\">Benjamin Zekavica</a>, <a href=\"https://profiles.wordpress.org/mikachan\">Sarah Norris</a>, and <a href=\"https://profiles.wordpress.org/milana_cap\">Milana Cap</a>. It was framed around more than a feature list, setting out to cover how a release of this size actually comes together: the contribution workflows, the coordination, and the human aspects of shipping software in the open.</p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecb001&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecb001\" class=\"wp-block-image size-full wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1264\" height=\"843\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wordpress-news-6a2425b8ceabf.png?resize=1264%2C843&#038;ssl=1\" alt=\"Photo of the stage for the panel inside WordPress 7.0\" class=\"wp-image-20878\" title=\"Panel: Inside WordPress 7.0\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wordpress-news-6a2425b8ceabf.png?w=1264&amp;ssl=1 1264w, https://i0.wp.com/wordpress.org/news/files/2026/06/wordpress-news-6a2425b8ceabf.png?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/wordpress-news-6a2425b8ceabf.png?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/wordpress-news-6a2425b8ceabf.png?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<p class=\"wp-block-paragraph\">What gives this release its weight is the work moving into WordPress&#8217;s core: a native AI client, a new Abilities API that lets plugins declare what they can do in a way other tools can discover, and a Connectors screen for wiring up providers such as OpenAI, Anthropic, or Google Gemini. The argument running through the AI sessions was that this belongs to everyone who builds on WordPress, not only to developers shipping their own integrations. Speakers got specific about how to put that to work.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://profiles.wordpress.org/anukasha\">Anukasha Singh</a> focused on how the Abilities API can make plugin permissions cleaner and safer than the capability checks developers have leaned on for years.</li>\n\n\n\n<li>In a workshop, <a href=\"https://profiles.wordpress.org/wpfeedback\">Vito Peleg</a> set out to take builders from one-off prompts toward a tool-using workflow that audits a live site and files structured tickets.</li>\n\n\n\n<li><a href=\"https://profiles.wordpress.org/schlessera\">Alain Schlesser</a>, a WP-CLI maintainer who has worked on structured data and the AI-native web, turned to a fast-growing opportunity. AI assistants and search now send real traffic to the open web, with more than a billion referral visits logged by the middle of 2025. His session framed WordPress as well-placed to earn that attention, with a practical checklist for getting a site ready to be found, read, and cited.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">People stayed at the center of the conversation, too. <a href=\"https://profiles.wordpress.org/karmatosed\">Tammie Lister</a>, in a talk called &#8220;Human in the loop means something,&#8221; framed the phrase as a real commitment rather than a checkbox. Humans and AI are each good at different things, and the products worth building let each do what it does best.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Development and Craft</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The development sessions were where the craft lived. <a href=\"https://profiles.wordpress.org/dmsnell\">Dennis Snell</a>, who co-wrote the HTML API and designed the block parser, devoted a deep-dive workshop to that API. <a href=\"https://profiles.wordpress.org/peterwilsoncc\">Peter Wilson</a>, a long-time Core committer on the Performance team, focused on how the WP_Query class has been made faster through better caching, and how site builders can take advantage of that at scale.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Scaling got a hands-on session of its own. One talk set out to see how far a WordPress site can run on a twelve-dollar virtual server, profiling it under load in Grafana and tuning away the bottlenecks, with a GitHub repository so attendees could follow along at home. <a href=\"https://profiles.wordpress.org/fellyph\">Fellyph Cintra</a> focused on the latest in <a href=\"https://playground.wordpress.net/\">WordPress Playground</a>, the browser-based tooling and architectural changes that the project credits with a real speed-up.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://profiles.wordpress.org/luminuu\">Jessica Lyschik</a>, a Core contributor and former default-theme co-lead, set out to make the case that accessibility-ready requirements are far easier to meet than most theme developers assume, drawing on real reviews of both block and classic themes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Two members of the Plugins team, <a href=\"https://profiles.wordpress.org/davidperez\">David Perez</a> and <a href=\"https://profiles.wordpress.org/frantorres\">Fran Torres</a>, framed their session as a practical clinic. Between them, they have reviewed more than 25,000 plugins, and they set out to name the common, avoidable issues that keep good plugins stuck in the review queue. For a first-time author, that is the difference between an afternoon and a month of waiting.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The Business of WordPress and the Open Web</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The business and community sessions pulled the lens back to people, with a refreshingly unsentimental view of running a WordPress business. <a href=\"https://profiles.wordpress.org/deltacx\">Debbie Levitt</a> built her talk around a model for finding product-market fit at three levels at once, on the premise that teams celebrate one good metric and then wonder months later where their users went. <a href=\"https://profiles.wordpress.org/vasvalch\">Vassilena Valchanova</a> took on a quieter problem: being good at the work is not the same as anyone knowing you are.</p>\n\n\n\n<p class=\"wp-block-paragraph\">There was a local thread here as well. <a href=\"https://profiles.wordpress.org/irsilviana\">Irfani Silviana</a>, a full-stack developer at a Kraków-based agency, framed the Business Model Canvas as a translation layer that moves developers from shipping features to engineering business value, a fitting talk to give in her own city.</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\">The web&#8217;s standards, the argument goes, remain as open as the day Tim Berners-Lee created them at CERN.</p>\n</blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That idea carried through the rest of the community sessions. </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://profiles.wordpress.org/wdavidsnead\">David Snead</a>, an attorney who works with internet infrastructure providers, set out to explain how hosts, registrars, and registries coordinate against abuse through shared, real-time intelligence, on the logic that a threat to one WordPress host is a threat to all of them.</li>\n\n\n\n<li><a href=\"https://profiles.wordpress.org/mbootsman\">Marcel Bootsman</a> shared a practical playbook for how companies and individuals can support open source sustainably and look after the people who keep it going.</li>\n\n\n\n<li><a href=\"https://profiles.wordpress.org/karinchristen\">Karin Christen</a> set out to describe how her Swiss agency turned <a href=\"https://wordpress.org/five-for-the-future/\">Five for the Future</a> from a good intention into a standing team habit through internal contributor days.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">Running alongside the talks, the hands-on workshops were a chance to build something on the spot. In one, <a href=\"https://profiles.wordpress.org/welcher\">Ryan Welcher</a> set out to build a touch-enabled gallery slider with the Interactivity API, while another centered on Full Site Editing, with a working portfolio theme attendees could reuse on their next client project. These were laptop-open, leave-with-working-code sessions.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4ecb833&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery has-nested-images columns-4 is-cropped has-black-background-color has-background wp-block-gallery-4 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px;border-radius:2px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecbc35&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecbc35\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20849\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20849\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/55316270345_085d4eb772_k.jpg?w=2048&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecc14a&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecc14a\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20850\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20850\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/55317280236_97760333e1_k.jpg?w=2048&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<h2 class=\"wp-block-heading\">Closing Fireside Chat</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The closing session opened with a warm gesture from Kraków University of Technology. Representatives took the stage to thank the organizers and the community and to present <a href=\"https://profiles.wordpress.org/4thhubbard\">Mary Hubbard</a>, the Executive Director of WordPress, with a gift from their faculty of informatics and mathematics. They described what the university and the WordCamp community share: a love of learning and sharing knowledge, and an openness to new ideas, skills, and connections.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Hubbard used the moment to share some news. Starting in October, the university will open a WordPress-specific course, which she called a trail-blazing event for Poland and for WordPress. Earlier that day, the program&#8217;s first cohort, around 20 students, had shown what they built, part of the <a href=\"https://wordpress.org/education/campus-connect/\">WordPress Campus Connect</a> and <a href=\"https://wordpress.org/education/credits/\">WordPress Credits</a> education work.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4ecc5a9&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery has-nested-images columns-4 is-cropped has-black-background-color has-background wp-block-gallery-5 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px;border-radius:2px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecc9ae&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecc9ae\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20888\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20888\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4eccf23&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4eccf23\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20887\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20887\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-06-at-10.26.32-1-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hubbard then turned the stage into a conversation, inviting <a href=\"https://profiles.wordpress.org/matveb\">Matías Ventura</a>, the lead of the Gutenberg project, and <a href=\"https://profiles.wordpress.org/richtabor\">Rich Tabor</a>, a WordPress designer and developer, to talk through where WordPress is heading and how AI fits in. WordPress 7.0 had just launched with Ventura as its release lead, and he asked everyone who had contributed to it to stand for a round of applause.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Much of the chat explored the balance between building WordPress with AI, and building with AI on WordPress, without losing the human part. Ventura noted that WordPress&#8217;s long investment in its design system is paying off now that you can ask an AI to extend a menu or a control, and it reaches for the right components. He pointed to older primitives gaining new value, like <a href=\"https://wordpress.org/cli/\">WP-CLI</a>, which AI models use fluently, and to <a href=\"https://developer.wordpress.com/docs/developer-tools/studio/studio-code/\">Studio Code</a>, an open source, agent-based coding tool the team has been building for WordPress. Tabor showed how he now ships many small editor improvements by talking to an agent instead of typing code, and Ventura demoed desktop mode and open-canvas experiments that reimagine the admin.</p>\n\n\n\n<p class=\"wp-block-paragraph\">On open source and AI, Hubbard argued that open source is why WordPress has thrived, that the same values should shape AI, and that the community should be far more vocal about it. As she put it, &#8220;We should be talking about it, and we should be much louder about it.&#8221;</p>\n\n\n\n<div class=\"wp-block-group has-black-background-color has-background is-layout-constrained wp-container-core-group-is-layout-9c97b5da wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\">\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<iframe loading=\"lazy\" class=\"youtube-player\" width=\"600\" height=\"338\" src=\"https://www.youtube.com/embed/X4GG-sfH94M?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"></iframe>\n</div></figure>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Audience questions pushed on multilingual support, unsticking long-stalled tickets, and reaching a younger, more diverse community. On that last point, Hubbard came back to education, pointing to a <a href=\"https://wordpress.org/news/2026/02/ai-leaders-credential/\">US pilot of an AI literacy micro-credential</a> that uses WordPress as the playground, and made the case for it:</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\">I think that focusing in on younger generations, and bringing them into the project in a healthy way, with the dynamic of education as well as mentorship, and how we can understand and learn from them, as well as mentor them and adopt them as contributors, is very important.<br><br><em>&#8211; Mary Hubbard, WordPress Executive Director</em></p>\n</blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Beyond the Talks</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp is also about the corridor outside the talks, and Kraków gave people reason to roam. Between sessions, attendees moved through the sponsor area for product demos and conversations that often carried on over lunch.</p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6a618c4ecd6c1&quot;}\" data-wp-interactive=\"core/gallery\" class=\"wp-block-gallery has-nested-images columns-3 is-cropped has-black-background-color has-background wp-block-gallery-6 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width:20px;border-radius:2px\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecdaf1&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecdaf1\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20823\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20823\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.47-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ece06c&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ece06c\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20828\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20828\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.49.48-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ece5cd&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ece5cd\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20825\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20825\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.46.57-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecec3c&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecec3c\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20824\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20824\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-02.39.48-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecf21b&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecf21b\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20826\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20826\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-05.23.01-scaled.jpeg?resize=2048%2C1366&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a618c4ecf7f9&quot;}\" data-wp-interactive=\"core/image\" data-wp-key=\"6a618c4ecf7f9\" class=\"wp-block-image size-large wp-lightbox-container\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"20827\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58.jpeg?resize=1024%2C683&#038;ssl=1\" alt=\"\" class=\"wp-image-20827\" style=\"aspect-ratio:1\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58-scaled.jpeg?resize=1024%2C683&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58-scaled.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58-scaled.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58-scaled.jpeg?resize=1536%2C1024&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/WhatsApp-Image-2026-06-05-at-04.35.58-scaled.jpeg?resize=2048%2C1365&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /><button\n			class=\"lightbox-trigger\"\n			type=\"button\"\n			aria-haspopup=\"dialog\"\n			data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n			data-wp-init=\"callbacks.initTriggerButton\"\n			data-wp-on--click=\"actions.showLightbox\"\n			data-wp-style--right=\"state.thisImage.buttonRight\"\n			data-wp-style--top=\"state.thisImage.buttonTop\"\n		>\n			<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n				<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" />\n			</svg>\n		</button></figure>\n</figure>\n\n\n\n<p class=\"wp-block-paragraph\">The after-party was the not-so-subtle flourish of a local team that doubled the usual length to eight hours, with Polish food and dragon-and-floral swag that nodded to the Wawel Dragon of Kraków legend. The nearby artistic Kazimierz district kept the evening going, and the trams, as one organizer had promised, were still running reliably afterward.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What Comes Next</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamps run on people, and 2026 was no different. The organizing teams, the speakers, the sponsors who funded the venue and the meals, the local crew who sorted trams and pierogi, and the contributors who arrived a day early to work on the project all built this WCEU together. The people watching the <a href=\"https://www.youtube.com/playlist?list=PL1pJFUVKQ7ET_os7azDwYFsUDoc0Y9plA\">livestream</a> from outside Kraków were part of it as well.</p>\n\n\n\n<p class=\"wp-block-paragraph\">For anyone whose appetite was only sharpened by three days in Poland, the calendar already has the next stop. <a href=\"https://us.wordcamp.org/2026/\">WordCamp US 2026</a> (Phoenix, USA) runs August 16 to 19, with its own Contributor Day opening the week.</p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><a href=\"https://us.wordcamp.org/2026/\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser.png?resize=1024%2C321&#038;ssl=1\" alt=\"WordCamp US: Powered by WordPress, Driven by Community, August 16-19, 2026\" class=\"wp-image-20859\" style=\"border-style:none;border-width:0px;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px;box-shadow:var(--wp--preset--shadow--natural)\" srcset=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=1024%2C321&amp;ssl=1 1024w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=300%2C94&amp;ssl=1 300w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=768%2C241&amp;ssl=1 768w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=1536%2C482&amp;ssl=1 1536w, https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser-scaled.png?resize=2048%2C643&amp;ssl=1 2048w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" /></a></figure>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp Europe will return next year (May 27-29, 2027) in Málaga, Spain.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" />\n\n\n\n<p class=\"wp-block-paragraph\"><em>Photography by the <a href=\"https://europe.wordcamp.org/2026/community/organisers/#photography-team\">WCEU 2026 photography team</a>. See the full galleries on <a href=\"https://www.flickr.com/photos/wceu/albums/\">Flickr</a>.</em></p>\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:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"20793\";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:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n	hourly	\";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:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n	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:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";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:\"type\";i:128;s:7:\"headers\";a:12:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Thu, 23 Jul 2026 03:51:30 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:4:\"vary\";s:37:\"Accept-Encoding, accept, content-type\";s:25:\"strict-transport-security\";s:12:\"max-age=3600\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Wed, 22 Jul 2026 15:23:14 GMT\";s:4:\"link\";s:63:\"<https://wordpress.org/news/wp-json/>; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:16:\"content-encoding\";s:2:\"br\";s:7:\"alt-svc\";s:5:\"clear\";s:4:\"x-nc\";s:9:\"HIT dca 2\";}s:5:\"build\";i:1773787380;s:21:\"cache_expiration_time\";i:1784821890;s:23:\"__cache_expiration_time\";i:1784821890;}','off'),(42679,'_site_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1784821890','off'),(42680,'_site_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3','1784778690','off'),(42681,'_site_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9','1784821891','off'),(42682,'_site_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9','a:6:{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:13:\"Matt: AI Slop\";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=153646\";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/07/ai-slop/\";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:461:\"<p class=\"wp-block-paragraph\">If you&#8217;re going to give me AI slop, at least make it fun! Give me <a href=\"https://en.wikipedia.org/wiki/Iambic_pentameter\">iambic pentameter</a>. Make it all rhyme. Have <a href=\"https://suno.com/\">it be a song</a>. I think we&#8217;re under-utilizing the artistic and creative capabilities of models by making them produce work that <a href=\"https://www.pangram.com/\">sort-of-but-not-really looks like human effort</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, 22 Jul 2026 20:34:55 +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: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:40:\"WordPress.org blog: WordPress 7.1 Beta 3\";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=21177\";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/07/wordpress-7-1-beta-3/\";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:6931:\"<p class=\"wp-block-paragraph\">WordPress 7.1 Beta 3 is ready for download and testing! </p>\n\n\n\n<p class=\"wp-block-paragraph\"><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.1 Beta 3</h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can test WordPress 7.1 Beta 3 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>WordPress Beta Tester Plugin</strong></td><td>Install and activate the <a href=\"https://wordpress.org/plugins/wordpress-beta-tester/\" rel=\"noreferrer noopener\" target=\"_blank\">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.1-beta3.zip\">Beta 3 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line (WP-CLI)</strong></td><td>Use this <a href=\"https://make.wordpress.org/cli/\" rel=\"noreferrer noopener\" target=\"_blank\">WP-CLI</a> command: <br /><code>wp core update --version=7.1-beta3</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use a <a href=\"https://playground.wordpress.net/?site-slug=kind-classic-mountain&amp;networking=no&amp;php=8.3&amp;wp=beta&amp;language=&amp;multisite=no\" rel=\"noopener\" target=\"_blank\">7.1 Beta 3 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.1 is <strong>August 19, 2026</strong>. The full <a href=\"https://make.wordpress.org/core/2026/07/03/wordpress-7-1-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<p class=\"wp-block-paragraph\"><strong>Find out what’s new in WordPress 7.1</strong>: Read the <a href=\"https://wordpress.org/news/2026/07/wordpress-7-1-beta-1/\">Beta 1 announcement</a> for details and highlights.</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 – whether or not you have experience. <a href=\"https://make.wordpress.org/test/2026/07/15/help-test-wordpress-7-1/\">Details on what to test in WordPress 7.1 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/\" rel=\"noopener\" target=\"_blank\">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\" rel=\"noopener\" target=\"_blank\">via WordPress Trac</a>. You can also check your issue against this list of <a href=\"https://core.trac.wordpress.org/tickets/major\" rel=\"noopener\" target=\"_blank\">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>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s in WordPress 7.1 Beta 3?</h2>\n\n\n\n<p class=\"wp-block-paragraph\">For technical details on the more than <strong>71 issues</strong> addressed since Beta 1, see the following links:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://core.trac.wordpress.org/query?status=closed&amp;changetime=07%2F15%2F2026..07%2F22%2F2026&amp;milestone=7.1&amp;group=component&amp;col=id&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=id\">Closed 7.1 WordPress Core Trac tickets</a> since July 15, 2026</li>\n\n\n\n<li><a href=\"https://github.com/WordPress/gutenberg/commits/wp/7.1?since=2026-07-15&amp;until=2026-07-22\">7.1 Gutenberg commits</a> since July 15, 2026</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">Note: <strong>Beta 2 was released on July 17, 2026</strong>, as part of the <a href=\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\">WordPress 7.0.2 release</a> and includes important security fixes.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Beta 3 introduces two improvements to styling.</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Applying local style changes globally is no longer an all-or-nothing action. The <a href=\"https://github.com/WordPress/gutenberg/pull/79839\" rel=\"noopener\" target=\"_blank\">Apply globally</a> option in the block inspector now opens a quick review step, allowing you to choose which modified styles to apply globally while keeping the rest as local overrides.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Other notable fixes include improvements to media uploads: long animated GIF uploads no longer hang, images rotated using EXIF metadata are processed correctly, and uploading a single HEIC image in Safari no longer creates two entries.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The editor also includes additional fixes for Notes, responsive styling, and custom CSS. For developers, WordPress Coding Standards has been updated to version 3.4.0.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://make.wordpress.org/core/2026/05/22/extending-unicode-support-in-email-addresses-usernames-and-slugs/\" rel=\"noopener\" target=\"_blank\">Unicode email address support</a> will <strong>not be included</strong> in WordPress 7.1. The work will continue in a community plugin, allowing broader testing of compatibility, security, and data-handling considerations.</p>\n\n\n\n<h2 class=\"wp-block-heading\">A Beta 3 haiku</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fresh bugs surface now,<br />click by click, we chase them down—<br />codebase grows steady.</p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to </em><a class=\"mention\" href=\"https://profiles.wordpress.org/krupajnanda/\"><span class=\"mentions-prefix\">@</span>krupajnanda</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/annezazu/\"><span class=\"mentions-prefix\">@</span>annezazu</a>, <br /><a class=\"mention\" href=\"https://profiles.wordpress.org/wildworks/\"><span class=\"mentions-prefix\">@</span>wildworks</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/amykamala/\"><span class=\"mentions-prefix\">@</span>amykamala</a> <em>for 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:\"Wed, 22 Jul 2026 15:23:14 +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:17:\"Benjamin Zekavica\";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:37:\"Open Channels FM: Signal – Issue 17\";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=2557126\";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:40:\"https://openchannels.fm/signal-issue-17/\";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:213:\"Talk about the intersection of open source software and business, rapid security response amid AI advancements, the importance of fundamentals in AI implementation, and concise content creation for engaging media.\";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, 22 Jul 2026 13:10: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: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:100:\"WPTavern: #226 – Jessica Lyschik on Why Accessibility in WordPress Themes Is Easier Than You Think\";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=206634\";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:114:\"https://wptavern.com/podcast/226-jessica-lyschik-on-why-accessibility-in-wordpress-themes-is-easier-than-you-think\";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:55129:\"<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, why accessibility in WordPress themes is easier than you think.</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 Jessica Lyschik. Jessica is a longtime member of the WordPress community who&#8217;s been working in the ecosystem since 2015. She&#8217;s spent years learning and advocating for web accessibility, both as a developer and as an active community participant, joining agencies, working on theme reviews, and helping improve standards.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Many theme creators assume that making themes accessible is an intimidating task, but Jessica&#8217;s here to show you that achieving an accessibility ready WordPress theme is more straightforward than you might imagine.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Her WordCamp Europe 2026 presentation, accessibility in themes, easier than you think, aimed to demystify the requirements for accessible themes. Explaining what the WordPress guidelines mean in practise, where the low hanging fruit is, and how both block and classic themes can reach accessibility ready status with manageable efforts.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We talk about the personal and moral journey that brings developers to accessibility. The technical hurdles and documentation challenges, and the ways in which things like AI agents are putting accessibility in the spotlight for everyone.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Jessica talks about practical steps that quickly improve accessibility, like using correct HTML tags, adding alternative text to images, and configuring skip to content links, and shares why building accessibility in from the start saves time and effort down the road.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We also explore the differences, and possible advantages, of block themes when it comes to accessibility, and why theme guidelines work the way they do, and the importance of interdisciplinary awareness across SEO, design, and content teams.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Jessica mentions helpful resources, influential leaders in accessibility, and the ongoing need for documentation improvements to help everyone level up.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve ever felt overwhelmed by accessibility requirements, or wonder why they matter, and how you can build better WordPress sites that work for everyone, 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 Jessica Lyschik.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I am joined on the podcast by Jessica Lyschik. Hello, Jessica.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:03:39] <strong>Jessica Lyschik:</strong> Hi Nathan.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:03:41] <strong>Nathan Wrigley:</strong> Nice to have you with us. This is my second interview at WordCamp Europe 2026. We&#8217;re in a beautiful, big media room. I&#8217;ve got to say, this is one of the nicest spaces I&#8217;ve ever had for these kind of interviews, so that&#8217;s really nice.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Jessica has already done, I want to say presentation but maybe it was a workshop. I&#8217;m not sure.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:03:57] <strong>Jessica Lyschik:</strong> No, it was a regular talk actually, yeah.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:03:59] <strong>Nathan Wrigley:</strong> Okay. And how did it go?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:04:00] <strong>Jessica Lyschik:</strong> It went super well, except for my slides went missing in between. That wasn&#8217;t so great. But the audience was very respectful of that, and I made a bit fun of it, so they laughed for a second and I tried, the media guys tried to fix that. We got it fixed in the end. I would&#8217;ve winged it anyway because I, like I knew what was coming up. But it&#8217;s always good to have your slides. It&#8217;s like seeing them, because for me it&#8217;s also visual reminder. It&#8217;s like, I need to see what I&#8217;m talking about, so I&#8217;m not losing track of it. But yeah, this was just a little technical hiccup. But overall I got very great feedback so far on my talk, and I&#8217;m very glad.</p>\n\n\n\n<p class=\"wp-block-paragraph\">There were also quite a lot of people. I did not expect this many. And that makes me just super happy that people are actually interested in this topic, although it is sort of scary for some of them if they even like try to touch this topic. We can probably get into the details later. Yeah, just overall like, what does it do? Why do I need that? These unanswered questions that they have that they were like, ah, no, I&#8217;m not really interested into that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:05:01] <strong>Nathan Wrigley:</strong> Oh, that&#8217;s nice a big reception.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:05:03] <strong>Jessica Lyschik:</strong> Yeah. And that&#8217;s just great to see because I think just as we all grow older, and I even noticed that, and I&#8217;ve said that in my talk, like I kind of get to appreciate when a website is accessible. I mean I&#8217;m still have a long time to go, hopefully in my life, but I start to appreciate the small things that make just browsing websites easier, to be honest.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:05:23] <strong>Nathan Wrigley:</strong> So I guess we should introduce the subject and then give you a chance to introduce yourself because it feels like in this context, the subject at hand, it&#8217;s important to know that you know what you are doing. It&#8217;s not, well, I suppose it&#8217;s a general skill in that it should be something most people know an awful lot about. But I fear that that&#8217;s not the case.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So the presentation that you&#8217;ve just given was called accessibility in themes, easier than you think. That&#8217;s nicely phrased. Let&#8217;s get them through the door.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And then the blurb that went with that, I&#8217;ll just read that into the record then everybody knows what we&#8217;re talking about. So it says, many theme developers assume accessibility ready requirements are hard to meet, but that&#8217;s rarely true. This session shares practical insights for real theme reviews, and shows how both block and classic themes can reach accessibility ready status with manageable effort.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So that&#8217;s the context of what we&#8217;re going to talk about today. However, as I just alluded to, could you just tell us a bit about you, how long you&#8217;ve been using WordPress, and then I guess if you want to focus a bit on your accessibility credentials and what you&#8217;ve been doing in that space.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:06:23] <strong>Jessica Lyschik:</strong> Yeah, of course. So yeah, I&#8217;ve been using WordPress, I think I started around 2005 or 6 already. So like dipped my toes into it, played with it around, just got a feel for it. But actually professionally, I started out in 2015 in the WordPress ecosystem.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Before that, I already joined the community. So I was working at another place that did not use WordPress before. And then in 2015 I joined a WordPress agency. Today they&#8217;re called Syde, for anyone who&#8217;s wondering. And ever since I&#8217;ve been into WordPress that long.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And accessibility in that case I have, I think it was a gradual process more of. It was not just like, I&#8217;m now doing accessibility. That just didn&#8217;t happen. It was, I learned it over time. And when I started learning about how to create a website accessibility was absolutely not a thing. No one cared about it. And it just became more and more aware for people, for developers, especially in the past couple years. I think we still have some way to go but like, as I said earlier, there were so many people interested in my talk. So I think we&#8217;re now at a pace where things get really interesting for many more people.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And yeah, I learned a lot along the way. Made a lot of mistakes along the way. But I&#8217;m glad I&#8217;m learning this. I&#8217;m still learning. So it&#8217;s always something that you continuously learn, because I think the hardest part to grasp for people is that, if you are abled, it&#8217;s like you can see, you can hear, you can navigate a device with your own hands, all stuff like that, you take it for granted.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And if you suddenly see or people tell you the perspective of like a blind person, a person who&#8217;s deaf, a person who may not be able to use a device like you do, maybe have a hand injury, or no hands anymore, that&#8217;s also happening. Then you start to wonder, okay, how do these people actually like use websites or use their phones or computers? And there are many different ways to do that. And I think if you have the chance to learn about this, it is absolutely eye-opening.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You can also then, there was a talk at WordCamp Leipzig this year, but also last year, I attended last year, by a blind person. And her brother was also blind. He was a developer. And they shared like how bad some websites are, and how they struggle to like get the information out of the website, and what crazy, crazy stuff people are doing to their websites that do not make it accessible for these people.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And then you are sitting there and wondering, oh my God. And sometimes I have to say, I even did this in the past and I didn&#8217;t know, but I&#8217;m glad today that I learned about this and make a better web essentially. Yeah, that&#8217;s why I&#8217;m here sharing my knowledge.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:09:11] <strong>Nathan Wrigley:</strong> It kind of sounds for me, so when I talk about accessibility, there&#8217;s always two strands to it. There&#8217;s like this legal bit where the governments are increasingly talking about things that will happen to you as a company that builds websites if you don&#8217;t follow guidelines. So that&#8217;s one side.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But there&#8217;s also this moral side. There&#8217;s the side of, we ought to do this despite what the law says. You know, it&#8217;s just a necessary thing. And it feels to me as if your journey in this was a moral one.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:09:38] <strong>Jessica Lyschik:</strong> More of, yes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:09:39] <strong>Nathan Wrigley:</strong> Yeah, there was a definite need here. You know, in the real world when you see somebody, let&#8217;s say somebody who&#8217;s sitting in a wheelchair and they&#8217;re trying to get into a post office and there&#8217;s a step that they can&#8217;t get over, there&#8217;s no bit of you which doesn&#8217;t see that as unjust. Every bit of you says that character can&#8217;t get over that step. That&#8217;s wrong.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And yet, the bit of the world which is becoming increasingly the way that we interact, you know, we book flights, we file our taxes, we do our banking, we, all of these things, they&#8217;re completely invisible.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the time we&#8217;re doing the internet by ourselves. You know, we might be sitting on a train, but nevertheless it&#8217;s a solitary activity, or we&#8217;re in our own home or whatever. And these pitfalls, the equivalent of the step in front of the post office is totally invisible.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And it also seems that the voice of the people whose lives are made more difficult is just drowned out. Somehow that anger that they must feel never seems to rise to the top quite enough that we all take the necessary steps.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I don&#8217;t know if any of that landed, and there was definitely no question there, but I&#8217;ll hand it back to you if any of that resonates.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:10:49] <strong>Jessica Lyschik:</strong> No, I think you, you&#8217;ve put it absolutely right. And the invisibility is the thing, because a step for us is visually, like we see it I mean. If you&#8217;re blind, you&#8217;re not seeing it. But let&#8217;s put it away for a second. But in the web, the invisibility is like the key thing. And I just talked to Anne-Mieke Bovelett about, who&#8217;s doing another accessibility talk this afternoon. She told me about like a company where they put effort into their website, making it more accessible. And their sales actually increased. So it can definitely help. This is just one example.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But there&#8217;s also a new player in the field that will probably even increase the interest in accessibility, and that is AI agents. Because AI agents, they do not see a website as we do visually. They rely on that the website is technically built correctly. Google actually just last month announced that they will focus on this. They will focus on the accessibility for the AI agent. I have put a link in my slides to that document. This is basically, I think something that will be easier to grasp for people for some weird reason. But it&#8217;s made more visible to them because if an AI agent cannot read your website, and I know we are probably still at the very beginning of this AI agent stuff, but I think this will increase over the next couple months or even years.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:12:14] <strong>Nathan Wrigley:</strong> That&#8217;s really interesting because when an individual, let&#8217;s go back 10 years, when an individual is creating a website, every single bit that you have to achieve is a minute of work or another minute or 20 minutes or an hour or what have you. And so there was this whole thing of just building the website, especially when page builders and things like that came along, just building the website to see what it looks like. And that whole accessibility layer just basically gets ignored.</p>\n\n\n\n<p class=\"wp-block-paragraph\">However, that&#8217;s what you&#8217;ve just said is curious because the AI agent building the website, to the AI agent, that&#8217;s kind of no extra work to get it right, if you know what I mean? If it&#8217;s configured to do all of the bits correctly, I&#8217;m using air quotes around the word correctly, then in theory it should be quite a good custodian of accessibility when it&#8217;s building things. I guess only time will tell whether that actually happens.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:13:08] <strong>Jessica Lyschik:</strong> Yeah, but it&#8217;s also for like, not the agents itself building, but also the agents visiting your website. Especially if you do like, I think shopping will be the one thing that if you say, hey, I don&#8217;t know what the best coffee or what, this is like a good topic. Yeah, okay, here are three options. And then, okay, buy me option one, a kilo of these beans or whatever. The AI agent, if the shop is accessible, the AI agent could do the shopping for you. This is where things are going and progressing towards, that you are not actively anymore the person who actually goes to the online shop, puts it in the cart, goes to the checkout and does all that stuff for you. But if the agent knows all that, it can do it for you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:13:50] <strong>Nathan Wrigley:</strong> Can I ask a question then? Because I may have, I think I&#8217;ve understood what you were just saying and curiously, I&#8217;ve never had that thought, the one that you&#8217;ve just expressed. I want to know if I&#8217;ve got it right. Are you saying that in a world in which we increasingly ask AI to achieve things on the web for us, if it&#8217;s built with accessibility in mind, it&#8217;s more likely to be able to achieve the result of, let&#8217;s say, buy me a kilo of coffee.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:14:14] <strong>Jessica Lyschik:</strong> Yep.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:14:15] <strong>Nathan Wrigley:</strong> That&#8217;s so interesting.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:14:16] <strong>Jessica Lyschik:</strong> Yeah because like, Anne-Mieke, whom I just talked about, shared a long document with me recently and I was just reading through it and was like, yeah, of course. Of course, if we technically do things right, we use the right elements, we do the right descriptions for everything that a computer, because AI agent is just a computer. Like assistive technology, like a screen reader who needs to read the right structure out of it and to fit the right content. But also is able to interact with stuff, like click on that button, put that in the cart, go to the checkout and so on. It&#8217;s basically the same. An AI agent is a screen reader.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:14:53] <strong>Nathan Wrigley:</strong> Yeah, that&#8217;s really interesting. I&#8217;m thinking of a map where I&#8217;m trying to get to a destination, but the map has no directions. Imagine a scenario where we set off from one place and our destination is here. What you are saying is all the instructions in between to get from the start to the end can be read if the HTML and all of the bits and pieces wrapped up in that are correct. I had never had that thought before. That&#8217;s so interesting.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:15:17] <strong>Jessica Lyschik:</strong> Yeah, that&#8217;s very interesting. And I did not focus too much on this topic in my talk, but I wanted to put it in there at least in one slide to give like the food for thought that people can actually think about it because this is like what&#8217;s hyped right now. I have not tried out this whole agent thing yet, but like from a developer perspective, I can totally see that this is something that will increasingly help AI agents to achieve stuff.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:15:41] <strong>Nathan Wrigley:</strong> Yeah. And presumably make it so that a whole tranche of people who struggle with the web as it is currently might be able to interact with their voice or whatever other technique they use. We&#8217;ve completely gone off the rails, but that was such an interesting aside, thank you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:15:58] <strong>Jessica Lyschik:</strong> Yeah, I think this is something interesting to share. And as I said, I wanted to focus more on the technical details in my talk, so I left it kind of out. But I think it&#8217;s a great opportunity to share it here with you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:16:08] <strong>Nathan Wrigley:</strong> Yeah. That was lovely. Thank you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So let&#8217;s go back to the WordPress bits and pieces then, and I&#8217;ll just do the title again because hopefully that&#8217;ll refresh it in listeners&#8217; minds. Accessibility in themes, easier than you think. Dear listener, if you&#8217;ve been using WordPress for any length of time, you&#8217;ll know that the themes still plays a giant part in the structure of your website and the way that people experience it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So where are we at then in the year 2026? Does the theme still represent a huge part of accessibility? In your experience, is it easier than most people think to get an accessible website in the year 2026? We&#8217;ll get into block based themes and classic themes and all that in a minute. But essentially what I&#8217;m asking is, is it an easier thing to get right than most people imagine?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:16:51] <strong>Jessica Lyschik:</strong> Yes, because I think what scares people off from my own experience, there are requirements to get the accessibility ready tag in the wordpress.org theme repository. And these requirements, if you first read them, they&#8217;ll sound a bit cryptic and you do not really understand what they actually mean.</p>\n\n\n\n<p class=\"wp-block-paragraph\">In my talk, I was trying to combine this, what the requirement says with what is actually meant by that. Because right now, and this is something I would like to improve for the future, I&#8217;ve already talked to people about this, and I will have another chat with Rian Rietveld about it later, or tomorrow. Let&#8217;s see when we can make that happen.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Because right now the requirements read like, okay, this must be achieved. This is what the website should do. Then there are some testing instructions, but you&#8217;re not told how to achieve it. What do you technically need to do in order to do that?</p>\n\n\n\n<p class=\"wp-block-paragraph\">I noticed this while I was reworking. I found out about the requirements also just a month ago because the requirements got updated. I have a theme in the wordpress.org repository and I tried to apply these new rules and have another fresh look at it. I got the accessibility ready tag for this already when I first got the theme into the repository. But like it was a good refresher to like go over all the requirements because they have slightly changed a bit, they added new ones.</p>\n\n\n\n<p class=\"wp-block-paragraph\">When I was there, I was like, okay, like I understand this now because I have learned about accessibility over the past couple years. For someone who is fresh to this topic and doesn&#8217;t know too much about it, it&#8217;s hard to understand. Because there are some descriptions of things like, basically what it means is that you need to use, for example, the right HTML tags, header, footer, the main tag. We have section and aside, which are available in HTML 5. But the requirements does not say this explicitly.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I think this is where probably most people have gotten stuck in the past, because they did not understand like, what is actually required from me technically? Because the texts are not so much focused on that. And this is something I would like to contribute as well, to give back and to enhance. So it&#8217;s not there yet, but hopefully sooner than later we can add all this information so it gets even easier for people.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Because if you&#8217;ve done a website and you know about the HTML, you know about maybe a little bit of CSS, you know how to achieve this. You just need to connect the dots to what is relevant for accessibility and how do you do this in your HTML essentially.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:19:20] <strong>Nathan Wrigley:</strong> Yeah, I guess that&#8217;s a bit of a shame really, isn&#8217;t it? Is that the documentation is difficult to follow because I feel that accessibility is one of those things where if something is difficult it can get dropped basically.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:19:33] <strong>Jessica Lyschik:</strong> Yeah, people won&#8217;t do it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:19:34] <strong>Nathan Wrigley:</strong> Yeah, because the majority of people browsing the internet can browse the internet despite your accessibility efforts, that will be the standard that they&#8217;re aiming for in most cases. So if it&#8217;s difficult to achieve these things and the documentation&#8217;s not really straightforward, every time somebody comes across a question and thinks, I don&#8217;t really know the answer to that, probably the quickest thing to do is just to, ah, push it to one side and not press through. But you obviously have and made it a bit of a goal.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So is there a particular accessibility requirement that developers in your estimation kind of overestimate the difficulty of? What I&#8217;m asking here really is about some low hanging fruit that you know about. In the scenario that we&#8217;ve just described where it&#8217;s easy to get put off and to sort of say to yourself, okay, I can&#8217;t do this. I&#8217;m wondering there are some sort of quick wins that you could describe that people could maybe achieve within the next half an hour, once they sat down at their machines?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:20:27] <strong>Jessica Lyschik:</strong> Yeah, I think there are definitely some. There is like underlining text in your main content, just underline the text. It&#8217;s one line of CSS, text declaration underline. For links, obviously, not for the entire text.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And there is like, as I said, the HTML tags. With block themes, it&#8217;s super easy. For example, you just need to configure that correctly in the editor, or use the correct template part and it&#8217;s basically done for you. Core does that. This is one advantage of block themes, but we can dive into this deeper later. Or the skip to content links also in block themes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">As an example, in block themes it is just like putting the content block in a group and assigning the main HTML tag to that group. And WordPress does the rest for you. It&#8217;s just like assigning this one little setting correctly and then you get automatically a skip a content link for block themes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:18] <strong>Nathan Wrigley:</strong> Yeah, but curiously, if you didn&#8217;t know that small fact, that WordPress would handle that for you, if you don&#8217;t know, you don&#8217;t know. And you&#8217;d presumably go around the houses trying to figure that out for yourself and implement some custom version of that thing. Whereas in fact, what, three clicks, four seconds and you&#8217;re done.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:33] <strong>Jessica Lyschik:</strong> It&#8217;s super easy, yep.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:33] <strong>Nathan Wrigley:</strong> Yeah. Any more before we move on?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:35] <strong>Jessica Lyschik:</strong> I think these are like the most, absolutely the low hanging fruit is also if you use any images to add an alternative text. I think this is probably the most common one people already know. It is so easy. And even WordPress, even if you use classic themes, it&#8217;s already in the media library, the alternative text field. For block themes you have it directly at the image so it&#8217;s already in front of you. You just need to use it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:57] <strong>Nathan Wrigley:</strong> Yeah, you just not ignore it basically. Yeah, that&#8217;s true.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So has this become kind of a habit for you then, over the last period of time since you&#8217;ve taken more and more interest in this? Have you got to the point now where this is just how it works? You know, in the same way that I drive a car and I use the gears and that&#8217;s all just second nature. Is it like that for you when you are building your themes? Because it&#8217;s now locked away in your head. Every time you do a thing that previously you would&#8217;ve omitted. You are now just in the habit. Has that been a difficult journey or fairly straightforward?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:22:28] <strong>Jessica Lyschik:</strong> I think it&#8217;s, like starting out with this, it would feel like a bumpy road. But for me it was, it&#8217;s a gradual process. But right now it&#8217;s really like, yeah, I just know that when I use a button in a context that is not like sending off a form to add an aria label to it, it&#8217;s like, it is baked into my brain essentially already because I know.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I just had a very interesting example this week at work where there was a client reaching out saying, hey, we did an accessibility test on our website and it marked like two buttons that did not say what they&#8217;re doing. These were essentially missing the aria label because they had only icons on the buttons, not real text.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So if there&#8217;s just an icon, the screen reader cannot read, what is this button for, essentially, with just an icon? The win here was just to add the aria labels, because the fields were already there. This was also part of the Greyd.Suite, so from our product so I knew how to put it in there. And then it was like, oh no, like I have to do this 12 times, my colleague said. And I was like, yeah, okay, then you have to do it twice, 12 times. So 24 times. But be happy it&#8217;s not 200 times you have to do it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So, and I said, do not take this personally. This is a great example of why putting accessibility at the very beginning of when you&#8217;re creating this makes life so much easier than rather when you just build a website and then you figure out you have to change 300 buttons. This is probably a crazy number, but just to give you an example, to change all the buttons manually again, going through every single page or whatever you have when you just could have taken the extra step, added the aria label, and then just be done with it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:24:09] <strong>Nathan Wrigley:</strong> Right. That&#8217;s an interesting thought. And also the exasperation of your colleague there kind of perfectly sums up the problem. In that you see it as a problem. Does that mean I&#8217;ve got to do something 24 times? And there&#8217;s this sense of, ugh, I&#8217;ve got to do this work. And it feels like a chore. But then I suppose if you step back and look at what you&#8217;ll actually enable by doing those 24 things.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I know that in the workday that&#8217;s hard to do. It&#8217;s hard to sort of step back and say, okay, if I do this thing 24 times, this will be the result, and lots more people will be able to, in this case, view the image.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:24:42] <strong>Jessica Lyschik:</strong> I mean this was like they started already working on. If you fix it now, you do not have to do it for the coming pages. So if you multiply that with how many pages more you need to do, once you get this one fixed, and ideally you need to change the aria label of the text changes obviously, but this was, I think for a header, in a header, where there was like, I think one sort of popover or popup. Fully accessible by the way, so don&#8217;t worry about that. And also a button to, I think for the phone numbers, like just a phone icon. And they could click on it and it would be something like that, along the lines. I don&#8217;t exactly remember what it was. But it was just like two icons in the header. And if you take that header, use it on, I don&#8217;t know, another 250 sites, you don&#8217;t need to do the work anymore.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:25:29] <strong>Nathan Wrigley:</strong> Okay. So you are painting a picture in which, get it right at the beginning, follow the guidelines, do the hard work once, then almost the career from then, from this moment forward, your life will be immeasurably easier if you build it into the theme or.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:25:45] <strong>Jessica Lyschik:</strong> And accessibility will not be taken as, ugh, and I now have to do this all. Because when you do it from the start, you have to make sure at the end of course that it still works. You may have to run into issues and redo stuff. That can happen. But I think you just have saved yourself so much work in the end if that requirement for some reason pops up later or so.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:10] <strong>Nathan Wrigley:</strong> I&#8217;m wondering, depending on the kind of nature of where you work, and how you do this. You know, if you&#8217;re a freelance, then this is on you. If you&#8217;re in an agency, then it may be that there&#8217;s somebody, you know, maybe there&#8217;s an SEO person, there&#8217;s a design person, maybe there&#8217;s an accessibility person. But it does feel like the moral argument states everybody should have some insight. Maybe you&#8217;re not right in the weeds of it, but you should have some knowledge of what the low hanging fruit is, at least.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:38] <strong>Jessica Lyschik:</strong> Yeah it&#8217;s, what&#8217;s the right word for it? Interdisciplinary. It is like not just the developer who needs to think of accessibility. It&#8217;s like, okay, we need to because like we provide a technical structure for it. But it also needs to be for the content people who write the blog posts, the pages, whatever, for SEO people to understand that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I think accessibility, if you want the entire website to be accessibility, everyone who works on a website needs to know about it. That an SEO person needs to know how to create a skip link, probably not. Or how to use, maybe to use the right text. But for them, the text would be just the, using the right heading structure, for example. This is also a requirement, that you do not use an H3 and then an H6 heading in your content, but you structure it correctly that you have the H1 on the top, and then every next level is H H2, and then every level under that is H3. So this way. They should know about this. But they do not need to know too much about the technical side. Because in the end, it all comes together and creates an accessible website.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:27:42] <strong>Nathan Wrigley:</strong> In your commentary a few minutes ago, you mentioned that there were some guidelines in order to put a theme on wordpress.org. Is that the nature of it? Is it a guideline, or are there some hard and fast rules, which will prevent a theme getting into the repo based upon a lack of accessibility? What I&#8217;m asking is, are there some things that you must do as of now, or is it very much, okay, if you do this, great, but if you don&#8217;t, we&#8217;ll let your theme pass anyway?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:28:09] <strong>Jessica Lyschik:</strong> Yeah. Let me explain this. So there&#8217;s this accessibility ready tag. So you have different tags for the themes in the repository. And in order to get the accessibility ready tag, you need to follow the requirements, the accessibility ready requirements, I think it&#8217;s completely called.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And these are as of now 18 requirements. I went through them all in my talk. We&#8217;ve already touched on some of these. Some are really low hanging fruit, some are, one of the newer ones are, a theme should not recommend or require a plugin that is not accessible. This is something else that the team came up with, which is an interesting one. There&#8217;s, I guess a lot of room for discussion.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But also another one is to have an accessibility.txt file in your theme. Which basically, it&#8217;s not a standard yet, but like close to a standard sort of, has information about what has been done in terms of accessibility. Are there any classes that you can, CSS classes that you can use to make use of texts for screen readers? So basically hide them visually, or hide these texts or items visually, but still have them read out by screen readers. So they&#8217;re not like discipline none where you just remove that basically from the accessibility tree, but make it still readable for screen readers. And just some more information about that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Yeah, you need to meet all these requirements with your theme if you want this tag. But you can still like do not care about accessibility and still get your theme in the repo if you want.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:29:40] <strong>Nathan Wrigley:</strong> Would you like that to be flipped? Would you like that to be, because I mean we&#8217;re a very open ecosystem, aren&#8217;t we? And would you like to see though a day where you don&#8217;t meet these 18 guidelines, you don&#8217;t get the tag, you don&#8217;t get to play, you&#8217;re not allowed in the repo? Or is that a touch too far?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:29:56] <strong>Jessica Lyschik:</strong> Let me share some numbers, I think. So there are like 14,700 plus themes in the repository right now. All themes. At least that&#8217;s the number I can access. I don&#8217;t know if there&#8217;s maybe a bit more, I don&#8217;t know. But this is the public number you can access. And out of these themes, I think if I saw the correct number, it&#8217;s like just 270 have the accessibility ready tag. So then that is like 1.5% of all themes who have that tag.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So I think it will be extremely hard to force sort of, if you want to flip that, force that onto people. And I think we need to do a more gradual way. And that&#8217;s what I&#8217;m sharing my knowledge because I think it is not that hard. If you can improve the documentation for it, it will be even easier for people. And I think this is the way to go instead of forcing like, because we do not like to be forced to things we do not understand.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:30:50] <strong>Nathan Wrigley:</strong> That&#8217;s right. Yeah, that&#8217;s interesting. I wonder if there&#8217;s a future in which that slowly gets ramped up.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:30:56] <strong>Jessica Lyschik:</strong> I think with the AI agents, we will have an acceleration on this, I guess. So maybe not in WordPress themes, in the repository directly, but I think the attention will be put there and then like, oh, maybe we should make it more accessible. Let&#8217;s read into this. And I think these guidelines are also very interesting, maybe not just for WordPress themes. I mean, of course they&#8217;re for the repository, but you of course can apply them to your own custom theme, definitely. You do not have an absolute check like the team will do for you. But nothing stops you from using them even on a non WordPress site.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:31:30] <strong>Nathan Wrigley:</strong> Do the guidelines, do they feel like they&#8217;re kind of firmly fixed or is it always a movable feast?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:31:35] <strong>Jessica Lyschik:</strong> They&#8217;re relatively fixed.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:31:37] <strong>Nathan Wrigley:</strong> Okay, so if you were to swat up, for want of a better word, on what there is right now, there&#8217;s a good chance that the rug will not be pulled out from under you in six months, a year, two years time.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:31:46] <strong>Jessica Lyschik:</strong> No, I think the last time the requirements got updated was in 2012, 14. I would need to ask, Joe Dolson did the initial, or was working on the initial thing. And so it has been a while since this got updated and they just got updated last month. So I don&#8217;t think that they will be changing anything.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The one I talked about, not requiring or recommending plugins is the one, this is something, it kind of creates a grey area sort of. And I think this will be put to discussion. It&#8217;s like, I don&#8217;t mind, but I can see many people like really, not raging against it, but like raising questions about it. If this is something that should be a requirement.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But I think for like the actual technical stuff, I don&#8217;t think that there&#8217;s much that should change, because like they&#8217;re based on the WCAG requirements. These are like the standard requirements that also have, I&#8217;m not sure if they&#8217;re used on governmental things, like on the European Accessibility Act, but I think they&#8217;re a sort of base for that. And it&#8217;s not like completely this. So the theme requirements are not like the WCAG requirements 100%, but like a subset of it, sort of.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:32:57] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s a fairly slow moving ship in other words. If you acquire the knowledge today, you&#8217;ve got a good chance that in a year, two years, maybe even five years, the knowledge that you&#8217;ve got will need amending. But most of it will broadly work several years from now.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:11] <strong>Jessica Lyschik:</strong> It&#8217;s with like development in general. So like you always need to be constantly learning. And I think if you learn about accessibility today, I think you&#8217;re in a very good spot. Because like of course we have European Accessibility Act and governmental requirements, at least in Europe we do have them. But I think there&#8217;s already so much information out there, that it should be relatively easy to onboard you. And I think this is just beneficial if you learn, it&#8217;s basically about learning about how to use things correctly. And if you&#8217;ve got that, then you&#8217;re absolutely good to go.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:45] <strong>Nathan Wrigley:</strong> So not that long ago I suppose, we had block themes coming around, which is an entirely different way of creating themes in WordPress. So you&#8217;ve got classic themes, which is the way it always used to be. And now we&#8217;ve got block themes. Is there a striking fundamental difference in the way that you might approach accessibility if you were used to doing block themes? Is there a whole lot more to learn? Maybe it&#8217;s more straightforward if you&#8217;re using block themes. Just tell us about how those two things differ.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:34:08] <strong>Jessica Lyschik:</strong> Yeah. It is more straightforward actually. Core is handling stuff for you. So accessibility just got a tad bit easier if you use block themes actually. In classic themes, you have to do a lot of things manually. You have to make sure that the elements are right, that the skip link is there, for example, things that we touched on already. And in block themes, if you use the correct blocks on the correct structure, Core handles stuff for you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, there&#8217;s a requirement labelled form fields. So when you use a form or the form fields should have a label to it. In themes you don&#8217;t really have that because usually you should not put like, something like a form in there. There are two forms that by default come with a theme that are the comments form, but that&#8217;s completely handled by Core. And there&#8217;s the search form on the search results page.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But in block themes, both of them are handled by Core. Both of them are accessible because Core handles it all for you. You just need to place them and actually not do anything to them. It is that straightforward.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And same for like template parts. If you want to use header and footer, just use the template parts and use them. You can assign them a header template part as header of course, and one as footer. And then the HTML text will be automatically added correctly for you. So there&#8217;s not too much that you need to do manually anymore, just get that right.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And as I say, I really love block themes for the much easier accessibility, or the way you can make a block theme accessible. This is so much easier than with a classic theme.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:35:38] <strong>Nathan Wrigley:</strong> So presumably though, it sounds like there&#8217;s meta knowledge, if you know what I mean. You&#8217;ve got to know which block to put in which spot, and which block wraps this other block, and the parents and the children. But if you learn that, and if you make that, we were talking about habits earlier, if you make that your habit, and then save that habit and save the theme and what have you, you are painting a picture where it&#8217;s significantly more straightforward because you don&#8217;t have to think about it in many cases. Well, that&#8217;s the wrong way of phrasing it. You don&#8217;t have to do that hard work.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:36:07] <strong>Jessica Lyschik:</strong> Exactly. If you have like a, sorry to interrupt you here, but if you have a theme that already gives you the correct examples, you can build off from that theme. For example, if you&#8217;re creating a new template, you can use an existing template and then just adjust it to what you need. If you need to change like colours or something but you have the structure already correct. You do not need to think about doing the structure again and maybe just have a check that it&#8217;s actually the right one. But if you just copy what&#8217;s already there, that is part of the theme, that&#8217;s actually super easy.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:36:38] <strong>Nathan Wrigley:</strong> I&#8217;m going to link to your presentation, which I know by the time that this goes out will be probably on wordpress.tv, I would&#8217;ve thought by that point. But I&#8217;ll link to your presentation and all of the different bits and pieces.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But I&#8217;m curious, who in the WordPress space, and maybe not the WordPress space, maybe outside of that, who do you follow or try to get guidance from? Maybe that&#8217;s a YouTube channel or a blog, or a, I don&#8217;t know, government based website. Maybe it&#8217;s just wordpress.org, I don&#8217;t know. Where do you go to swat up on all of this?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:37:06] <strong>Jessica Lyschik:</strong> Ooh, there are some very good resources out there. So I do follow like people within the WordPress community. I mentioned a few names already, like Joe Dolson, Rian Rietveld, Amber Hinds from Equalize Digital. They do a lot of stuff in that area. And then I also follow Sara Soueidan, she&#8217;s a developer from, I think Lebanon, if I remember correctly. She does great stuff on accessibility. There is a few more names. There are some good resources out there. I can probably research that for you because I cannot remember the names right now.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:37:39] <strong>Nathan Wrigley:</strong> I&#8217;m putting you on the spot. I&#8217;m sorry.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:37:40] <strong>Jessica Lyschik:</strong> Put me on the spot. That&#8217;s okay. I&#8217;ll share some links with you that you can then put in with the podcast information. There are some great resources both within the WordPress community but also outside of it that can give you a very good overview. And I think it&#8217;s just interesting to follow people who like can build the bridge between, okay, this is a requirement, this is how you technically do it, and this is why you do it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:38:05] <strong>Nathan Wrigley:</strong> I have a friend who&#8217;s recently been on the journey of trying to go from zero to really quite proficient in this space. He&#8217;s found a bunch of YouTube channels and several of the names that you mentioned there, particularly the Lebanese lady that you mentioned.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I think followed a course that they put together and found that structure profoundly helpful. The dry documentation, I think was the way it was described on the WCAG website can sometimes I think be a, you know, it&#8217;s hard to get into that in some way.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You know, if this all sounds like a lot of work, there&#8217;s definitely resources out there, which, fun is perhaps the wrong word, but make it more engaging. There&#8217;s videos to watch, and channels to follow and blogs to read and all of this. And so it turns this, I&#8217;m doing air quotes, dry subject into something a little bit more manageable and easy to take in.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:38:52] <strong>Jessica Lyschik:</strong> Yes. Yes, because like the WCAG requirements, like they&#8217;re hard to read. It&#8217;s like reading, the HTML 5 spec. This is also super hard to read.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:01] <strong>Nathan Wrigley:</strong> Yeah, it&#8217;s the cure for insomnia.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:03] <strong>Jessica Lyschik:</strong> Yeah, sort of. And it&#8217;s, yeah, I think if we have, not more content, but the right content available to people in the right spot, I think this will be beneficial for everyone.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:14] <strong>Nathan Wrigley:</strong> Yeah. I think unless there&#8217;s something else you want to cover off, I think, Jessica, I&#8217;ve asked everything I wish to. Is there anything you think we&#8217;ve omitted or are you happy to call it a day there?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:24] <strong>Jessica Lyschik:</strong> I think we&#8217;re, I mean we could go on probably for days. But I think for now it&#8217;s, we&#8217;ve covered every topic.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:32] <strong>Nathan Wrigley:</strong> Well in which case, what I&#8217;ll do, dear listener, if you go to the WP Tavern website and search for Jessica&#8217;s post, I&#8217;m not sure what number it will be as we&#8217;re recording it, go there and anything that we discussed, and any names that we discussed and those kind of things, I&#8217;ll put a link and obviously if Jessica supplies any other things she mentioned, we&#8217;ll add those in as well.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So Jessica, thank you so much for chatting to me today. And now that your presentation is done, you can relax and enjoy the rest of the spectacle.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:55] <strong>Jessica Lyschik:</strong> Yes. Thank you so much, and thanks for having me.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:39:57] <strong>Nathan Wrigley:</strong> You&#8217;re welcome.</p>\n</div></details>\n\n\n\n<p class=\"wp-block-paragraph\">On the podcast today we have <a href=\"https://jessicalyschik.de\">Jessica Lyschik</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Jessica is a longtime member of the WordPress community who has been working in the ecosystem since 2015. She has spent years learning and advocating for web accessibility, both as a developer and as an active community participant, joining agencies, working on theme reviews, and helping to improve standards.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Many theme creators assume that making themes accessible is an intimidating task, but Jessica’s here to show you that achieving an accessibility-ready WordPress theme is more straightforward than you might imagine. Her WordCamp Europe 2026 presentation, “Accessibility in themes: easier than you think,” aimed to demystify the requirements for accessible themes, explaining what the WordPress guidelines mean in practice, where the low-hanging fruit is, and how both block and classic themes can reach accessibility-ready status with manageable effort.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We talk about the personal and moral journey that brings developers to accessibility, the technical hurdles and documentation challenges, and the ways in which things like AI agents are putting accessibility in the spotlight for everyone. Jessica talks about practical steps that quickly improve accessibility, like using correct HTML tags, adding alternative text to images, and configuring skip-to-content links, and shares why building accessibility in from the start saves time and effort down the road.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We also explore the differences, and possible advantages, of block themes when it comes to accessibility, why theme guidelines work the way they do, and the importance of interdisciplinary awareness across SEO, design, and content teams. Jessica mentions helpful resources, influential leaders in accessibility, and the ongoing need for documentation improvements to help everyone level up.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you’ve ever felt overwhelmed by accessibility requirements, or wonder why they matter, and how you can build better WordPress sites that work for everyone, 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://europe.wordcamp.org/2026/session/accessibility-in-themes-easier-than-you-think/\">Accessibility in themes: easier than you think</a> &#8211; Jessica&#8217;s presentation at WordCamp Europe 2026</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://syde.com\">Syde</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://leipzig.wordcamp.org/2026/\">WordCamp Leipzig 2026</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://greydsuite.com\"> Greyd.Suite</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://developer.wordpress.org/themes/classic-themes/functionality/accessibility/\">Accessibility Handbook</a> &#8211; Theme section</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.w3.org/WAI/standards-guidelines/wcag/\">WCAG 2 Overview</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://commission.europa.eu/strategy-and-policy/policies/justice-and-fundamental-rights/disability/european-accessibility-act-eaa_en\">European Accessibility Act (EAA)</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.joedolson.com\"> Joe Dolson</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://rianrietveld.com\">Rian Rietveld</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://amberhinds.com\">Amber Hinds</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.sarasoueidan.com\"> Sara Soueidan</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, 22 Jul 2026 13: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: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:67:\"Open Channels FM: We are Welcoming Automattic as our Newest Sponsor\";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=2557268\";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:74:\"https://openchannels.fm/we-are-welcoming-automattic-as-our-newest-sponsor/\";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:159:\"Automattic is now a sponsor of Open Channels FM Podcast Network, supporting creators with tools for WordPress, WooCommerce, and more, promoting freedom online.\";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, 22 Jul 2026 08:25:26 +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:69:\"Gutenberg Times: How WordPress decides a theme is a “block theme”\";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=46118\";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:74:\"https://gutenbergtimes.com/how-wordpress-decides-a-theme-is-a-block-theme/\";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:20333:\"<p class=\"wp-block-paragraph\">The term &#8220;block theme&#8221; is used a lot in WordPress but it was never really clear to me what that meant exactly from a code point of view.</p>\n\n\n\n<p class=\"wp-block-paragraph\">While researching <a href=\"https://gutenbergtimes.com/the-post-editor-is-going-full-iframe-what-block-developers-need-to-know-before-wordpress-7-1/\">The post editor is going full iframe: what block developers need to know before WordPress 7.1</a>, I learned that the outcome of testing WordPress 7.1 Beta 1 <em>may</em> soften the plan: instead of forcing the iframe for everyone, core might force it only for block themes, while classic themes using blocks with apiVersion 2 or lower keep the current 7.0 behavior. (The linked article covers the 7.0 state of things in full.)<br /><br />If that&#8217;s the split, then the exact definition of &#8220;block theme&#8221; suddenly matters a great deal. So what does core actually check?</p>\n\n\n\n<p class=\"wp-block-paragraph\">The public API is <code>wp_is_block_theme()</code>, which just asks the active theme:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>PHP</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// wp-includes/theme.php (guard clause trimmed)\nfunction wp_is_block_theme() {\n	return wp_get_theme()->is_block_theme();\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// wp-includes/theme.php (guard clause trimmed)</span></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">function</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">wp_is_block_theme</span><span style=\"color: #D4D4D4;\">() {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">wp_get_theme</span><span style=\"color: #D4D4D4;\">()-&gt;</span><span style=\"color: #DCDCAA;\">is_block_theme</span><span style=\"color: #D4D4D4;\">();</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">And <code>WP_Theme::is_block_theme()</code> is, in its entirety, a file-existence check:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>PHP</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// wp-includes/class-wp-theme.php (caching trimmed)\npublic function is_block_theme() {\n	$paths_to_index_block_template = array(\n		$this->get_file_path( \'/templates/index.html\' ),\n		$this->get_file_path( \'/block-templates/index.html\' ),\n	);\n\n	foreach ( $paths_to_index_block_template as $path ) {\n		if ( is_file( $path ) &amp;&amp; is_readable( $path ) ) {\n			return true;\n		}\n	}\n\n	return false;\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// wp-includes/class-wp-theme.php (caching trimmed)</span></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">public</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">function</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">is_block_theme</span><span style=\"color: #D4D4D4;\">() {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">$paths_to_index_block_template</span><span style=\"color: #D4D4D4;\"> = </span><span style=\"color: #DCDCAA;\">array</span><span style=\"color: #D4D4D4;\">(</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		</span><span style=\"color: #569CD6;\">$this</span><span style=\"color: #D4D4D4;\">-&gt;</span><span style=\"color: #DCDCAA;\">get_file_path</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'/templates/index.html\'</span><span style=\"color: #D4D4D4;\"> ),</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		</span><span style=\"color: #569CD6;\">$this</span><span style=\"color: #D4D4D4;\">-&gt;</span><span style=\"color: #DCDCAA;\">get_file_path</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'/block-templates/index.html\'</span><span style=\"color: #D4D4D4;\"> ),</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	);</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">foreach</span><span style=\"color: #D4D4D4;\"> ( </span><span style=\"color: #9CDCFE;\">$paths_to_index_block_template</span><span style=\"color: #D4D4D4;\"> as </span><span style=\"color: #9CDCFE;\">$path</span><span style=\"color: #D4D4D4;\"> ) {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		</span><span style=\"color: #C586C0;\">if</span><span style=\"color: #D4D4D4;\"> ( </span><span style=\"color: #DCDCAA;\">is_file</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">$path</span><span style=\"color: #D4D4D4;\"> ) &amp;&amp; </span><span style=\"color: #DCDCAA;\">is_readable</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">$path</span><span style=\"color: #D4D4D4;\"> ) ) {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">			</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">true</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		}</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	}</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">false</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A theme is a &#8220;block theme&#8221; if it ships an <code>index.html</code> block template</strong>, either in <code>templates/</code>, or in <code>block-templates/</code>, the pre-5.9 legacy location. Nothing else is consulted. That has a few consequences that may surprise people:</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>theme.json</code> doesn&#8217;t make you a block theme.</strong> Neither do patterns, block template <em>parts</em>, or <code>add_theme_support( \'block-templates\' )</code>. A theme can adopt every one of those &#8220;hybrid&#8221; features and still land on the classic side of this check, because the test only looks for a top-level <code>index.html</code> template.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Child themes inherit the answer.</strong> <code>get_file_path()</code> looks in the child theme first and falls back to the parent, so a child theme of a block theme is a block theme even if the child ships no templates of its own.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It&#8217;s a filesystem check, not a declaration.</strong> There&#8217;s no header in <code>style.css</code> that opts you in or out. Drop a <code>templates/index.html</code> into a theme and, as far as WordPress is concerned, it <em>is</em> a block theme.</p>\n\n\n\n<h3 class=\"wp-block-heading\">The minimum files required for block and classic themes</h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is the entire minimum viable <strong>block theme</strong> — two files:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>Markdown</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">my-block-theme/\n├── style.css          ← standard theme header\n└── templates/\n    └── index.html     ← this file IS the decider</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4;\">my-block-theme/</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">├── style.css          ← standard theme header</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">└── templates/</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">    └── index.html     ← this file IS the decider</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">(WordPress considers a theme valid if it has <code>style.css</code> plus <em>either</em> <code>index.php</code> or <code>templates/index.html</code>, which means for a block theme, <code>index.php</code>, <code>functions.php</code>, and even <code>theme.json</code> are all optional.)</p>\n\n\n\n<p class=\"wp-block-paragraph\">And this is a theme that is <strong>guaranteed to stay classic</strong>:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>Markdown</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">my-classic-theme/\n├── style.css\n└── index.php          ← the classic fallback template</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4;\">my-classic-theme/</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">├── style.css</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">└── index.php          ← the classic fallback template</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Staying on the classic side of the check comes down to two conditions:</p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>No</strong> <strong><code>templates/index.html</code></strong> <strong>and no legacy</strong> <strong><code>block-templates/index.html</code>.</strong> Other block templates don&#8217;t matter: a theme with `templates/single.html` but no `templates/index.html` still tests as classic. (In practice, though, if you&#8217;re shipping block templates, ship the index and be a block theme on purpose.)</li>\n\n\n\n<li><strong>No block-theme parent.</strong> The check falls back to the parent theme, so a child of Twenty Twenty-Five is a block theme no matter what the child contains. To be classic, the whole chain has to be.</li>\n</ol>\n\n\n\n<p class=\"wp-block-paragraph\">Everything else is fair game. <code>theme.json</code>, patterns, <code>add_theme_support( \'block-template-parts\' )</code>` custom templates registered from plugins — none of them flip the switch., patterns, <code>add_theme_support( \'block-template-parts\' )</code>, custom templates registered from plugins: none of them flip the switch.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Where real themes land</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Running that check against some current releases from the theme directory</p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tests <strong>classic</strong></th><th>Tests <strong>block</strong></th></tr></thead><tbody><tr><td>Twenty Twenty-One and every earlier default</td><td>Twenty Twenty-Two and every later default</td></tr><tr><td>Astra, Kadence, Blocksy, Botiga, Sydney, Hello Elementor — <em>all ship <code>theme.json</code></em></td><td></td></tr><tr><td>GeneratePress, Neve, OceanWP, Storefront</td><td></td></tr></tbody></table></figure>\n\n\n\n<p class=\"wp-block-paragraph\">Six of the themes in the first column ship <code>theme.json</code>, the marquee &#8220;block&#8221; feature, and still test classic, because the check never looks at <code>theme.json</code><br /><br />Twenty Twenty and OceanWP are another good gotcha: both ship a <code>templates/</code> directory and are still classic, because it&#8217;s full of PHP page templates (<code>template-cover.php</code>, <code>landing.php</code>). The check wants <code>templates/index.html</code> specifically, so &#8220;does it have a templates folder&#8221; is not the indicator you might assume.</p>\n\n\n\n<h3 class=\"wp-block-heading\">How the editor reads it</h3>\n\n\n\n<p class=\"wp-block-paragraph\">On the JavaScript side, the block-theme flag surfaces in two different places, which is worth knowing if you go source-diving.</p>\n\n\n\n<p class=\"wp-block-paragraph\">As an editor setting:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>PHP</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// wp-includes/block-editor.php, get_block_editor_settings()\n$editor_settings&#91;\'__unstableIsBlockBasedTheme\'&#93; = wp_is_block_theme();</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// wp-includes/block-editor.php, get_block_editor_settings()</span></span>\n<span class=\"line\"><span style=\"color: #9CDCFE;\">$editor_settings</span><span style=\"color: #D4D4D4;\">&#91;</span><span style=\"color: #CE9178;\">\'__unstableIsBlockBasedTheme\'</span><span style=\"color: #D4D4D4;\">&#93; = </span><span style=\"color: #DCDCAA;\">wp_is_block_theme</span><span style=\"color: #D4D4D4;\">();</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">and on the REST themes endpoint, which is where <code>@wordpress/core-data</code> picks it up:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>PHP</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// wp-includes/rest-api/endpoints/class-wp-rest-themes-controller.php\n$data&#91;\'is_block_theme\'&#93; = $theme->is_block_theme();</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// wp-includes/rest-api/endpoints/class-wp-rest-themes-controller.php</span></span>\n<span class=\"line\"><span style=\"color: #9CDCFE;\">$data</span><span style=\"color: #D4D4D4;\">&#91;</span><span style=\"color: #CE9178;\">\'is_block_theme\'</span><span style=\"color: #D4D4D4;\">&#93; = </span><span style=\"color: #9CDCFE;\">$theme</span><span style=\"color: #D4D4D4;\">-&gt;</span><span style=\"color: #DCDCAA;\">is_block_theme</span><span style=\"color: #D4D4D4;\">();</span></span></code></pre></div>\n\n\n\n<h2 class=\"wp-block-heading\">The one-file switch</h2>\n\n\n\n<p class=\"wp-block-paragraph\"><br />For all the weight the term carries, &#8220;block theme&#8221; boils down to a single file: <code>templates/index.html</code> exists, or it doesn&#8217;t. Not <code>theme.json</code>, not patterns, not any amount of hybrid adoption. Just one index template, checked up the parent chain.</p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s worth keeping in mind if 7.1 does end up drawing the iframe line at <code>wp_is_block_theme()</code>. A hybrid theme that has adopted everything <em>except</em> block templates would keep the classic editor behavior, while adding a single <code>templates/index.html</code> (even accidentally, even in a parent theme you don&#8217;t control) would flip a site to the forced iframe. If your theme or your users&#8217; sites sit anywhere near that line, now is a good time to check which side of it you&#8217;re actually on: it&#8217;s one <code>is_file()</code> call away.</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:\"Tue, 21 Jul 2026 18:57: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:12:\"Ryan Welcher\";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:86:\"Open Channels FM: The Growth of Domain Names and the Future of AI in Internet Identity\";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=2557208\";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:93:\"https://openchannels.fm/the-growth-of-domain-names-and-the-future-of-ai-in-internet-identity/\";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:223:\"This episode looks at the evolving online landscape, focusing on domain names, digital identity, and AI\'s influence. Key insights include rising domain registrations, AI in managing abuse, and the importance of open source.\";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, 21 Jul 2026 13:41: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: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: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:60:\"Open Channels FM: Open Source and the Open Source Initiative\";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=2556849\";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/open-source-and-the-open-source-initiative/\";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:346:\"People think Open Source is just about having access to the source code. Actually, there&#8217;s a much longer history behind it. Open Source existed before the term Open Source was even coined, back in the late 60s. Universities started giving away software like Unix for free under small licenses like BSD or MIT, coincidentally named [&#8230;]\";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, 21 Jul 2026 12:15: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: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:90:\"WordCamp Central: WordCamp Rajshahi 2026: Celebrating Community, Learning, and Open Source\";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=15457333\";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:112:\"https://central.wordcamp.org/news/2026/07/wordcamp-rajshahi-2026-celebrating-community-learning-and-open-source/\";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:8004:\"<p class=\"wp-block-paragraph\">WordCamp Rajshahi 2026, held on July 2nd-3rd, 2026, at the Rajshahi University of Engineering &amp; Technology (RUET) Auditorium, brought together WordPress enthusiasts, developers, designers, business owners, students, and open-source contributors from across Bangladesh and beyond. As a non-profit, community-driven conference, the event demonstrated the strength of collaboration, knowledge sharing, and the spirit of open source.</p>\n\n\n\n<p class=\"wp-block-paragraph\">More than just a technology conference, WordCamp Rajshahi became a place where people connected, exchanged ideas, and inspired one another to contribute to the future of WordPress.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Sharing Knowledge That Matters</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The conference featured a diverse lineup of local and international speakers who shared practical experiences, real-world case studies, and emerging trends shaping the web today.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Artificial intelligence was one of the most discussed topics throughout the event. Sessions explored how AI is transforming the way developers and businesses work—from integrating AI into WordPress without writing code to building customer support agents, using modern Large Language Models (LLMs) for development, debugging applications, and improving everyday workflows.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Performance, architecture, and security also received significant attention. Speakers demonstrated advanced WordPress optimization techniques, object caching strategies, no-code animations using GSAP, methods for identifying system vulnerabilities, and practical approaches to cleaning malware-infected WordPress websites with AI.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Beyond technical sessions, the conference emphasized personal and professional growth. Attendees learned about building successful careers, transitioning from startups to multinational companies, product marketing, the realities of remote work, and maintaining mental well-being while working in the technology industry.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Contributor Day: Giving Back to WordPress</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contributor Day, held on July 2, served as one of the most meaningful parts of the event.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Participants worked alongside experienced WordPress contributors and Table Leads to improve the WordPress project itself. Whether they contributed to Core, Accessibility, Themes, Plugins, Polyglots (translations), Education, or Photos, attendees experienced firsthand how community collaboration built the global WordPress ecosystem.</p>\n\n\n\n<p class=\"wp-block-paragraph\">For many first-time contributors, it was their first opportunity to make a direct contribution to one of the world&#8217;s largest open-source projects.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Campus Connect: Inspiring the Next Generation</h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the highlights of WordCamp Rajshahi 2026 was the <strong>Campus Connect</strong> initiative.</p>\n\n\n\n<p class=\"wp-block-paragraph\">To encourage student participation in open source, <strong>40 university students</strong> received <strong>complimentary tickets</strong> to attend the event. This initiative introduced young learners to the WordPress community, allowing them to interact with experienced professionals, attend technical sessions, and discover opportunities to contribute to open source.</p>\n\n\n\n<p class=\"wp-block-paragraph\">By investing in students today, the community hopes to cultivate the next generation of developers, designers, and contributors who will help shape the future of WordPress.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Sponsors Who Made It Possible</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp events are made possible through the generous support of organizations that believe in strengthening the open-source ecosystem. Rather than simply sponsoring an event, these companies invest in community growth and knowledge sharing.</p>\n\n\n\n<p class=\"wp-block-paragraph\">This year, the sponsorship tiers celebrated Rajshahi&#8217;s famous mango heritage.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fazli Majesty (Platinum Sponsors)</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://webappick.com/\" rel=\"noopener\" target=\"_blank\">WebAppick</a>,</li>\n\n\n\n<li><a href=\"https://fluentcart.com/\" rel=\"noopener\" target=\"_blank\">FluentCart</a>,</li>\n\n\n\n<li><a href=\"https://xcloud.host/\" rel=\"noopener\" target=\"_blank\">xCloud</a>.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Himsagar Legacy (Gold Sponsor)</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://hosting.com/\" rel=\"noopener\" target=\"_blank\">Hosting.com</a></li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Amrapali Delight (Silver Sponsors)</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://paymentform.io/\" rel=\"noopener\" target=\"_blank\">PaymentForm.io</a></li>\n\n\n\n<li><a href=\"https://kirki.com/\" rel=\"noopener\" target=\"_blank\">Kirki</a></li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Community Sponsors</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://www.google.com/url?sa=E&amp;q=https%3A%2F%2Fcrowdzonebd.com%2F\" rel=\"noopener\" target=\"_blank\">Crowd Zone</a>,</li>\n\n\n\n<li><a href=\"https://exprovia.com/\" rel=\"noopener\" target=\"_blank\">Exprovia</a>,</li>\n\n\n\n<li>NT Tech Innovation,</li>\n\n\n\n<li><a href=\"https://padmazon.com.bd/\" rel=\"noopener\" target=\"_blank\">Padmazon Limited</a>,</li>\n\n\n\n<li><a href=\"https://shapedplugin.com/\" rel=\"noopener\" target=\"_blank\">ShapedPlugin</a>,</li>\n\n\n\n<li><a href=\"https://sigmative.com/\" rel=\"noopener\" target=\"_blank\">Sigmative</a>,</li>\n\n\n\n<li><a href=\"https://timetics.ai/\" rel=\"noopener\" target=\"_blank\">Timetics AI</a>,</li>\n\n\n\n<li><a href=\"https://wpbakery.com/\" rel=\"noopener\" target=\"_blank\">WPBakery</a>.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Official Partners</strong></p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FM Networks (Internet Partner)</li>\n\n\n\n<li>TNR Soft (Payment Gateway Partner)</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">Their support enabled the community to deliver a world-class experience while keeping the event affordable and accessible.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Thank You to Everyone Behind the Scenes</h2>\n\n\n\n<p class=\"wp-block-paragraph\">An event of this scale is never the work of a single person.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Our sincere appreciation goes to every speaker and Contributor Day table lead who generously shared their knowledge and experience with the community.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We are equally grateful to our organizers and volunteers. From sponsorship coordination, website management, registration, design, photography, audiovisual production, venue operations, food management, and attendee support, every team member played a vital role in ensuring the event ran smoothly.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Their dedication transformed months of planning into an unforgettable experience for every attendee.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Looking Ahead</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp Rajshahi 2026 demonstrated what is possible when passionate volunteers, contributors, sponsors, and community members work toward a common goal.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The event was more than a conference—it was a celebration of learning, collaboration, and the open-source values that make WordPress one of the world&#8217;s most successful communities.</p>\n\n\n\n<p class=\"wp-block-paragraph\">As the community continues to grow, the relationships built, ideas shared, and contributions made during WordCamp Rajshahi 2026 will inspire future events and encourage even more people to participate in the global WordPress ecosystem.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s to many more WordCamps, more contributors, and a stronger open-source community in Bangladesh and beyond.</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, 20 Jul 2026 19:05: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:12:\"Nazmul Hosen\";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:111:\"Gutenberg Times: #WCUS Schedule, iframed Post Editor, WooCommerce 11.0 and so much more — Weekend Edition 369\";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=46063\";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:115:\"https://gutenbergtimes.com/wcus-schedule-iframed-post-editor-woocommerce-11-0-and-so-much-more-weekend-edition-369/\";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:23671:\"<p class=\"wp-block-paragraph\">Hi there!</p>\n\n\n\n<p class=\"wp-block-paragraph\">What a week! WordPress 7.1 Beta 1 (and Beta 2) arrived with a huge array of updates. We&#8217;ll unpack them together over the next four weeks, right up to the final release on August 19, 2026.</p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing shouldn&#8217;t wait, though: the security release WordPress 7.0.2. Go update your production sites now — this newsletter will still be here when you&#8217;re back. <img alt=\"😉\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png\" style=\"height: 1em;\" /></p>\n\n\n\n<p class=\"wp-block-paragraph\">In this edition, you&#8217;ll also find the first speaker lineup for WordCamp US, a fourth page-builder migration story, WooCommerce 11.0 on the horizon, and plenty of block development goodness:  from iframed editors to on-brand maintenance pages.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Grab your favorite Saturday beverage and dig in.</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<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WordCamp US 2026: Four Tracks, Three Workshops, 33 Speakers</strong></h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://us.wordcamp.org/2026/announcing-our-first-round-of-speakers-2/\"><img alt=\"First speaker spotlight WordCamp US&gt; \" class=\"wp-image-46081\" height=\"343\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/07/Speakers-WordCamp-Us.png?resize=652%2C343&#038;ssl=1\" width=\"652\" /></a></figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The first wave of WCUS 2026 speakers is live — and it reads like a who&#8217;s-who of WordPress in practice.</strong></p>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp US just <a href=\"https://us.wordcamp.org/2026/speakers/\">published its opening lineup</a> for August 16–19 in Phoenix: 34 confirmed speakers so far, including <strong>K Adam White, Brian Coords, Jamie Marsland, Kathy Zant, Miriam Schwab, and Robert Abela</strong>, all experienced developers, educators, security specialists, community builders.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The program runs four tracks. </p>\n\n\n\n<ul class=\"wp-block-list has-small-font-size\">\n<li><strong>AI in Action</strong> leads with sessions on agentic workflows, AI search, and guardrails for AI-assisted development. </li>\n\n\n\n<li><strong>Honing Your Skills</strong> covers the practical side: maintenance, privacy compliance, creator commerce, security. </li>\n\n\n\n<li><strong>Technical WordPress</strong> digs into block migrations at scale, WP-CLI automation, and plugin pipelines. </li>\n\n\n\n<li><strong>Beginning WP101</strong> is the on-ramp for newcomers — or for clients you&#8217;re bringing along.</li>\n\n\n\n<li>Three <strong>hands-on workshop</strong>s round out the program, where you build something real in the room and leave with it.<br /></li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">The full session schedule isn&#8217;t out yet, but the speaker list alone is a useful signal. If someone on that page is a voice you follow, a tool you depend on, or a corner of WordPress you&#8217;re actively navigating, you now have a specific reason to be in the room.<br /><br /><img alt=\"🎟\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f39f.png\" style=\"height: 1em;\" /> <a href=\"https://us.wordcamp.org/2026/tickets\" rel=\"noopener\" target=\"_blank\">us.wordcamp.org/2026/tickets</a> — $100 General Admission · $750 Micro-Sponsor (includes listing on the sponsors page) <img alt=\"👥\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f465.png\" style=\"height: 1em;\" /> <a href=\"https://us.wordcamp.org/2026/speakers/\" rel=\"noopener\" target=\"_blank\">Full speaker list →</a></p>\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\"><a href=\"https://wordpress.org/news/2026/07/wordpress-7-1-beta-1/\"><strong>WordPress 7.1 Beta </strong>1</a> was release on July 15, 2026.  is now available for testing. The release post offers instructions how to sent up a test side and shows an extensive list of new features. </p>\n\n\n\n<p class=\"wp-block-paragraph\">The security team released <a href=\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\"><strong>WordPress 7.0.2</strong></a> with the urgent appeal to update right away. The security fixes were also backported in 6.9.5 and 6.8.6. </p>\n\n\n\n<p class=\"wp-block-paragraph\">The security fix was also included in <strong>WordPress 7.1 Beta 2</strong>, so testing sites are also protected during this release cycle. </p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Huzaifa Al Mesbah,</strong> from the Core Test team, published the accompanying <a href=\"https://make.wordpress.org/test/2026/07/15/help-test-wordpress-7-1/\"><strong>Help Test WordPress 7.1</strong></a> post. </p>\n\n\n\n<p class=\"wp-block-paragraph\">A few <strong>WordPress 7.1 Dev Notes</strong> are already available: </p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://make.wordpress.org/core/2026/07/13/consistent-navigation-in-wordpress-7-1-with-persistent-toolbar/\">Consistent navigation in WordPress 7.1 with persistent toolbar</a> </li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2026/07/07/the-classic-block-stays-in-the-inserter-for-wordpress-7-1/\">The Classic block stays in the inserter for WordPress 7.1</a></li>\n</ul>\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-132/\">Gutenberg Changelog #132 – Proposals for Core, Calls for Testing, WordPress 7.1 and Gutenberg 23.4 and 23.5</a></p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img alt=\"\" class=\"wp-image-46077\" height=\"183\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/07/Screenshot-2026-07-10-at-10.56.17-edited-1.png?resize=652%2C183&#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\">In about 10 days, WooCommerce 11.0 release is schedule. Brain Coords has the skinny for you in <a href=\"https://developer.woocommerce.com/2026/07/13/woocommerce-11-0-pre-release/\"><strong>what&#8217;s coming for developers in WooCommerce</strong></a>. Performance leads the release with 28 PRs — product object caching becomes the default for new stores, speeding up variable products by 9–12%. You&#8217;ll also find email verification connecting guest orders to accounts, new phone validation hooks, video embeds in the block email editor, and the final removal of the Product Editor beta. The beta is ready for your testing now.</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> followed his instincts and build <a href=\"https://wordpress.org/plugins/jamies-front-end-editor-for-content-teams/\"><strong>Jamie&#8217;s Front-End Editor for Content Teams</strong></a>, a plugin that lets your editors click any paragraph or heading on the live page and start typing — no block editor required. With the latest updates, you can now edit text, links, buttons and images right on the live page. No wp-admin, no block editor, just click and change it in place.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Built on the Interactivity API with no build step, it preserves block markup on save, records edits as native block notes for an audit trail, and lets you restrict chosen roles to front-end-only editing. Let Marsland what you think. </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\"><a href=\"https://gutenbergtimes.com/roadmap-7-1-gutenberg-23-5-responsive-styling-migration-to-block-themes-weekend-edition-368/\">Last week</a>, I shared three migration stories from page builders to the Core block editor and block themes. Here&#8217;s a fourth perspective: The team at WP Expert, an Ottawa agency founded by <strong>Frederic Sune</strong>, put together a comprehensive post on <a href=\"https://wpexpert.ca/migrate-agency-gutenberg-success/\"><strong>migrating agency sites from page builders to Gutenberg</strong></a>, should you go on that journey, too. You&#8217;ll find the strategic arguments (better Core Web Vitals, smaller attack surface, less technical debt) alongside a practical playbook covering backups, staging, block theme selection, pattern development, and SEO safeguards. The post also explores what block-based architectures mean for an agency&#8217;s business model, from premium modernization packages to fewer layout-related support tickets. An FAQ rounds it out.</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>Brian Coords</strong> tackles a common WooCommerce pain point: <a href=\"https://www.briancoords.com/custom-product-templates-for-block-themes/\"><strong>custom product templates for block themes</strong></a>. He combines two core WordPress features — the plugin template registration API from 6.7 and the venerable <code>single_template_hierarchy</code> filter — to serve custom templates for product collections, like all products in a category. His example plugin falls back to your Single Product template unless you override it. Clone the repo and give it a try; custom Product fields are next on his list.</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\">On the WordPress Developer Blog, <strong>Troy Chaplin </strong>shows you how to build <strong><a href=\"https://developer.wordpress.org/news/2026/07/on-brand-maintenance-mode-for-wordpress-block-themes/\">an on-brand maintenance mode for block themes</a>.</strong> You add one small hook to your theme&#8217;s <code>functions.php</code> once, then design and manage the maintenance page entirely in the Site Editor with full access to your Global Styles. Renaming or deleting the template toggles maintenance mode on and off, no code needed. An SEO-friendly variant adds 503 headers so crawlers know the downtime is temporary.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https://developer.wordpress.org/news/2026/07/on-brand-maintenance-mode-for-wordpress-block-themes/\"><img alt=\"\" class=\"wp-image-46150\" height=\"345\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/07/maintenance-mode.png?resize=652%2C345&#038;ssl=1\" width=\"652\" /></a></figure>\n\n\n<div class=\"ng-block-a42f05573a839960 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-833ccf6034fa0998 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-7f8847b627562a02 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> | <strong><a href=\"https://make.wordpress.org/core/handbook/references/keeping-up-with-gutenberg-index/gutenberg-index-2025/\">2025</a></strong></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 </h2>\n\n\n\n<p class=\"wp-block-paragraph\">On WP Mayor, <strong>Jean Galea </strong>untangles <strong><a href=\"https://wpmayor.com/wp-cli-vs-rest-api-vs-abilities-api/\">when to reach for WP-CLI, the REST API, or the Abilities API</a>.</strong> His mental model: they&#8217;re layers, not rivals. WP-CLI lives on the server for bulk work, REST serves off-server callers like headless front ends, and the Abilities API tells AI agents what they&#8217;re allowed to do, complete with schemas and permission checks. Galea also shares how his own sites lean on all three at once.</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\">Get up to speed how to make your custom blocks plugin work in the iframed post editor, if you haven&#8217;t yet. After five years of ruminating and communicating the switch is coming to WordPress 7.1. In his post, <strong>Ryan Welcher</strong> explains <a href=\"https://gutenbergtimes.com/the-post-editor-is-going-full-iframe-what-block-developers-need-to-know-before-wordpress-7-1/\"><strong>why the post editor is going full iframe in WordPress 7.1</strong></a> and what that means for your custom blocks. You&#8217;ll find the fixes for the most common breakage — global <code>window</code> and <code>document</code> references, editor styles enqueued into the wrong document, stale admin-scoped CSS, and third-party libraries — plus a companion demo plugin with broken/fixed block pairs, Playground blueprints for testing both states, and a handy pre-flight checklist.</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\">The video volunteers at WordCamp Portugal uploaded all recordings to WordPressTV and two of the talks caught my eye: </p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Imran Sayed</strong> walks you through <a href=\"https://wordpress.tv/2026/05/19/the-fastest-way-to-build-gutenberg-blocks-modern-tools-scripts-and-ai-2/\"><strong>the fastest way to build Gutenberg blocks with modern tools, scripts, and AI</strong></a>. If custom block development has felt complex or time-consuming, you&#8217;ll appreciate his focus on practical, real-world workflows you can adopt immediately — moving fast without over-engineering. The recording is available on WordPress.tv, and the presentation slides are linked below the video for easy reference.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jorge Costa</strong> shows you how to use <a href=\"https://wordpress.tv/2026/05/19/ai-is-in-wordpress-core-heres-how-to-use-it/\">t<strong>he AI building blocks already shipped in WordPress core</strong></a> (the WP AI Client, the Abilities API, and the MCP adapter)  to bring AI-powered features into your own plugins, themes, and sites. He also tackles the bigger question: when agents can spin up entire projects on any stack, why is WordPress still the right bet? <a href=\"https://portugal.wordcamp.org/2026/files/2026/05/T1-12H30-jorge-slides_260516_095705.pdf\">Slides are linked</a> alongside the recording.</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\">Check out the not so new any more <strong>Talk Devy to Me</strong> series on Ryan Welchers YouTube Channel! In the latest epsiode, <strong>Antonio Sejas</strong> <a href=\"https://www.youtube.com/watch?v=YZWwP1QHXKM\"><strong>demos Studio Code, the agentic AI assistant</strong></a> built into WordPress Studio&#8217;s desktop app and CLI. You can spin up sites, run performance audits, add content, and install plugins and themes through natural language conversation — all locally, so nothing you break goes public. Sejas explains how it works under the hood before building something live with the host. Studio Code is free while in beta, so now&#8217;s a good time to experiment. </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\">If you rather want to read about the updates in WordPress Studio, <strong>Fredrik Rombach Ekelund</strong> shares <a href=\"https://wordpress.com/blog/2026/07/13/faster-wordpress-studio/\"><strong>three big updates to WordPress Studio</strong></a>: a new default Native PHP runtime makes your local sites load 30–50% faster while using a third of the memory, the Studio CLI now installs with one dependency-free command — no Node.js or npm required — and Claude Sonnet 5 is the new default model in Studio Code, improving multi-step work like tracing bugs across files. A Sandbox runtime remains available for testing untrusted code.</p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" />\n\n\n<div class=\"ng-block-a4215d8a5659f48a 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-650dde7044d75933 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-ec98a06a03cc295c 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-0ebaa290696c7b03 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-d67bed7e03a5c768 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-c170d95437ef909e 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, 18 Jul 2026 13:15: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: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:31:\"Matt: Important Security Update\";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=153595\";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/07/wp-security/\";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:2168:\"<p class=\"wp-block-paragraph\"><a href=\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\">WordPress 7.0.2</a> went out today with two important security updates. One is a type of pre-authorization RCE we (fortunately!) have only seen a few times in WordPress&#8217; 23-year history; the last, I believe, <a href=\"https://wordpress.org/documentation/wordpress-version/version-4-6-21/\">in the PHPMailer class five years ago</a>. </p>\n\n\n\n<p class=\"wp-block-paragraph\">Major kudos to <a href=\"https://x.com/hash_kitten\">Adam Kues</a> of <a href=\"https://slcyber.io/\">Searchlight Cyber</a> for finding the batch REST API RCE, to TF1T, dtro, and haongo on the facilitated SQL injection! </p>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks to <a href=\"https://en.wikipedia.org/wiki/Coordinated_vulnerability_disclosure\">responsible disclosure</a>, the WordPress.org Security team was able to coordinate with hosts and CDNs to mitigate the attack at the network layer. <em>Please upgrade anyway!</em> But it&#8217;s a huge relief to know the vast majority of WordPress sites were protected by <a href=\"https://en.wikipedia.org/wiki/Defense_in_depth_(computing)\">defense-in-depth</a> even before the updates went out. </p>\n\n\n\n<p class=\"wp-block-paragraph\">I really appreciate how people and organizations that otherwise might not be on the best of terms come together in times like this. (<a href=\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\">Full credits in the release post</a>.) Everyone buries the hatchet to protect as many people as possible as quickly as possible.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve said it before, I&#8217;ll say it again: security is going to be a big topic this year as the technology industry digests the incredible advances in AI models. It&#8217;s a good time to review your plans and processes, sweat the details, <a href=\"https://www.amazon.com/dp/1953953492\">invest in maintenance</a>, and <a href=\"https://en.wikipedia.org/wiki/System_Administrator_Appreciation_Day\">hug a sysadmin</a>. <img alt=\"🙂\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png\" style=\"height: 1em;\" /></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, 18 Jul 2026 02:36:16 +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: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:43:\"WordPress.org blog: WordPress 7.0.2 Release\";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=21167\";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:59:\"https://wordpress.org/news/2026/07/wordpress-7-0-2-release/\";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:4462:\"<h2 class=\"wp-block-heading\">WordPress 7.0.2 is now available.</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The 7.0.2 security release addresses one critical and one high severity security issue.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Because this is a security release, <strong>it is recommended that you update your sites immediately.</strong> Due to the severity, the WordPress.org team have enabled forced updates via the auto-update system for sites running affected versions.</p>\n\n\n\n<p class=\"wp-block-paragraph\">To manually update you can visit your WordPress Dashboard, click “Updates”, and then click “Update Now”, or you can <a href=\"https://wordpress.org/wordpress-7.0.2.zip\">download WordPress 7.0.2 from WordPress.org</a>. On sites that support automatic background updates, the update process will begin automatically.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Security updates included in this release</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The security team would like to thank the following people for responsibly <a href=\"https://hackerone.com/wordpress\">reporting</a> vulnerabilities and allowing them to be fixed in this release:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A facilitated SQL injection issue reported as a team by TF1T, dtro, and haongo </li>\n\n\n\n<li>A REST API batch-route confusion and SQL injection issue leading to Remote Code Execution reported by Adam Kues at <a href=\"https://slcyber.io\"><u>Assetnote / Searchlight Cyber</u></a></li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">For more information on this release, please visit the <a href=\"https://wordpress.org/documentation/wordpress-version/version-7-0-2/\">HelpHub site</a>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Backports</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress 6.9 is affected by both vulnerabilities. Version 6.9.5 has been released containing fixes for both.</li>\n\n\n\n<li>WordPress 6.8 is only affected by the first vulnerability. Version 6.8.6 has been released containing a fix.</li>\n\n\n\n<li>The beta release of WordPress 7.1 is affected by both vulnerabilities. Version 7.1 beta2 has been released containing fixes for both.</li>\n\n\n\n<li>Versions of WordPress prior to 6.8 are not affected.</li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">CVE and GHSA references</h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-fpp7-x2x2-2mjf\"><code>CVE-2026-60137</code> / <code>GHSA-fpp7-x2x2-2mjf</code></a></li>\n\n\n\n<li><a href=\"https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-ff9f-jf42-662q\"><code>CVE-2026-63030</code> / <code>GHSA-ff9f-jf42-662q</code></a></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">Thank you to these WordPress contributors</h2>\n\n\n\n<p class=\"wp-block-paragraph\">This release was led by <a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a> and <a href=\"https://profiles.wordpress.org/barry/\">Barry Abrahamson</a>. In addition to the security researchers mentioned above, WordPress 7.0.2 would not have been possible without the significant contributions of the following people: <a href=\"https://profiles.wordpress.org/jorbin\">Aaron Jorbin</a>, <a href=\"https://profiles.wordpress.org/xknown\">Alex Concha</a>, <a href=\"https://profiles.wordpress.org/annezazu\">annezazu</a>, <a href=\"https://profiles.wordpress.org/Barry\">Barry</a>, <a href=\"https://profiles.wordpress.org/davidbaumwald\">David Baumwald</a>, <a href=\"https://profiles.wordpress.org/ocean90\">Dominik Schilling</a>, <a href=\"https://profiles.wordpress.org/ehtis\">Ehtisham Siddiqui</a>, <a href=\"https://profiles.wordpress.org/joedolson\">Joe Dolson</a>, <a href=\"https://profiles.wordpress.org/joehoyle\">Joe Hoyle</a>, <a href=\"https://profiles.wordpress.org/johnbillion\">John Blackbourn</a>, <a href=\"https://profiles.wordpress.org/desrosj\">Jonathan Desrosiers</a>, <a href=\"https://profiles.wordpress.org/clorith\">Marius L. J.</a>, <a href=\"https://profiles.wordpress.org/Matt\">Matt Mullenweg</a>, <a href=\"https://profiles.wordpress.org/batmoo\">Mohammad Jangda</a>, <a href=\"https://profiles.wordpress.org/peterwilsoncc\">Peter Wilson</a>, <a href=\"https://profiles.wordpress.org/sergeybiryukov\">Sergey Biryukov</a>, <a href=\"https://profiles.wordpress.org/vortfu\">vortfu</a>, <a href=\"https://profiles.wordpress.org/westonruter\">Weston Ruter</a>, plus representatives from Altis, Automattic, Bluehost, Cloudflare, GoDaddy, Hostinger, and WP Engine.</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:\"Fri, 17 Jul 2026 18:45:54 +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:15:\"John Blackbourn\";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:110:\"Gutenberg Times: The post editor is going full iframe: what block developers need to know before WordPress 7.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://gutenbergtimes.com/?p=46095\";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:120:\"https://gutenbergtimes.com/the-post-editor-is-going-full-iframe-what-block-developers-need-to-know-before-wordpress-7-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:55253:\"<p class=\"wp-block-paragraph\">For years, the post editor has lived a double life. The Site Editor renders your blocks inside an iframe. The post editor — where most people actually spend their time — renders them directly in the admin page. That split ends with WordPress 7.1: <strong>the post editor canvas will always be an iframe, on every theme, no matter what <code>apiVersion</code> your blocks declare</strong>. The Gutenberg plugin has been enforcing exactly this for months. If you ship blocks, assume the iframe.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If your block never touches the global <code>document</code> or <code>window</code>, you can probably stop reading after you&#8217;ve changed <code>\"apiVersion\": 2</code> to <code>\"apiVersion\": 3</code> in <code>block.json</code>. For everyone else — and especially anyone shipping blocks that wrap third-party libraries — the iframe changes <em>where your code runs</em> versus <em>where your markup lives</em>. That gap is where things break.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Quick reference guide</strong>: <strong>Are your blocks ready?</strong></p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"An infographic showing the checks and fixes for readying custom blocks for the WordPress 7.1 iframed editor\" class=\"wp-image-46098\" height=\"652\" src=\"https://i0.wp.com/gutenbergtimes.com/wp-content/uploads/2026/07/7.1-iframe-block-check.png?resize=652%2C652&#038;ssl=1\" width=\"652\" /></figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"timeline\">The timeline, in one table</h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Release</th><th>What happens</th></tr></thead><tbody><tr><td><strong>June 21, 2021</strong></td><td>The iframed editor was <a href=\"https://make.wordpress.org/core/2021/06/29/blocks-in-an-iframed-template-editor/\">announced on make.wordpress.org</a></td></tr><tr><td><strong>WordPress 6.9</strong> (Dec 2025)</td><td>Console warning (with <code>SCRIPT_DEBUG</code>) when a block registers with <code>apiVersion</code> 2 or lower. The <code>block.json</code> schema now only validates <code>apiVersion: 3</code>.</td></tr><tr><td><strong>WordPress 7.0</strong> (Apr 2026)</td><td>The iframe decision now looks at blocks <strong>actually inserted in the post</strong>, not every registered block. All inserted blocks on v3+ → canvas is iframed. Insert a single v1/v2 block → the iframe is removed on the fly. Nothing is enforced yet.<br /></td></tr><tr><td><strong>Gutenberg 22.6+</strong></td><td>The iframe is <strong>enforced regardless of theme</strong> — this is the feedback-gathering phase.</td></tr><tr><td><strong>WordPress 7.1</strong> (Aug 19, 2026)</td><td>The iframe is <strong>enforced on every theme</strong>, regardless of <code>apiVersion</code>. The conditions are gone, not tightened.</td></tr></tbody></table></figure>\n\n\n\n<p class=\"wp-block-paragraph\">The WordPress 7.0 change is subtle but important: before 7.0, one <code>apiVersion: 2</code> block <em>registered by any active plugin</em> — even one never used in the post — kept the entire editor out of the iframe for everyone. Now only inserted blocks count. Your v3 block gets the iframe until the user inserts a legacy one, at which point the editor quietly reloads the canvas without the iframe. The companion plugin ships a <code>legacy-api-v2</code> block so you can watch this happen — insert it into an otherwise-v3 post and the iframe disappears. In 7.1, that escape hatch closes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Worth knowing, as an aside: the &#8220;every theme&#8221; decision landed in <a href=\"https://wordpress.org/news/2026/07/wordpress-7-1-beta-1/\" rel=\"noopener\" target=\"_blank\">WordPress 7.1 Beta 1</a>, and it&#8217;s deliberately being tested in public. Gutenberg merged <a href=\"https://github.com/WordPress/gutenberg/pull/74042\" rel=\"noopener\" target=\"_blank\">&#8220;Post editor: always iframe&#8221; (#74042)</a> on July 10, 2026, deleting the theme and <code>apiVersion</code> conditions outright. The 7.1 release lead signed off on that merge <a href=\"https://github.com/WordPress/gutenberg/pull/74042#issuecomment-4878384706\" rel=\"noopener\" target=\"_blank\">on the condition</a> that the team could &#8220;move to the softer approach&#8221; if Beta 1 feedback surfaced real problems — the softer approach being enforcement on block themes only, with everything else staying on the 7.0 rules. No specific mechanism is committed to; the plan is to respond to what the beta actually turns up.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Which is a reason to test harder, not to wait and see. If that rollback happens, the iframed and non-iframed editors both stay in the wild <em>longer</em> — and your block has to work in both regardless of which way it goes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s also worth noting that blocks that will break with the 7.1 changes are most likely <strong>already breaking in the Site Editor</strong>.</p>\n\n\n\n<h2 class=\"wp-block-heading\">Why the iframe is a good thing</h2>\n\n\n\n<p class=\"wp-block-paragraph\">This isn&#8217;t change for change sake. Rendering the canvas in an iframe gives the editor a real document boundary:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Admin CSS stops leaking into your content.</strong> No more <code>#wpadminbar</code>-adjacent style resets, no more admin styles subtly changing how blocks render in the editor versus the front end.</li>\n\n\n\n<li><strong>Viewport units and media queries finally work.</strong> <code>vw</code>, <code>vh</code>, and <code>@media</code> rules resolve against the canvas, not the admin page — so tablet/mobile previews and zoomed-out views actually behave like the front end.</li>\n\n\n\n<li><strong>What you see is much closer to what you get.</strong> The canvas document is built from your theme&#8217;s styles, not the admin&#8217;s.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">The issue this raises for block developers? Your editor JavaScript runs in the admin page, but your block&#8217;s DOM lives in a different document. Every assumption baked into <code>document.querySelector(...)</code> and <code>window.addEventListener(...)</code> just became wrong.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What actually breaks (and how to fix it)</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Everything below is demonstrable with the companion plugin — each pattern ships as a broken/fixed pair of blocks: <strong><a href=\"https://github.com/ryanwelcher/iframe-editor-examples\" rel=\"noopener\" target=\"_blank\">iframe-editor-examples on GitHub</a></strong>.</p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Global <code>window</code> and <code>document</code> references</h3>\n\n\n\n<p class=\"wp-block-paragraph\">The classic: a block that reads the viewport or listens for resize.</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>JavaScript</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> Broken in the iframed editor\nuseEffect( () => {\n	const update = () => setWidth( window.innerWidth );\n	update();\n	window.addEventListener( \'resize\', update );\n	return () => window.removeEventListener( \'resize\', update );\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// &#x274c; Broken in the iframed editor</span></span>\n<span class=\"line\"><span style=\"color: #DCDCAA;\">useEffect</span><span style=\"color: #D4D4D4;\">( () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">update</span><span style=\"color: #D4D4D4;\"> = () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">setWidth</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">window</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #9CDCFE;\">innerWidth</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #DCDCAA;\">update</span><span style=\"color: #D4D4D4;\">();</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">window</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">addEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'resize\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">update</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #9CDCFE;\">window</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">removeEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'resize\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">update</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}, [] );</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Editor scripts load in the admin page, so <code>window</code> is the <strong>admin</strong> window. In the iframed editor this reports the wrong width and never reacts to the canvas resizing — switch to the Tablet preview and the number doesn&#8217;t move.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The fix is to derive the document and window from your block&#8217;s own DOM element:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>JavaScript</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// <img alt=\"✅\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png\" style=\"height: 1em;\" /> Fixed — works iframed or not\nimport { useRefEffect } from \'@wordpress/compose\';\n\nconst ref = useRefEffect( ( element ) => {\n	const { defaultView } = element.ownerDocument;\n	const update = () => setWidth( defaultView.innerWidth );\n	update();\n	defaultView.addEventListener( \'resize\', update );\n	return () => defaultView.removeEventListener( \'resize\', update );\n}, [] );\n\nconst blockProps = useBlockProps( { ref } );</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// &#x2705; Fixed — works iframed or not</span></span>\n<span class=\"line\"><span style=\"color: #C586C0;\">import</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">useRefEffect</span><span style=\"color: #D4D4D4;\"> } </span><span style=\"color: #C586C0;\">from</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #CE9178;\">\'@wordpress/compose\'</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #4FC1FF;\">ref</span><span style=\"color: #D4D4D4;\"> = </span><span style=\"color: #DCDCAA;\">useRefEffect</span><span style=\"color: #D4D4D4;\">( ( </span><span style=\"color: #9CDCFE;\">element</span><span style=\"color: #D4D4D4;\"> ) </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #4FC1FF;\">defaultView</span><span style=\"color: #D4D4D4;\"> } = </span><span style=\"color: #9CDCFE;\">element</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #9CDCFE;\">ownerDocument</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">update</span><span style=\"color: #D4D4D4;\"> = () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">setWidth</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">defaultView</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #9CDCFE;\">innerWidth</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #DCDCAA;\">update</span><span style=\"color: #D4D4D4;\">();</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">defaultView</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">addEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'resize\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">update</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #9CDCFE;\">defaultView</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">removeEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'resize\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">update</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}, [] );</span></span>\n<span class=\"line\"></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #4FC1FF;\">blockProps</span><span style=\"color: #D4D4D4;\"> = </span><span style=\"color: #DCDCAA;\">useBlockProps</span><span style=\"color: #D4D4D4;\">( { </span><span style=\"color: #9CDCFE;\">ref</span><span style=\"color: #D4D4D4;\"> } );</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Two things to notice:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>element.ownerDocument</code> is whatever document the block is rendered into — the iframe&#8217;s document when iframed, the admin document when not. <code>ownerDocument.defaultView</code> is that document&#8217;s window. Code written this way is <em>context-agnostic</em>: it doesn&#8217;t care whether the iframe exists.</li>\n\n\n\n<li><code>useRefEffect</code> (from <code>@wordpress/compose</code>) instead of <code>useRef</code> + <code>useEffect</code>: it re-runs the callback when the ref changes, so if the block ever moves between documents, your listeners re-attach to the right window.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. &#8220;Close on outside click&#8221; and other document-level events</h3>\n\n\n\n<p class=\"wp-block-paragraph\">This one is my favorite because it fails <em>weirdly</em>. A dropdown that closes when you click outside, implemented the way every React tutorial teaches it:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>JavaScript</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> Broken in the iframed editor\nuseEffect( () => {\n	const closeOnOutsideClick = ( event ) => {\n		if ( ! containerRef.current.contains( event.target ) ) {\n			setIsOpen( false );\n		}\n	};\n	document.addEventListener( \'click\', closeOnOutsideClick );\n	return () => document.removeEventListener( \'click\', closeOnOutsideClick );\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// &#x274c; Broken in the iframed editor</span></span>\n<span class=\"line\"><span style=\"color: #DCDCAA;\">useEffect</span><span style=\"color: #D4D4D4;\">( () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">closeOnOutsideClick</span><span style=\"color: #D4D4D4;\"> = ( </span><span style=\"color: #9CDCFE;\">event</span><span style=\"color: #D4D4D4;\"> ) </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		</span><span style=\"color: #C586C0;\">if</span><span style=\"color: #D4D4D4;\"> ( ! </span><span style=\"color: #9CDCFE;\">containerRef</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #9CDCFE;\">current</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">contains</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">event</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #9CDCFE;\">target</span><span style=\"color: #D4D4D4;\"> ) ) {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">			</span><span style=\"color: #DCDCAA;\">setIsOpen</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #569CD6;\">false</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">		}</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	};</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">document</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">addEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'click\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">closeOnOutsideClick</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #C586C0;\">return</span><span style=\"color: #D4D4D4;\"> () </span><span style=\"color: #569CD6;\">=&gt;</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #9CDCFE;\">document</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">removeEventListener</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'click\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #9CDCFE;\">closeOnOutsideClick</span><span style=\"color: #D4D4D4;\"> );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}, [] );</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">In the iframed editor, clicks inside the canvas happen in the <strong>iframe&#8217;s</strong> document. They never bubble to the admin document, so the listener never fires. The result: click another block in the canvas and the dropdown stays open — but click the admin sidebar and it closes. Same code, same block, works perfectly in the non-iframed editor. This is the kind of bug report you&#8217;ll get from users that &#8220;can&#8217;t be reproduced&#8221; — because whoever tested it happened to have a v2 block sitting in their post, which quietly dropped the iframe and made everything work.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix: same principle, attach to <code>element.ownerDocument</code> instead of <code>document</code> (<a href=\"https://github.com/ryanwelcher/iframe-editor-examples/blob/trunk/src/click-outside-fixed/edit.js#L32\">see the plugin for the full <code>useRefEffect</code> version</a>).</p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Editor styles enqueued into the wrong document</h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re styling your block&#8217;s editor experience with <code>enqueue_block_editor_assets</code>, those styles load in the <strong>admin page</strong> — outside the iframe. They silently stop applying the moment the canvas is iframed:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>PHP</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> Loads in the admin page — never reaches the iframed canvas.\nfunction myplugin_enqueue_editor_styles() {\n	wp_enqueue_style( \'myplugin-editor\', plugins_url( \'editor.css\', __FILE__ ) );\n}\nadd_action( \'enqueue_block_editor_assets\', \'myplugin_enqueue_editor_styles\' );</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// &#x274c; Loads in the admin page — never reaches the iframed canvas.</span></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">function</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #DCDCAA;\">myplugin_enqueue_editor_styles</span><span style=\"color: #D4D4D4;\">() {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #DCDCAA;\">wp_enqueue_style</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'myplugin-editor\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #DCDCAA;\">plugins_url</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'editor.css\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #569CD6;\">__FILE__</span><span style=\"color: #D4D4D4;\"> ) );</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}</span></span>\n<span class=\"line\"><span style=\"color: #DCDCAA;\">add_action</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #CE9178;\">\'enqueue_block_editor_assets\'</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #CE9178;\">\'myplugin_enqueue_editor_styles\'</span><span style=\"color: #D4D4D4;\"> );</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">The fix is to register editor styles through <code>block.json</code>, which WordPress injects <strong>into</strong> the canvas document, iframed or not:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>JSON</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; 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	\"editorStyle\": \"file:./index.css\"\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4;\">{</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">&quot;editorStyle&quot;</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">&quot;file:./index.css&quot;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">(<code>add_editor_style()</code> also gets copied into the iframe, if you need theme-level editor styles.)</p>\n\n\n\n<p class=\"wp-block-paragraph\">The demo plugin makes this visual: the same block carries a green banner from <code>editorStyle</code> and a red banner from <code>enqueue_block_editor_assets</code>. Count the banners — two means no iframe, one means you&#8217;re iframed.</p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Stale CSS written for the leaky editor</h3>\n\n\n\n<p class=\"wp-block-paragraph\">The section above is about CSS loading into the wrong document. This one is the sneakier inverse: the stylesheet loads into the <em>right</em> document — injected straight into the canvas, exactly as intended — and still gets it wrong, because of what it was written to describe. These are the rules that quietly stop matching, or start over-matching, once the canvas becomes its own document. It&#8217;s the code that&#8217;s been sitting in themes and plugins for years, &#8220;working,&#8221; right up until the iframe is enforced.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Selectors keyed on admin body classes</strong></h4>\n\n\n\n<p class=\"wp-block-paragraph\">The most common one, and it fails exactly like the &#8220;close on outside click&#8221; bug — silently.</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> The canvas body no longer carries these classes */\n.wp-admin .my-block { padding: 2rem; }\nbody.block-editor-page .my-block__title { font-size: 2rem; }</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x274c; The canvas body no longer carries these classes */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.wp-admin</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #D7BA7D;\">.my-block</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">padding</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">2rem</span><span style=\"color: #D4D4D4;\">; }</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">body.block-editor-page</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #D7BA7D;\">.my-block__title</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">font-size</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">2rem</span><span style=\"color: #D4D4D4;\">; }</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Inside the iframe, the canvas <code>&lt;body&gt;</code> is a clean document — no <code>wp-admin</code>, no <code>block-editor-page</code>. The selector matches nothing and your editor styling just evaporates. Same block, same stylesheet, works perfectly in the non-iframed editor.</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"✅\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png\" style=\"height: 1em;\" /> Scope to the block, not the admin chrome */\n.my-block { padding: 2rem; }\n.my-block__title { font-size: 2rem; }</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x2705; Scope to the block, not the admin chrome */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-block</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">padding</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">2rem</span><span style=\"color: #D4D4D4;\">; }</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-block__title</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">font-size</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">2rem</span><span style=\"color: #D4D4D4;\">; }</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>.editor-styles-wrapper</code> <em>does</em> still wrap the canvas content inside the iframe, so <code>.editor-styles-wrapper .my-block</code> keeps working if you need genuinely editor-only styling — but the admin ancestor was almost never necessary in the first place.</p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Offsets that compensate for admin chrome</strong></h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> Subtracting the admin sidebar and adminbar from the viewport */\n.my-fullwidth { width: calc( 100vw - 160px ); } /* 160px = admin menu */\n.my-toolbar   { position: fixed; top: 32px; }   /* 32px = #wpadminbar */</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x274c; Subtracting the admin sidebar and adminbar from the viewport */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-fullwidth</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">width</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #DCDCAA;\">calc</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #B5CEA8;\">100vw</span><span style=\"color: #D4D4D4;\"> - </span><span style=\"color: #B5CEA8;\">160px</span><span style=\"color: #D4D4D4;\"> ); } </span><span style=\"color: #6A9955;\">/* 160px = admin menu */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-toolbar</span><span style=\"color: #D4D4D4;\">   { </span><span style=\"color: #9CDCFE;\">position</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">fixed</span><span style=\"color: #D4D4D4;\">; </span><span style=\"color: #9CDCFE;\">top</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">32px</span><span style=\"color: #D4D4D4;\">; }   </span><span style=\"color: #6A9955;\">/* 32px = #wpadminbar */</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">This is the flip side of the win from earlier: now that <code>100vw</code> resolves against the <em>canvas</em> instead of the admin page, there&#8217;s no sidebar to subtract — so the <code>calc()</code> overshoots, and <code>top: 32px</code> pushes your toolbar below an admin bar that doesn&#8217;t exist in this document.</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"✅\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png\" style=\"height: 1em;\" /> The canvas is the viewport now — no compensation needed */\n.my-fullwidth { width: 100vw; }\n.my-toolbar   { position: fixed; top: 0; }</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x2705; The canvas is the viewport now — no compensation needed */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-fullwidth</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">width</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">100vw</span><span style=\"color: #D4D4D4;\">; }</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-toolbar</span><span style=\"color: #D4D4D4;\">   { </span><span style=\"color: #9CDCFE;\">position</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">fixed</span><span style=\"color: #D4D4D4;\">; </span><span style=\"color: #9CDCFE;\">top</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">0</span><span style=\"color: #D4D4D4;\">; }</span></span></code></pre></div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Specificity walls built to fight leakage</strong></h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"❌\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png\" style=\"height: 1em;\" /> Cranked up to beat leaking admin styles */\n.editor-styles-wrapper .my-block p {\n	font-family: Georgia, serif !important;\n	line-height: 1.6 !important;\n	box-sizing: border-box !important;\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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x274c; Cranked up to beat leaking admin styles */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.editor-styles-wrapper</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #D7BA7D;\">.my-block</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #D7BA7D;\">p</span><span style=\"color: #D4D4D4;\"> {</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">font-family</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">Georgia</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #CE9178;\">serif</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">!important</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">line-height</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #B5CEA8;\">1.6</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">!important</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">	</span><span style=\"color: #9CDCFE;\">box-sizing</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">border-box</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #569CD6;\">!important</span><span style=\"color: #D4D4D4;\">;</span></span>\n<span class=\"line\"><span style=\"color: #D4D4D4;\">}</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">The iframe already stops admin CSS from leaking in — that&#8217;s one of the reasons it&#8217;s a good thing. These <code>!important</code>s and resets have no admin styles left to override, but they <em>do</em> now override the theme styles the iframe loads into the canvas. The result: your editor preview drifts <em>away</em> from the front end — the exact opposite of what the iframe is for.</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>CSS</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">/* <img alt=\"✅\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png\" style=\"height: 1em;\" /> Let theme styles through; set only what your block truly owns */\n.my-block p { font-family: Georgia, serif; }</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">/* &#x2705; Let theme styles through; set only what your block truly owns */</span></span>\n<span class=\"line\"><span style=\"color: #D7BA7D;\">.my-block</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #D7BA7D;\">p</span><span style=\"color: #D4D4D4;\"> { </span><span style=\"color: #9CDCFE;\">font-family</span><span style=\"color: #D4D4D4;\">: </span><span style=\"color: #CE9178;\">Georgia</span><span style=\"color: #D4D4D4;\">, </span><span style=\"color: #CE9178;\">serif</span><span style=\"color: #D4D4D4;\">; }</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Two things to notice:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The pattern is the same as the JavaScript fixes: <strong>stop describing the admin, start describing your block.</strong> A selector that names <code>.wp-admin</code>, <code>#wpadminbar</code>, or <code>.block-editor-page</code> is reaching for chrome that isn&#8217;t in the canvas document anymore.</li>\n\n\n\n<li>Most of these were <em>workarounds for problems the iframe solves.</em> Deleting them is usually the fix.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. Third-party libraries that assume one global context</h3>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest real-world hazard. Masonry layouts, sliders, lightboxes, maps — a generation of libraries was written assuming there is exactly one <code>document</code>:</p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\"><span style=\"display: flex; padding: 10px 0px 0 16px; font-size: 0.8em; width: 100%; text-align: left; background-color: #1E1E1E; font-style: italic; color: #D4D4D4;\"><span>JavaScript</span></span><span class=\"code-block-pro-copy-button\" style=\"color: #D4D4D4; display: none;\" tabindex=\"0\"><pre class=\"code-block-pro-copy-button-pre\"><textarea class=\"code-block-pro-copy-button-textarea\" readonly=\"readonly\" tabindex=\"-1\">// Inside some-legacy-lib.js\nconst targets = document.querySelectorAll( selector ); // finds nothing in the iframe</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 dark-plus\" style=\"background-color: #1E1E1E;\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955;\">// Inside some-legacy-lib.js</span></span>\n<span class=\"line\"><span style=\"color: #569CD6;\">const</span><span style=\"color: #D4D4D4;\"> </span><span style=\"color: #4FC1FF;\">targets</span><span style=\"color: #D4D4D4;\"> = </span><span style=\"color: #9CDCFE;\">document</span><span style=\"color: #D4D4D4;\">.</span><span style=\"color: #DCDCAA;\">querySelectorAll</span><span style=\"color: #D4D4D4;\">( </span><span style=\"color: #9CDCFE;\">selector</span><span style=\"color: #D4D4D4;\"> ); </span><span style=\"color: #6A9955;\">// finds nothing in the iframe</span></span></code></pre></div>\n\n\n\n<p class=\"wp-block-paragraph\">Your block calls the library, the library queries the admin document, finds zero matches, and silently does nothing. No error, no warning — the block just stops being enhanced.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Your options, in order of preference:</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pass elements, not selectors.</strong> If the library accepts an element (<code>lib.init( element )</code>), hand it the block&#8217;s element from <code>useRefEffect</code> and you&#8217;re usually fine.</li>\n\n\n\n<li><strong>Patch the library.</strong> For unmaintained dependencies, <a href=\"https://www.npmjs.com/package/patch-package\" rel=\"noopener\" target=\"_blank\"><code>patch-package</code></a> is the pragmatic answer: edit the module in <code>node_modules</code> to resolve <code>document</code>/<code>window</code> from the element (<code>node.ownerDocument</code>), run <code>npx patch-package &lt;pkg&gt;</code>, commit the patch, add a <code>postinstall</code> script. The <a href=\"https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/block-migration-for-iframe-editor-compatibility/\" rel=\"noopener\" target=\"_blank\">official migration guide</a> walks through a real patch for <code>@panzoom/panzoom</code>.</li>\n\n\n\n<li><strong>Guard and bail.</strong> If the library is loaded inside the iframe (front-end scripts are), check for it on <code>defaultView</code> before using it: <code>if ( ! defaultView.jQuery ) return;</code></li>\n</ul>\n\n\n\n<h2 class=\"wp-block-heading\">So what does <code>apiVersion: 3</code> actually do?</h2>\n\n\n\n<p class=\"wp-block-paragraph\">Less than you might think — and that&#8217;s the point. Declaring <code>\"apiVersion\": 3</code> in <code>block.json</code> doesn&#8217;t change how your block renders; it&#8217;s a <strong>signal that your block is iframe-ready</strong>. All core blocks have been on v3 since WordPress 6.3. For most blocks the migration is literally a one-line change… followed by the actual work: testing that nothing in your <code>edit</code> component (or the libraries it pulls in) touches the global <code>document</code>/<code>window</code>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And to be clear about 7.1: the iframe will be enforced there <strong>regardless</strong> of <code>apiVersion</code>. Staying on v2 doesn&#8217;t opt you out anymore — it just means you get the console warning <em>and</em> the breakage.</p>\n\n\n\n<h2 class=\"wp-block-heading\">How to test today</h2>\n\n\n\n<p class=\"wp-block-paragraph\">You don&#8217;t need to wait for 7.1. What you&#8217;re testing is that your block works in <strong>both states</strong> — iframed and not — because both will exist in the wild for a while yet.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Iframed:</strong> install the <strong>Gutenberg plugin 22.6+</strong>. It enforces the iframe regardless of theme, so this is the fastest way to live in the future. <a href=\"https://wordpress.org/news/2026/07/wordpress-7-1-beta-1/\"><strong>7.1 Beta 1</strong> </a>does the same — I&#8217;ve confirmed it forces the iframe on a classic theme, which is the merged behavior shipping in August.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Not iframed:</strong> run <strong>WordPress 7.0 without the plugin</strong> and insert a v1/v2 block alongside yours — the canvas drops the iframe on the fly. <a href=\"https://github.com/ryanwelcher/iframe-editor-examples\">The companion plugin&#8217;s <code>legacy-api-v2</code> block exists for exactly this.</a> Any theme will do: core 7.0 has no theme check in the iframe decision at all, so you don&#8217;t need to hunt down a classic theme to reproduce this.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Confirm which state you&#8217;re in:</strong> <code>element.ownerDocument !== document</code>, or look for <code>iframe[name=\"editor-canvas\"]</code> in devtools.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Site Editor</strong> has been iframed for years — if your block already behaves there, you&#8217;re most of the way home.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The companion plugin</strong> ships a <code>wp-env</code> setup, an example override file that adds Gutenberg for enforced mode (copy it to <code>.wp-env.override.json</code>), and <strong>two Playground blueprints</strong> — one per state, so you can flip between iframed and not in two tabs without installing anything.</p>\n\n\n\n<h2 class=\"wp-block-heading\">The block author&#8217;s checklist</h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Set <code>\"apiVersion\": 3</code> in every <code>block.json</code>.</li>\n\n\n\n<li>Check your editor code for <code>window.</code> and <code>document.</code> — every hit is a suspect. Replace with <code>element.ownerDocument</code> / <code>.defaultView</code> via <code>useRefEffect</code>.</li>\n\n\n\n<li>Check for <code>enqueue_block_editor_assets</code> — move canvas-affecting styles to <code>editorStyle</code> in <code>block.json</code>.</li>\n\n\n\n<li>Check your editor CSS for <code>.wp-admin</code>, <code>#wpadminbar</code>, and <code>.block-editor-page</code> , admin chrome offsets and <code>!important</code></li>\n\n\n\n<li>Audit third-party libraries: pass elements not selectors, patch what you must.</li>\n\n\n\n<li>Test both <strong>states</strong>, not both themes: iframed (Gutenberg 22.6+ active) and not iframed (no plugin, v1/v2 block inserted). </li>\n\n\n\n<li>Watch the console with <code>SCRIPT_DEBUG</code> on — the deprecation warnings tell you which registered blocks are still on v1/v2.</li>\n</ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note What&#8217;s <em>not</em> on that list:</strong> checking whether the active theme is a block theme. Core exposes that answer twice — as <code>__unstableIsBlockBasedTheme</code> in the editor settings and as <code>is_block_theme</code> on the REST themes endpoint — and there&#8217;s a shelved PR and a live debate behind it. Your block never needs to ask. <code>element.ownerDocument !== document</code> answers the only version of the question that affects you. If you&#8217;re curious what that theme check does under the hood, that&#8217;s its own story: <a href=\"https://gutenbergtimes.com/how-wordpress-decides-a-theme-is-a-block-theme/\"><strong>How WordPress decides a Theme is a &#8220;Block theme&#8221;.</strong></a></p>\n\n\n\n<p class=\"wp-block-paragraph\">Resources</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https://make.wordpress.org/core/2026/02/24/iframed-editor-changes-in-wordpress-7-0/\" rel=\"noopener\" target=\"_blank\">Iframed Editor Changes in WordPress 7.0</a> — the dev note this all builds on</li>\n\n\n\n<li><a href=\"https://github.com/WordPress/gutenberg/pull/74042\" rel=\"noopener\" target=\"_blank\">Post editor: always iframe (#74042)</a> — the merged PR that makes 7.1 always-iframed, and the discussion behind the beta-feedback plan</li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2026/06/19/roadmap-to-7-1/\" rel=\"noopener\" target=\"_blank\">Roadmap to 7.1</a> — the original block-themes-first plan, superseded by #74042</li>\n\n\n\n<li><a href=\"https://make.wordpress.org/core/2025/11/12/preparing-the-post-editor-for-full-iframe-integration/\" rel=\"noopener\" target=\"_blank\">Preparing the Post Editor for Full iframe Integration</a> — the 6.9 groundwork</li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/block-migration-for-iframe-editor-compatibility/\" rel=\"noopener\" target=\"_blank\">Migrating Blocks for iframe Editor Compatibility</a> — the official migration guide</li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/\" rel=\"noopener\" target=\"_blank\">Block API Versions</a> — what each version means</li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/block-editor/how-to-guides/enqueueing-assets-in-the-editor/\">Enqueueing editor assets</a></li>\n\n\n\n<li><a href=\"https://developer.wordpress.org/themes/core-concepts/including-assets/#editor-stylesheets\">Editor styles for themes</a></li>\n\n\n\n<li>Companion demo plugin: <a href=\"https://github.com/ryanwelcher/iframe-editor-examples\" rel=\"noopener\" target=\"_blank\">iframe-editor-examples</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:\"Fri, 17 Jul 2026 16:21: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:12:\"Ryan Welcher\";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:53:\"Open Channels FM: Who Is Actually Using the Internet?\";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=2557053\";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:59:\"https://openchannels.fm/who-is-actually-using-the-internet/\";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:168:\"A look at the impact of AI and bots on the web, emphasizing the decline of human engagement, the challenges for content creators, and the future of digital interaction.\";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, 17 Jul 2026 13:41: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: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:95:\"Open Channels FM: Open Channels FM Launches Live News Show Focused on the Open Source 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=2556978\";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://openchannels.fm/open-channels-fm-launches-live-news-show-focused-on-the-open-source-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:207:\"Open Channels FM is launching a new video news show called Open Channels News, starting July 27th. It\'s a quick, five to ten-minute program covering various open source topics, available live and on YouTube.\";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, 16 Jul 2026 12:55: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: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:53:\"Akismet: A small integration detail with a big impact\";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:28:\"http://akismet.com/?p=284827\";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://akismet.com/blog/a-small-integration-detail-with-a-big-impact/\";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:1814:\"<p class=\"wp-block-paragraph\"><a href=\"https://givewp.com\">GiveWP</a> is the most popular fundraising and donation tool on WordPress, powering over $500 million in donations. It integrates with Akismet to ensure that spammy or potentially fraudulent submissions get filtered out. Recently, some Give users saw an unusually high level of false positives on their donation forms: legitimate donation submissions that were being marked as spam.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We investigated and found that the donation forms were being sent to Akismet for checking after each step in the donation process: once after choosing an amount, again after the user entered their name, again after they entered an optional message, etc. To Akismet, this looks like sudden repeated submissions from the same user, all with similar content (better known as spam).</p>\n\n\n\n<p class=\"wp-block-paragraph\">Akismet supports rechecking content, but only if the integration includes <a href=\"https://akismet.com/developers/detailed-docs/comment-check/\">the <code>recheck_reason</code> parameter</a>. If that parameter is present, Akismet knows not to classify the repeated duplicate (or nearly duplicate) checks as part of a spam attack; however, if <code>recheck_reason</code> is omitted, this kind of consecutive similar content looks very similar to spam, and Akismet blocks it.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://github.com/impress-org/givewp/issues/8238\">We reported the root issue</a> to Liquid Web, and they quickly addressed it and released a fix in version 4.16.0. This kind of collaboration is what makes Open Source great!</p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re planning on bringing automatic integration review to more clients and platforms, so stay tuned for more tips and insights.</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, 15 Jul 2026 16: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:17:\"Christopher Finke\";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:40:\"WordPress.org blog: WordPress 7.1 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=20987\";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/07/wordpress-7-1-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:17550:\"<p class=\"wp-block-paragraph\">WordPress 7.1 Beta 1 is ready for download and testing! </p>\n\n\n\n<p class=\"wp-block-paragraph\"><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.1 Beta 1</h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can test WordPress 7.1 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>WordPress Beta Tester Plugin</strong></td><td>Install and activate the <a href=\"https://wordpress.org/plugins/wordpress-beta-tester/\" rel=\"noreferrer noopener\" target=\"_blank\">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.1-beta1.zip\">Beta 1 version (zip)</a> and install it on a WordPress website.</td></tr><tr><td><strong>Command Line (WP-CLI)</strong></td><td>Use this <a href=\"https://make.wordpress.org/cli/\" rel=\"noreferrer noopener\" target=\"_blank\">WP-CLI</a> command: <br /><code>wp core update --version=7.1-beta1</code></td></tr><tr><td><strong>WordPress Playground</strong></td><td>Use a <a href=\"https://playground.wordpress.net/?site-slug=kind-classic-mountain&amp;networking=no&amp;php=8.3&amp;wp=beta&amp;language=&amp;multisite=no\" rel=\"noopener\" target=\"_blank\">7.1 Beta 1 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.1 is <strong>August 19, 2026</strong>. The full <a href=\"https://make.wordpress.org/core/2026/07/03/wordpress-7-1-release-party-schedule/\" rel=\"noopener\" target=\"_blank\">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 – whether or not you have experience. <a href=\"https://make.wordpress.org/test/2026/07/15/help-test-wordpress-7-1/\">Details on what to test in WordPress 7.1 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/\" rel=\"noopener\" target=\"_blank\">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\" rel=\"noopener\" target=\"_blank\">via WordPress Trac</a>. You can also check your issue against this list of <a href=\"https://core.trac.wordpress.org/tickets/major\" rel=\"noopener\" target=\"_blank\">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>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 will include new features that were previously only available in the Gutenberg plugin. Learn more about Gutenberg updates since WordPress 7.0 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/2026/03/11/whats-new-in-gutenberg-22-7-11-march/\">22.7</a>, <a href=\"https://make.wordpress.org/core/2026/03/25/whats-new-in-gutenberg-22-8-25-march/\">22.8</a>, <a href=\"https://make.wordpress.org/core/2026/04/09/whats-new-in-gutenberg-22-9-8-april/\">22.9</a>, <a href=\"https://make.wordpress.org/core/2026/04/22/whats-new-in-gutenberg-23-0-22-april/\">23.0</a>, <a href=\"https://make.wordpress.org/core/2026/05/07/whats-new-in-gutenberg-23-1-07-may/\">23.1</a>, <a href=\"https://make.wordpress.org/core/2026/05/21/whats-new-in-gutenberg-23-2-21-may/\">23.2</a>, <a href=\"https://make.wordpress.org/core/2026/06/03/whats-new-in-gutenberg-23-3-03-jun/\">23.3</a>, <a href=\"https://make.wordpress.org/core/2026/06/17/whats-new-in-gutenberg-23-3-03-jun-2/\">23.4</a>, <a href=\"https://make.wordpress.org/core/2026/07/01/whats-new-in-gutenberg-23-5-july-1-2026/\">23.5</a> and 23.6.</p>\n\n\n\n<h2 class=\"wp-block-heading\">What’s new in WordPress 7.1?</h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 delivers a more complete set of styling controls, a smoother media experience, and a more personalized admin experience. Notes have evolved to add inline notes with @mentions and rich text formatting that make asynchronous feedback feel more powerful. New styling features unlock long requested features to style how blocks look across screen sizes and to style interactive states, all without writing custom CSS. Various client side media improvements means better format support, improved performance, and more resilient uploads when adding media to your site. A new inline cropping tool brings a fresh and more robust experience to editing images. Finally, the admin experience becomes easier to navigate with an ever present admin bar in the editors, improvements to the command palette, and various quality of life improvements. Underneath it all, developers get an expanding set of APIs to build on, and site owners get better support for a truly global audience.</p>\n\n\n\n<h3 class=\"wp-block-heading\">New suite of Notes features</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Notes continue to grow into a fuller collaboration experience, making asynchronous feedback between teams faster and more expressive.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Text Formatting</strong>: Notes now support inline formatting like bold, italic, code, links and adding emoji; each with a respective keyboard shortcut, so feedback reads clearly without breaking your flow.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>@mentions</strong>: Type &#8220;@&#8221; in a Note to pull up a searchable list of collaborators and tag someone directly, so feedback points at the right person without leaving the sidebar.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Leave notes anywhere</strong>: Start more than one conversation on the same block instead of folding every comment into a single thread, making it easier to track distinct pieces of feedback.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Inline notes:</strong> Leave a note on a text selection instead of on an entire block.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Show more / show less</strong>: Long notes now collapse by default with a toggle to expand them, keeping the margin tidy while you write.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Style it your way, on any screen</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 takes a major step toward built-in responsive design and interactive styling, letting you achieve looks that once required writing custom CSS.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Responsive styling</strong>: Define how a block looks at different screen sizes directly in the editor, for both Global Styles and individual blocks without the need of writing custom CSS.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Viewport breakpoint customization</strong>: Theme authors can now define their own responsive breakpoints in <code>theme.json</code>, giving more flexibility for how responsive controls behave on a given site.</p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Interactive state styling</strong>: Style how blocks respond to interaction, like a button changing color on hover or focus, using a standardized set of controls for both Global Styles and individual block instances.</p>\n\n\n\n<h3 class=\"wp-block-heading\">A smoother media experience</h3>\n\n\n\n<p class=\"wp-block-paragraph\">Uploading, editing, and browsing media keeps getting more capable and more reliable.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Client-side media processing</strong>: Image and media processing moves into the browser, now with broader format support that includes HEIC (the default format for iPhone photos), UltraHDR, AVIF and WebP support built in, plus GIF-to-video conversion for lighter, more efficient files. Uploads are also more resilient, with a progress indicator and automatic retries if your data connectivity drops off.</li>\n\n\n\n<li><strong>New Media Editor Modal</strong>: A dedicated modal for editing images replaces the inline cropping tool, bringing cropping, rotation, and metadata editing together in one streamlined workflow.</li>\n\n\n\n<li><strong>Smarter galleries</strong>: Gallery blocks can automatically pull in and sort media already attached to the current post, cutting down on manual set-up.</li>\n\n\n\n<li><strong>View attached images:</strong> After you upload images to a post, the inserter will automatically surface them in a new Attached images section to make it easier to find relevant images.</li>\n\n\n\n<li><strong>Infinite scrolling by default</strong>: The Media Library grid view now loads additional items automatically as you scroll, rather than requiring a click on &#8220;Load more&#8221; especially handy for sites that handle large media libraries. This can be disabled under your user profile.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">A more personal, more navigable admin</h3>\n\n\n\n<p class=\"wp-block-paragraph\">These meaningful upgrades make the WordPress admin easier to move around in and more consistent with how you like to work.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Persistent toolbar (Omnibar)</strong>: The admin toolbar now travels with you into the Site Editor and Block Editor, with a series of polish improvements throughout.</li>\n\n\n\n<li><strong>Command palette improvements</strong>: Moving through the dashboard and editor with the command palette <code>(Ctrl/Cmd+K)</code> is more refined to make finding what you need even faster! Now results are grouped into <em>Recent, matching and Suggestions</em> sections instead of one flat list.</li>\n\n\n\n<li><strong>Admin color scheme in the Site Editor</strong>: The Site Editor now reflects your chosen admin color scheme instead of always using a fixed background.</li>\n\n\n\n<li><strong>DataViews and DataForms iterations</strong>: Continued refinement of the components behind managing lists of posts, pages, patterns, and templates, alongside the forms used to edit them.</li>\n\n\n\n<li><strong>Excerpts in the Posts list</strong>: The Posts list view now shows a short excerpt for each entry, making it easier to identify the post you&#8217;re looking for without opening it.</li>\n\n\n\n<li><strong>Visual revisions</strong>: This release adds a picker activity layout for browsing history in more detail, clearly labeled autosaves in the timeline, and an autosave notice that opens straight into the visual revisions view. Global Styles revisions get a small polish too, swapping the <em>active</em> style&#8217;s text label for a badge.</li>\n\n\n\n<li><strong>A dedicated Identity section</strong>: Site identity settings like your title, tagline, and icon are now live in their own clearly labeled section of the Site Editor, making them easier to find and update.</li>\n\n\n\n<li><strong>On This Day Widget</strong>: A new widget resurfaces what you published on this date in past years, right on your dashboard. A small nudge to look back on what you&#8217;ve written, and a reason to write something new today.</li>\n\n\n\n<li><strong>Allow Changing Comment Parent:</strong> Fixing a misthreaded comment used to mean editing the database directly. WordPress 7.1 adds an editable &#8220;In reply to&#8221; control to the Edit Comment screen, letting you pick a new parent from a dropdown of the post&#8217;s other comments. It&#8217;s scoped to the same post, so this is about untangling threads, not moving comments across posts.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">New blocks and block-level enhancements</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 release brings a handful of block refinements that give more control with fewer steps.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Playlist Block:</strong> A new block for adding a collection of audio files to a post or page, with an optional waveform visualization that shows the audio&#8217;s shape as it plays; a more visual way to present podcasts, music, or audio content without using any third-party plugins.</li>\n\n\n\n<li><strong>Tabs Block:</strong> A new block for organizing content into clickable tabbed panels instead of showing everything at once. It&#8217;s a cleaner way to present related content without overwhelming the page.</li>\n\n\n\n<li><strong>Background gradients</strong>: Background gradients and background images no longer conflict. The gradient used to get silently overridden by the image, but now they combine and display together. This fix extends beyond the Group block to Verse, Accordion, Pullquote, Post Content, and Quote block.</li>\n\n\n\n<li><strong>HTML block editable content</strong>: The HTML block now supports editable nested blocks. This is great to use for AI-generated content, which often arrives as raw HTML.</li>\n\n\n\n<li><strong>&#8220;Mark as decorative&#8221; for images</strong>: A new toggle on the Image block lets you hide purely decorative images from screen readers for a better accessibility experience.</li>\n\n\n\n<li><strong>Smarter shortcode handling</strong>: Pasting or converting a shortcode into the Embed block now creates a proper Embed block instead of leaving raw shortcode text behind, and the Shortcode block gains block-specific transforms of its own.</li>\n</ul>\n\n\n\n<h3 class=\"wp-block-heading\">Built for a global audience</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 continues work to make Core reflect the full diversity of its worldwide community, with progress toward supporting Unicode email addresses so usernames, slugs, and email addresses can better represent users everywhere.</p>\n\n\n\n<h3 class=\"wp-block-heading\">Built for developers</h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress 7.1 continues to expand the foundation developers build on.</p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Abilities API expansion</strong>: Continued refinement of the Abilities API with improved querying, filtering, and input validation, giving developers and AI tooling a more reliable foundation to build on.</li>\n\n\n\n<li><strong>Block Bindings for list items</strong>: Block Bindings now extend to List Item, making it possible to connect more block content to dynamic data sources without custom code.</li>\n\n\n\n<li><strong>Custom icon registration</strong>: New functions let plugin and theme authors register their own icons for the Icons block for use throughout the block editor.</li>\n\n\n\n<li><strong>Enforced iframed editor</strong>: The post editor now always runs inside an iframe, isolating the editing canvas from admin styles for more predictable rendering. Blocks using Block API v2 or lower should be updated to v3 for compatibility.</li>\n\n\n\n<li><strong>wordpress/theme stabilization</strong>: Introduces design tokens and a stable React ThemeProvider to provide a more consistent, customizable foundation for WordPress admin interfaces.</li>\n\n\n\n<li><strong>Connectors authentication improvements</strong>: The Connectors screen now also supports username and application-password login &#8211; a more familiar way to connect plugins and services. This release also closes a security gap where browsers could auto-suggest saved credentials into the API key field.</li>\n</ul>\n\n\n\n<p class=\"wp-block-paragraph\">With so much in progress for WordPress 7.1 Beta 1, this is still only the beginning; expect continued refinement with each Beta and RC release ahead of the final release on <strong>August 19, 2026</strong>.</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\">Seeds of Seven-One,<br />Notes, styles, media, and tools—<br />Test, and watch them bloom.</p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to </em><a class=\"mention\" href=\"https://profiles.wordpress.org/benjamin_zekavica/\"><span class=\"mentions-prefix\">@</span>benjamin_zekavica</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/amykamala/\"><span class=\"mentions-prefix\">@</span>amykamala</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/wildworks/\"><span class=\"mentions-prefix\">@</span>wildworks</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/adamsilverstein/\"><span class=\"mentions-prefix\">@</span>adamsilverstein</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/fushar/\"><span class=\"mentions-prefix\">@</span>fushar</a>, <a class=\"mention\" href=\"https://profiles.wordpress.org/jorgefilipecosta/\"><span class=\"mentions-prefix\">@</span>jorgefilipecosta</a><em>, <a class=\"mention\" href=\"https://profiles.wordpress.org/joedolson/\"><span class=\"mentions-prefix\">@</span>joedolson</a> for proofreading and review.</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:\"Wed, 15 Jul 2026 15:53:33 +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:11:\"Krupa Nanda\";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:77:\"Open Channels FM: How AI Tools Are Transforming Everyday Web Design Practices\";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=2556905\";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:84:\"https://openchannels.fm/how-ai-tools-are-transforming-everyday-web-design-practices/\";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:200:\"In this episode, Bob and Cami discuss how AI is reshaping web design, offering tips on using AI tools effectively, educating clients, and adapting workflows for better efficiency in the digital space.\";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, 15 Jul 2026 14:45: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: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:113:\"WPTavern: #225 – Milan Petrović on the Risks of Legacy PHP in WordPress and Why Upgrading Matters for Security\";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=206447\";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:126:\"https://wptavern.com/podcast/225-milan-petrovic-on-the-risks-of-legacy-php-in-wordpress-and-why-upgrading-matters-for-security\";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:43219:\"<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, the risks of legacy PHP in WordPress and why upgrading matters for security.</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. 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 Milan Petrović. Milan has been deeply immersed in the WordPress ecosystem since 2007, developing an array of plugins, especially for expanding bbPress forums, and running his own company, creating plugins before joining the Freemius team as a full stack developer. With nearly two decades of hand-on experience, Milan has witnessed firsthand the evolution of both the WordPress and PHP landscapes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Many WordPress users may be only partially aware of PHP. Perhaps they&#8217;ve noticed version numbers in their hosting panel, but few of the millions of WordPress users understand the real impact that PHP versions have on the security and performance of their websites. Milan is here to shine a light on why embracing newer versions like PHP eight isn&#8217;t just good practise, but a crucial step for security and efficiency.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Milan begins by recounting his journey through WordPress development. The conversation gets into the heart of his recent WordCamp Europe presentation, which tackles how legacy PHP code exposes sites to thousands of open bugs and vulnerabilities. And why relying on old versions is, as he describes, an active invitation for automated exploitation.</p>\n\n\n\n<p class=\"wp-block-paragraph\">The discussion explores the contrast between running legacy code, and using the native shields of modern PHP, and highlights how PHP 8 not only closes security holes, but also delivers major performance boosts, reducing memory usage, and accelerating speed.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re wondering why you should care about the PHP version your site is running on, or you&#8217;re a developer interested in practical ways to harden your code, Milan unpacks both the existential risks of outdated PHP, and the step-by-step benefits for hosts, agencies, and plug-in developers alike.</p>\n\n\n\n<p class=\"wp-block-paragraph\">He introduces his Vulnerability Lab plugin, designed for developers to see firsthand how code exploits play out differently across PHP versions, and makes the case that modernising can happen gradually, one update, one plugin at a time.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve ever questioned how your hosting choice, or plugin stack, could affect your site&#8217;s future. Or you&#8217;re ready to take the first steps towards building more secure and future proof WordPress products, 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 Milan Petrović.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I am joined on the podcast by Milan Petrović. Hello Milan.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:03:58] <strong>Milan Petrović:</strong> Hello Nathan. Thank you for having me here.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:04:00] <strong>Nathan Wrigley:</strong> You are very welcome. We&#8217;re in a beautiful, beautiful media room at WordCamp Europe. And I know that you have already done your presentation because we just had a little chat about the fact that you&#8217;ve done it and it went well and all of that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Do you want to tell us a little bit about you and your background working with code and developing and security and all of that kind of stuff? And then we&#8217;ll talk about your actual presentation and how it went.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:04:25] <strong>Milan Petrović:</strong> So I started with WordPress almost 20 years ago, so way back in 2007. And I created a lot of plugins for WordPress, and I especially have a lot of plugins for bbPress for expanding forums. Yeah, people still use forums these days. So that was, I really like bbPress and all the stuff I did with that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I have been working as a freelancer for a lot of years. I have my own company that was doing plugins, it&#8217;s called Dev4Press. But in 2024, I joined the amazing team at Freemius. So for almost two years I am a full stack developer at Freemius. And that was a really nice change of pace for me and the work I usually do before that. So yeah, that&#8217;s a short of it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:05:13] <strong>Nathan Wrigley:</strong> Yeah. That&#8217;s great. Thank you. And so the presentation that you did that is now over, goes like this. I&#8217;m going to read the entire blurb because it&#8217;s short enough to read, and it says, secure by design, hardening plugins with PHP 8.x. In the WordPress ecosystem, we&#8217;re often forced to choose between supporting the lowest common denominator of hosting and implementing modern security. But in 2026, writing legacy PHP 7 code isn&#8217;t just a bad habit, it&#8217;s an active invitation for automated exploitation. It&#8217;s time to stop playing whack-a-mole with sanitisation, and start building products that are secure by design. This talk isn&#8217;t just another slide deck on security tips. Through comparisons of a Vulnerability Lab plugin, you will see how common exploits like authentication bypass, and server side request forgery succeed on legacy code, only to be neutralised by the native shields of the latest PHP. You learn how to leverage the modern PHP patterns to ensure your plugins are resilient to a wide range of exploits.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Now into the show notes I will put Milan&#8217;s wordpress.tv presentation so that you can go and watch the entirety of it. I guess basically if at any point you get confused, that would be a good idea, pause this podcast and go and check that out. But, how did it go? How well received was it?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:06:33] <strong>Milan Petrović:</strong> For me personally, I&#8217;m very satisfied with how how it went. I don&#8217;t know, it&#8217;s a bit overwhelming to be honest, but I am very satisfied and I got a lot of questions after the talk. I met a lot of people that liked what I had to say. And I think it&#8217;s good feedback to have, for something that is more technical like this was.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:06:52] <strong>Nathan Wrigley:</strong> Well touching on the fact that it&#8217;s more technical, I have to confess that I think you are going to have to shepherd me through this, because a lot of the content that you I think probably got stuck into is beyond my pay grade. But hopefully we&#8217;ll get through it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Now at WordCamp Europe, where we are now, I don&#8217;t know what the ratio is, but I&#8217;m guessing that a significant proportion of the people out there are not developers. They kind of know that PHP is a thing. They realise that WordPress is built on that, but they don&#8217;t really have an understanding.</p>\n\n\n\n<p class=\"wp-block-paragraph\">They&#8217;ve probably heard of PHP 7. They&#8217;ve probably heard of PHP 8, because somewhere in a control panel that was shown to them. But maybe there&#8217;s not much of an understanding of the fact that it gets better over time. It gets secure over time. I think there&#8217;s probably a notion of, well, my website works. Why do I need to change anything?</p>\n\n\n\n<p class=\"wp-block-paragraph\">So let&#8217;s get into that. What were you talking about in your presentation? What&#8217;s changed in the landscape of PHP more recently that you brought to the fore that you shared with your audience?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:07:51] <strong>Milan Petrović:</strong> Yeah, I think that PHP 8 was a big milestone for a lot of things. And I&#8217;m not sure, but I don&#8217;t think that the wider communities are kind of aware about the impact of the PHP, or the server environment in general, on how the websites work and how secure they are. Maybe the WordPress in itself needs to spread more awareness about that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Because right now we get a notice in the dashboard that maybe the PHP needs to be updated. But for a lot of website users, that can be too much and too little information at the same time, because they may be not aware of how to do things on their hosting site.</p>\n\n\n\n<p class=\"wp-block-paragraph\">We need to spread more awareness about how important the changes in the code are when it comes to the newer PHP versions, and what they can do to improve the security. And how developers should be starting to use more of those new features and the new things that PHP provides on a language level nowadays.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:08:49] <strong>Nathan Wrigley:</strong> WordPress has got this real legacy, I suppose is the right word, of supporting legacy code. So WordPress itself is supported way, way, way back. You can keep using versions of WordPress, which are many, many, many years old. And I wonder what your stance is in terms of PHP, whether or not WordPress runs versions of PHP which are far too old, in your opinion.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So in other words, should WordPress have a policy of, I don&#8217;t know, 8.x only? Or is 7 okay. And I don&#8217;t know what other CMS platforms, you know, Drupal, Joomla as was. I don&#8217;t know what they do, I don&#8217;t know what their posture is.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:09:32] <strong>Milan Petrović:</strong> I think that one of the most important decisions that, it was done with WordPress early on, is that backwards compatibility, because it opened the doors for a wider adoption. Because you don&#8217;t need to change server every year, or you don&#8217;t need to upgrade your software that often. And that helped a lot of hosting companies to provide WordPress hosting very cheaply, because they didn&#8217;t have to have the latest PHP, they didn&#8217;t have to invest much more money into all that. So WordPress got a lot of adoption from backwards compatibility policies.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But in the same time, that also proved a bit of a problem. Because even the WordPress Core code is kind of stuck because of that policy of backwards compatibility. And it&#8217;s not only compatibility with old versions of WordPress, but the old versions of PHP. And we are running now maybe six years behind end of life PHP versions. Because PHP 7.4 end of life was four and a half years ago. And we still support it in the Core.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:10:33] <strong>Nathan Wrigley:</strong> Yeah, I guess it&#8217;s a nice thing to support it. And it, as you described, it was a great way of onboarding the millions of people that came along. But things have moved on.</p>\n\n\n\n<p class=\"wp-block-paragraph\">What would be some of the top level items? And I&#8217;m inviting you to open the scary book and sort of give out the worst case scenarios basically of running legacy code. So really, go to town, frighten us all. What are some of the horrors that await if you&#8217;re quite willing to, as a hosting company, support seven point whatever or beyond, six or five, or dare I say it, four, who knows? What are some of the terrible things that await us?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:11:08] <strong>Milan Petrović:</strong> To be honest, when I was researching some of the statistics and things like that, I was kind of scared when I saw that there are 3 or 4,000 open bug reports for PHP 7 and PHP 5, which are still in use today, and there are WordPress websites running on both of them in the millions. And there are 3 or 4,000 open and confirmed bags that are never going to be fixed. Never. So PHP 7 has thousands of bugs, and I&#8217;m sure that not everything security related, but a big chunk of those bags are related to security.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And there are open exploits that run on the PHP level. They don&#8217;t care really about if you are using WordPress or using something else. It&#8217;s more like a exploit on the level of a, on a server side that can be quite scary because you, even the technical people are not really sure what are all those bugs. Who is going to go through 3,000 or 4,000 bug reports?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:12:05] <strong>Nathan Wrigley:</strong> Yeah, so just to sort of describe that, the fact that there is no more updates to the 7 branch of PHP means that all of those bugs which are publicly available, anybody can go and read great detail about what they are. Well that then means that any hacker can do that, and probably did like a dozen years ago. And so really you are painting a picture there of you are asking for trouble.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:12:30] <strong>Milan Petrović:</strong> There are hosting companies that maybe do things a bit differently because you don&#8217;t need to run PHP as it was created. You can build your own version of PHP. You can patch bugs on your own. And a lot of hosting companies are doing that. But in the same time, that also poses a problem. You are going to run WordPress in your own plugins on a platform that is not actually officially PHP supported. It can have some different quirks that make your code run a bit differently.</p>\n\n\n\n<p class=\"wp-block-paragraph\">A while ago we had the Facebook running their own PHP build, that was quite different from the public PHP. But they used it, and other people started using it. So I don&#8217;t know. Still I think that the official PHP is the one you should be on because you never know what other issues. Even when hosting company patches the PHP they&#8217;re using, maybe they&#8217;re opening doors to something else that is not quite documented on that level.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I think that the best policies, I don&#8217;t expect for WordPress to adopt the latest PHP or only supported PHP versions, but to kind of move quicker on the adoption of the newest version. So maybe we should be quicker to adopt PHP 8.0 or 8.1 is a next minimal required version for WordPress.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:13:50] <strong>Nathan Wrigley:</strong> When you say you don&#8217;t expect WordPress to do it, is that simply because it doesn&#8217;t have a history of doing it? Is there a technical reason why WordPress could not keep up with the latest version? I know we&#8217;ve got this plugin architecture where there&#8217;s thousands and thousands of developers who are all doing their own thing, and there&#8217;s all of that. Is there any technical reason why WordPress couldn&#8217;t be on the cutting edge, most up-to-date, latest version?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:14:15] <strong>Milan Petrović:</strong> There are two factors in all that. First one is you can declare, PHP 8 is the minimal version we support. We don&#8217;t support PHP 7.4 anymore. And that means that you don&#8217;t need to make any changes in WordPress at that point. You can declare it because WordPress is compatible with all PHP versions. It works on 8.0 and 8.5. That&#8217;s no problem. But say that branch 7 is no longer supported, you&#8217;re kind of pushing other developers and hosting companies to improve their support for newer versions.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And you don&#8217;t need to make immediate changes to WordPress. But at that point, you are open to modernise the code because now you can have more stricter typing across the board. There are some strict typing things in older PHP versions, but with 8.0, you can do all of that. And it doesn&#8217;t have to be a process that is done immediately. It can be done gradually. You can update parts of the WordPress Core over time. And it&#8217;ll take a few years, to get up to date, but at least you are closing doors to some older versions of PHP, and you are pushing developers as well for plugins to have that policy.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Right now, each developer can have their own plugins supporting any version of PHP you want. For my plugins, I have policy of 8.0 as a minimal version since this year. And, I&#8217;m updating the code as I go along. I don&#8217;t do it, it&#8217;s impossible to do it all at once. And for WordPress, it&#8217;s going to be even worse to make it all up to date. But declaring PHP 8 is a minimal required version, would be a great step in the right direction for wider adoption.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:15:51] <strong>Nathan Wrigley:</strong> Yeah, I think the problem is simply one of the user base, isn&#8217;t it? There&#8217;s just millions of people, thousands of developers all doing their own thing. And casting 8.x, 8.0 and above as the new minimum, there&#8217;s going to be a moment where some things do go wrong.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So that calendar plugin that you&#8217;ve been using for ages, which just works. And sure, you&#8217;ve never really received any updates from the developer, but it just works. Everybody&#8217;s booking on my calendar and we are all good. And then suddenly PHP 8 is required and it turns out the calendar plugin now no longer works.</p>\n\n\n\n<p class=\"wp-block-paragraph\">You can imagine those kind of stories a million times over coming to the fore. But equally, we got to move on. There&#8217;s no way of, you know, because we can&#8217;t in 10 years still have sites on 7.4.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:16:43] <strong>Milan Petrović:</strong> We have sites on five point something. I recently checked the official WordPress tracking. 7.4 is on 20% even now. So we are far away from WordPress ditching the 7 branch. And I think there are still few percent of PHP 5 in all that so.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:17:01] <strong>Nathan Wrigley:</strong> Yes, I regularly look at the, it&#8217;s like a little donut chart, isn&#8217;t it? That is often produced and you gradually see the eight point x whatever section of the pie getting bigger as they produce the next survey. But you&#8217;re right, it&#8217;s still a significant chunk that&#8217;s on 7 and below.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And whilst when I look at that chart, it doesn&#8217;t really bring any alarm bells to the fore, I just think, oh, that&#8217;s a shame. But now that you are presenting this talk, and giving me this information, I realise that that attack surface is worse.</p>\n\n\n\n<p class=\"wp-block-paragraph\">When you gave that talk, who is your target audience? Were you directly sort of aiming at the hosting companies who presumably can do a lot of work very quickly? You know, they could take a million people onto 8 with a little bit of development work and on the back end of their platform. Or are you really encouraging the general WordPress user, like me, to take a bit more interest and make sure that I am going into the cPanel or whatever it is and updating myself? Or is it a bit of both?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:17:59] <strong>Milan Petrović:</strong> For everyone actually. It&#8217;s for developers to be more aware of what they can gain with the new PHP versions. It&#8217;s for hosting companies. Because it&#8217;s not only about security when it comes to the newer PHP. The PHP is faster and faster. So each new version gets you 5 or 10% more performance without doing anything. So PHP 8.5 is more than 50% faster than PHP 7.4. So that&#8217;s a significant update.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I have even, one slide was showing how much less memory PHP 8.5 used to run exactly the same piece of code. So it&#8217;s pretty wild to see that hosting companies are maybe the biggest factor in all this. They will gain a lot more because they&#8217;re going to free a lot of resources to run more websites because PHP is going to use less memory and it&#8217;s going to be faster.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So I understand they need to invest a lot of money to do all that. But, I don&#8217;t know, I think that gains from that are very significant, on that level alone.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:18:57] <strong>Nathan Wrigley:</strong> Yeah, so you described there are really compelling scenario. You know, it&#8217;s quicker, it uses less memory, you&#8217;ll save money. I mean what else do you need? You&#8217;ve just presented the entire argument.</p>\n\n\n\n<p class=\"wp-block-paragraph\">However, it hasn&#8217;t happened. So technically speaking, why do you think it hasn&#8217;t happened? Is there an acquisition of new knowledge that is difficult to take in? Is it that simply you would have to, I don&#8217;t know, retrain your staff? How do you understand that it hasn&#8217;t happened? What are the reasons people are digging their heels in and not making these updates?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:19:25] <strong>Milan Petrović:</strong> I kind of make the group of two or three types of hosting companies. One, and that&#8217;s usually more expensive managed hosting solutions. They are forcing the updates. They&#8217;re not maybe on the latest version, but they are forcing their users to use at least three or four versions of PHP back. So maybe 8.2 or 8.3, which is a great step in the right direction.</p>\n\n\n\n<p class=\"wp-block-paragraph\">There is also a problem of support. If something starts breaking, they&#8217;re going to be the first one to be asked about that, because they made the change to the server. So why now website that was working yesterday is no longer working today because of some change made on a hosting level. So there are a lot of factors to play into that adoption.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But on the other hand, there are a lot of developers that have moved on with supporting PHP 8. A lot of plugins are very much updated and, especially popular plugins. They invested a lot of time to do the update. It&#8217;s getting easier to support it. But on the other hand, you have very old websites that are simply cannot move without proper testing, without updating the plugins. And there are cases when you cannot simply update one plugin because something else may break, or you made some changes that will make some other thing break. So it&#8217;s a big puzzle that is definitely not easy to solve, but maybe we should start some work on that as a community to do it, and to move people along.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I don&#8217;t want to say force the change, but make people aware of the benefits. Make people aware of the risks if they continue to run the old and outdated software. And the same goes for not updating plugins, not updating WordPress. No matter how much work is done in that regard, there are still most likely some exploits on a WordPress level for very old versions that at some point someone is going to find out about and exploit.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:21:16] <strong>Nathan Wrigley:</strong> I mean I guess the motto of WordPress was democratised publishing, which means basically make it available to everybody. No matter your level of expertise, make it available to everybody. And I&#8217;m sure that if you were to grab the CEO of any hosting company and say, I can save you money, I can save you resources, and all of those things that you outlined earlier, they would, yeah, we know, we know. But we&#8217;ve got thousands of non-technical people using WordPress.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I kind of have this analogy in my head, and it goes a bit like this. Several years ago, I bought a bike. And it sits in my garage and there is my bike. And I expect my bike to work tomorrow in the same way that it did four years ago. And in 10 years, I expect my bike to work. I don&#8217;t expect there to be an update to wheels or gears or the saddle. It doesn&#8217;t need an update. It&#8217;s just a bike. And I need my bike to be a bike and nothing more.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And I get the impression that many people treat their WordPress website as the same thing. This sort of static commodity that, sure enough, they pay a monthly fee for it, but it&#8217;s this website. It&#8217;s a thing, and it doesn&#8217;t need changing. And so what I&#8217;m trying to say is, I&#8217;m fairly sure that the hosting companies are met with that an awful lot. The customers who just, it&#8217;s a bike, it&#8217;s a website. Do you know what I mean?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:22:37] <strong>Milan Petrović:</strong> Yeah, but you need to maintain your bike. If you don&#8217;t do it, it&#8217;s going to, your belt is going to rust, your wheels are going to be deflated or whatever. A lot of things can happen with it if you don&#8217;t maintain it. So, we don&#8217;t need to upgrade everything all at once, but we can start from someplace. We can do it gradually. But still, WordPress needs to be the platform that leads the charging that, because it&#8217;s going to force other developers to do it. It&#8217;s going to force hosting companies to start doing it. And it&#8217;s not a big jump on moving just that one version, but it&#8217;s going to help to move things along faster. Let&#8217;s see how it goes in the next few years. But I really don&#8217;t expect for WordPress to drop 7.4 for at least a year or two, maybe even more.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:23:24] <strong>Nathan Wrigley:</strong> I loved your rebuttal of my bike analogy there. That was perfect. That&#8217;s exactly right. The bike will rust, the wheels will be deflated and all of that, yeah. So we need to drag the WordPress users along.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, in your presentation, you mentioned something that I have never used, the Vulnerability Lab plugin, which you used to demonstrate the attack. Can you just tell us a little bit about that? Because I&#8217;d be curious to follow that up, and maybe some people listening to this would too.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:23:47] <strong>Milan Petrović:</strong> I started it for, created for this talk specifically to add few examples and to run the code that is going to show those things if you run the plugin on the old version and the new version of PHP. And I do plan to expand on it because there are a lot more PHP security elements that can be demonstrated in that way.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So it can show you, you have like a, in many cases the same code, but if you run it on one platform, you&#8217;re going to get one result. And if you run it on the newer one, you will get something different. So it&#8217;s useful to show, and some of those changes are quite small, those attributes that you can add to the code are very, very small, but they can really help you to improve security of your plugin.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And there are more complex security measures that can be implemented, but the format of the talk wasn&#8217;t really suitable to mention everything. But this was like something to get you started on the path of discovering what else PHP 8 can offer, when it comes to improving the security of the plugins and what possible exploits and vulnerabilities are there.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I try to use some obvious things that are very easy to spot. And I&#8217;m sure I did made some of those errors myself in the past. So some of those examples are something that I dealt with when I was upgrading my code. So I&#8217;m sure that a lot of people can see similar problems in their own code, and similar kind of solutions that can help them to overcome those and to make them much more resilient in the future.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:25:17] <strong>Nathan Wrigley:</strong> So is your plugin designed primarily, would you say for developers in mind, or is it something that just a typical end user may get some mileage out of?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:25:26] <strong>Milan Petrović:</strong> No, it&#8217;s more for developers that they can see, they can run that code and see how it behaves on the old version and the new version to demonstrate some of those things. And I will definitely expand it to include more examples in the future. Even for myself to like a document, what can happen if you run something in the old version, and the new version?</p>\n\n\n\n<p class=\"wp-block-paragraph\">I had some suggestions coming to me like, maybe like a pattern library that is going to show what is the pattern that we use with old PHP and how to improve it with a new one, and document which version of PHP is going to support it, and how it&#8217;s going to improve the code.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:01] <strong>Nathan Wrigley:</strong> So is the idea then that you would instal it on various different, let&#8217;s say that you&#8217;ve got a live site and you&#8217;ve got, I don&#8217;t know, a development site and another development site, is that you would put it on each of those, different PHP versions, and just sort of compare and contrast what.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:16] <strong>Milan Petrović:</strong> Yeah, that can be used.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:17] <strong>Nathan Wrigley:</strong> Yeah, in that way. And what&#8217;s the reporting that you get? Is it kind of error logs, you know, that only a developer would be able to understand, or is it in plain language that somebody like me could understand?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:26:26] <strong>Milan Petrović:</strong> Right now it&#8217;s a bit technical because if you run a certain part of the code, some of those elements do have a visual component in the admin section. You will see, one of the examples, if it&#8217;s run on PHP 7.4, it&#8217;s going to result in a fatal error for sure, depending on the server settings. And if you run it on the new version, you will get a full code running and executing as expected.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So it&#8217;s a bit of a development thing that developers can use themselves to show maybe to potential clients or to website owners what is going to happen if they continue to run the outdated versions of the PHP. So it&#8217;s not just, yeah, the PHP 7.4 is bad, but here it is, why it is bad actually.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:27:12] <strong>Nathan Wrigley:</strong> Okay, that&#8217;s a really interesting use case, isn&#8217;t it? So if I&#8217;m an agency owner and I&#8217;ve got, I don&#8217;t know, a client over here who is absolutely wedded to this plugin, this calendar plugin say, and we know that the development of that plugin has ended years ago, then trying to persuade that client to find something new, or have something new built is difficult.</p>\n\n\n\n<p class=\"wp-block-paragraph\">But with the capabilities of the plugin that you&#8217;ve created, you&#8217;ll be able to show in a sort of readable human way, okay, right. That&#8217;s all very well, but we&#8217;ve got to get onto PHP 8.0. And when we do that, this is going to happen.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So that&#8217;s actually quite a useful tool for agencies to be able to dangle things in front of the noses of their clients. Potentially, I don&#8217;t know, get some new work out of it as well, because there&#8217;s this extra work that needs to be done to bring it up to the modern standards.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:28:01] <strong>Milan Petrović:</strong> Yes. And one example especially demonstrates not only security, it demonstrates the performance. It shows you how much memory that piece of code is using on old version. Almost half the memory is going to be used less with a new version. So that&#8217;s very on the nose demonstration on security, and the performance in the same time. So things like that can help. And I will definitely try to invest more time in showing more examples and anyone can contribute.</p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s a plugin available on GitHub, so any contributions in that regard are welcome. And we can maybe all work to create like a list of patterns that are something that a lot of people can use, and show different people how the PHP can help them move along.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And again, I don&#8217;t want to sound like we don&#8217;t need whatever WordPress is doing. We still need to use all the security enhancements that WordPress has built in the Core. Escaping, sanitisation. All that is still very important because you cannot solve everything by upgrading PHP and upgrading your code to use some of the PHP features. There are still a lot of security elements in WordPress itself that are very important and should not be replaced, or removed, from the code. There are patterns that are crucial to ensuring the security is on a top level. So combination of what WordPress already has, plus everything we get with the newer PHP is something that we should strive in the future, and to make things better.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And it&#8217;s not that complicated to start with the process. You can start upgrading small things. You can start with stricter typing. You can start with very small changes, and then gradually you can add those new attributes. You can replace some of the functions that you may be used with old version of PHP, but there is something better in the new version. So that&#8217;s something that everyone can do. Do a bit at a time so not everything at once. Spend time and make some gradual upgrades, and that&#8217;s going to help moving along.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:29:57] <strong>Nathan Wrigley:</strong> You are obviously here to talk about where PHP meets WordPress, but presumably you, yourself are gaining intel from the PHP community. Is there a resource, like a central PHP resource that you would direct people to, or would you rather steer them towards kind of WordPress resources? The things that people are doing in the WordPress space and the hosting space. There&#8217;s not really a question there, but it&#8217;s more where do you find your information? Where&#8217;s the most reliable place?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:30:25] <strong>Milan Petrović:</strong> You need to check everything. PHP website is a really good resource to find the information about what&#8217;s coming in the next version of PHP, because the preparations take up to a year to release a new version of PHP. So they&#8217;re now on a cycle that every December we get a new feature version. So in December this year, there is going to be PHP 8.6. And you already know most of the things that are coming to that version. You have the detailed list of changes for every PHP version. And that&#8217;s something that any developer should look at, and to see maybe something that will drive them to upgrade.</p>\n\n\n\n<p class=\"wp-block-paragraph\">In the current usage of third party libraries, there are a lot of libraries used in PHP that have moved on beyond 7.4. There are a lot of libraries that now require 8.1 or 8.2. If you depend on some library for, I don&#8217;t know, parsing URLs, or doing something else, something for security, something for whatever. You may face the problem that if you want to use the latest version of that library, you will need to have the newer PHP version. So you are kind of forced to upgrade your plugin requirements to meet with the requirements of the third party libraries.</p>\n\n\n\n<p class=\"wp-block-paragraph\">And outside of WordPress ecosystem, those libraries will move much faster with the adoption of newer PHPs versions than WordPress itself, because they don&#8217;t deal with millions and millions of websites that are affected. They are creating the library the best way they can. And they want to ensure that their library is secure, that their library has access to the latest features. So they are going to bump requirements for those libraries on their own. And if you are depending on it, you need to do it yourself for your plugin. So it&#8217;s kind of, those libraries are kind of forcing the hand of some developers to upgrade, even if they maybe are not ready at this point to do it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:32:15] <strong>Nathan Wrigley:</strong> Yeah, it certainly sounds like there&#8217;s no lack of information out there. If you make your business to find the information, then it&#8217;s all there. You&#8217;ve just got to make the effort to go and find it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve kind of run the gamut of everything I wish to ask. However, I&#8217;m very conscious, as I said at the beginning, that this conversation is a little bit above my pay grade. Is there anything that I missed that you wished you had been asked that you wanted to get across?</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:32:38] <strong>Milan Petrović:</strong> No, I think we covered a lot of stuff in that.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:32:42] <strong>Nathan Wrigley:</strong> Well I&#8217;m glad to hear it. That&#8217;s great. Yeah, thank you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">In which case, I&#8217;m assuming, given that you&#8217;ve come to an event like this and you&#8217;ve put a plugin on GitHub, you are sort of semi available, or very available, to have conversations with people around this. And if that&#8217;s the case, where&#8217;s the best place to find you online? A website or an email address or a Twitter handle or whatever.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:00] <strong>Milan Petrović:</strong> We included the slide with the contact information. So even the email, if someone wants to get more information, they can do it on various social networks as well. So any input about all that is welcome. And I&#8217;d be happy to help if someone needs, some pointers or additional information to get started with all this.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:21] <strong>Nathan Wrigley:</strong> Well, thank you. That&#8217;s very much appreciated. As always, if you go to the show notes on the WP Tavern website and click on the episode involving Milan, you&#8217;ll be able to find, buried probably towards the bottom, all the different bits and pieces, the wordpress.tv video that will go with his presentation and various other links that have been discussed during the course of this episode.</p>\n\n\n\n<p class=\"wp-block-paragraph\">So with that said, Milan, thank you so much for chatting to me today. I really appreciate it.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:47] <strong>Milan Petrović:</strong> Thank you. It was really great, and I appreciate your invitation for the interview.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:52] <strong>Nathan Wrigley:</strong> You are so welcome. Thank you.</p>\n\n\n\n<p class=\"wp-block-paragraph\">[00:33:53] <strong>Milan Petrović:</strong> Thank you.</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/gdragon/\">Milan Petrović</a>.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Milan has been deeply immersed in the WordPress ecosystem since 2007, developing an array of plugins, especially for expanding bbPress forums, and running his own company creating plugins before joining the Freemius team as a full stack developer. With nearly two decades of hands-on experience, Milan has witnessed firsthand the evolution of both the WordPress and PHP landscapes.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Many WordPress users may be only partially aware of PHP, perhaps they’ve noticed version numbers in their hosting panels, but few of the millions of WordPress users understand the real impact that PHP versions have on the security and performance of their websites. Milan is here to shine a light on why embracing newer versions, like PHP 8.x, isn’t just good practice but a crucial step for security and efficiency.</p>\n\n\n\n<p class=\"wp-block-paragraph\">Milan begins by recounting his journey through WordPress development. The conversation gets into the heart of his recent WordCamp Europe presentation, which tackles how legacy PHP code exposes sites to thousands of open bugs and vulnerabilities, and why relying on old versions is, as he describes, “an active invitation for automated exploitation.” The discussion explores the contrast between running legacy code and using the “native shields” of modern PHP, and highlights how PHP 8.x not only closes security holes but also delivers major performance boosts, reducing memory usage and accelerating speed.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you’re wondering why you should care about the PHP version your site is running on, or you’re a developer interested in practical ways to harden your code, Milan unpacks both the existential risks of outdated PHP and the step-by-step benefits for hosts, agencies, and plugin developers alike.</p>\n\n\n\n<p class=\"wp-block-paragraph\">He introduces his Vulnerability Lab plugin, designed for developers to see first-hand how code exploits play out differently across PHP versions, and makes the case that modernising can happen gradually, one update, one plugin at a time.</p>\n\n\n\n<p class=\"wp-block-paragraph\">If you’ve ever questioned how your hosting choice or plugin stack could affect your site’s future, or you’re ready to take the first steps towards building more secure and future-proof WordPress products, 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://europe.wordcamp.org/2026/session/secure-by-design-hardening-plugins-with-php-8-x/\">Secure-by-design: hardening plugins with PHP 8.x</a> &#8211; Milan&#8217;s presentation at WordCamp Europe 2026</p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://bbpress.org\">bbPress</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://www.dev4press.com\">Dev4Press</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://freemius.com\">Freemius</a></p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https://github.com/dev4press/vulnerability-lab\"> Vulnerability Lab plugin</a> on GitHub</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, 15 Jul 2026 14: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: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:73:\"Open Channels FM: We are Welcoming InMotion Hosting as our Newest Sponsor\";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=2556962\";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:80:\"https://openchannels.fm/we-are-welcoming-inmotion-hosting-as-our-newest-sponsor/\";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:170:\"InMotion Hosting joins Open Channels FM Podcast as a sponsor, offering reliable hosting with great support. They\'ve been a solid choice for over 25 years. Check them out!\";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, 15 Jul 2026 10:08:45 +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:81:\"Open Channels FM: Multi-Layered Security and the Future of Hosting in an AI World\";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=2556869\";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:88:\"https://openchannels.fm/multi-layered-security-and-the-future-of-hosting-in-an-ai-world/\";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:232:\"In this episode, Adam and Aaron discuss evolving web security in the AI era, emphasizing proactive strategies, layered defenses, and the vital role of hosts in protecting websites against modern threats. Secure your online presence!\";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, 14 Jul 2026 12:41: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: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:50:\"WordPress.org blog: Your Guide to WordCamp US 2026\";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=21007\";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:51:\"https://wordpress.org/news/2026/07/wcus-2026-guide/\";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:23903:\"<figure class=\"wp-block-image size-large has-custom-border is-style-default\"><img alt=\"WordCamp US: Powered by WordPress, Driven by Community, August 16-19, 2026\" class=\"wp-image-20859\" height=\"321\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/06/wcus-2026-teaser.png?resize=1024%2C321&#038;ssl=1\" style=\"border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;\" width=\"1024\" /><figcaption class=\"wp-element-caption\"><img alt=\"📅\" class=\"wp-smiley\" src=\"https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c5.png\" style=\"height: 1em;\" /> <strong>August 16-19, 2026 | Phoenix Convention Center</strong>,<strong> Phoenix, Arizona</strong></figcaption></figure>\n\n\n\n<p class=\"wp-block-paragraph\">WordCamp US 2026 returns for another year, this time in Phoenix, Arizona, for four days, August 16 to 19. It comes at a moment of real energy for WordPress, as artificial intelligence reshapes everyday workflows, the business of building and maintaining sites is shifting, and new people keep discovering the platform every day. Four tracks address this moment, covering AI, Honing Your Skills, Technical WordPress, and Beginner WordPress. Between them, there is something for everyone, whether you lead an agency, freelance for local clients, write code for a living, or are building your very first site. Whatever draws you in, you will leave Phoenix better equipped and better connected than ever.</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-c9c19393 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2026/tickets/\">Get Your Tickets</a></div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https://us.wordcamp.org/2026/contributor-day/\">Sign Up for Contributor Day</a></div>\n</div>\n\n\n\n<p class=\"wp-block-paragraph\">Phoenix itself rewards anyone who adds a day or two to their trip. The capital of Arizona sits in the Sonoran Desert and pairs a lively downtown with a rich arts and food scene. The Roosevelt Row arts district is known for its galleries, murals, and independent restaurants. It is also home to one of the largest art walks in the region. Nearby, Chase Field and the Footprint Center host professional baseball and live shows, and the surrounding desert offers striking scenery at places like Papago Park and the Desert Botanical Garden.</p>\n\n\n\n<div class=\"wp-block-jetpack-slideshow aligncenter\"><div class=\"wp-block-jetpack-slideshow_container swiper\"><ul class=\"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper\"><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21052\" height=\"1147\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-1.png?resize=1920%2C1147&#038;ssl=1\" width=\"1920\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21053\" height=\"612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-2.png?resize=1024%2C612&#038;ssl=1\" width=\"1024\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21054\" height=\"612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-3.png?resize=1024%2C612&#038;ssl=1\" width=\"1024\" /></figure></li><li class=\"wp-block-jetpack-slideshow_slide swiper-slide\"><figure><img alt=\"\" class=\"wp-block-jetpack-slideshow_image wp-image-21056\" height=\"612\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/phoenix-4.png?resize=1024%2C612&#038;ssl=1\" width=\"1024\" /></figure></li></ul><a class=\"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white\"></a><a class=\"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white\"></a><a class=\"wp-block-jetpack-slideshow_button-pause\"></a><div class=\"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white\"></div></div></div>\n\n\n\n<h2 class=\"wp-block-heading\">Start with Contributor Day</h2>\n\n\n\n<p class=\"wp-block-paragraph\">The week begins with <a href=\"https://us.wordcamp.org/2026/contributor-day/\">Contributor Day</a>, a full day set aside for giving back to the project that makes everything else possible. Attendees will gather in teams to improve WordPress itself, from Core code and documentation to design, training, accessibility, and translation.</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\">WordPress is so unique because we&#8217;re not just a product; we&#8217;re a movement.</p>\n<cite>Matt Mullenweg, WordPress Cofounder</cite></blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Contributor Day is open to everyone, whatever your skills, and whether or not you have ever contributed before. Come and experience the open source collaboration that is at the heart of the project. <a href=\"https://us.wordcamp.org/2026/contributor-day/\">Signing up</a> in advance helps us prepare our veteran contributors and provide you with the best experience.</p>\n\n\n\n<figure class=\"wp-block-gallery alignfull has-nested-images columns-6 is-cropped has-black-background-color has-background wp-block-gallery-1 is-layout-flex wp-container-core-gallery-is-layout-db4b8a9e wp-block-gallery-is-layout-flex\" style=\"border-width: 20px; border-radius: 2px;\">\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-19085\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/Z632926.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-19089\" height=\"1707\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC8723-scaled.jpg?fit=1024%2C683&amp;ssl=1\" width=\"2560\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-19110\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2025/08/DSC04553.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21080\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC8737.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21078\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0748.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21079\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0768.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21077\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0379.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21074\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0167.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21076\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/DSC0331.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21083\" height=\"683\" src=\"https://i0.wp.com/wordpress.org/news/files/2026/07/Z636050.jpg?resize=1024%2C683&#038;ssl=1\" width=\"1024\" /><button class=\"lightbox-trigger\" type=\"button\">\n			<svg fill=\"none\" height=\"12\" viewBox=\"0 0 12 12\" width=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n				<path d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" fill=\"#fff\">\n			</svg>\n		</button></figure>\n\n\n\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img alt=\"\" class=\"wp-image-21082\" he