[{"id":126106,"date":"2026-10-07T19:57:21","date_gmt":"2026-10-07T19:57:21","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126106"},"modified":"2026-10-07T23:08:00","modified_gmt":"2026-10-07T23:08:00","slug":"progress-report-wp_kses","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/progress-report-wp_kses\/","title":{"rendered":"Progress Report: <code>wp_kses()<\/code>"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Since its inception, WordPress has relied on the KSES<sup class=\"fn\" data-fn=\"fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a\"><a href=\"#fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a\" id=\"fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a-link\">1<\/a><\/sup> subsystem to sanitize <span tabindex='0' class='glossary-item-container'>HTML<span class='glossary-item-hidden-content'><span class='glossary-item-header'>HTML<\/span> <span class='glossary-item-description'>HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span>. Its purpose has grown and changed over time, but primarily serves two purposes: correct aesthetic defects that are likely the result of typos or pasting errors; and remove security risks that might appear in untrusted inputs. The original <code>kses<\/code> library was written before HTML5 fully-formalized HTML parsing and at a time when it was common to \u201chand type\u201d HTML. Today, however, there is no such thing as \u201cseriously malformed<sup class=\"fn\" data-fn=\"fn-e7609e07-da47-43de-9f5a-b8815311246b\"><a href=\"#fn-e7609e07-da47-43de-9f5a-b8815311246b\" id=\"fn-e7609e07-da47-43de-9f5a-b8815311246b-link\">2<\/a><\/sup>\u201d HTML and most people author content through rich editors, such as WordPress\u2019 <span tabindex='0' class='glossary-item-container'>Block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> editor. This means that today, the primary purpose of <code>wp_kses()<\/code> is to prune out risks from untrusted inputs, and it\u2019s time for it to get an overhaul.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As part of <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/66208\">#66208<\/a>, <a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/pull\/13271\">PR#13271<\/a> replaced the implementation of <code>wp_kses()<\/code> with a new one based on the <a href=\"https:\/\/make.wordpress.org\/core\/components\/html-api\/\">HTML API<\/a>. This update replaces a complicated chain of functions, string processing, PCRE regular expressions, and outdated logic to ensure that WordPress can perform its sanitization role reliably and comprehensibly.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">What changes might affect existing plugins, themes, or <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> code?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rebuilding <code>wp_kses()<\/code> should not require any changes to plugins or themes; it\u2019s an in-place upgrade with no interface changes. However, as its mode of operation is being entirely overhauled, there may be significant impacts on inputs that were treated in particular ways by the legacy implementation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">An opt-out <span tabindex='0' class='glossary-item-container'>filter<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Filter<\/span> <span class='glossary-item-description'>Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> preserves existing behaviors.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">For now, the original implementation is being kept around for compatibility reasons. A new filter gives site owners the opportunity to opt-out of running the replacement code. Reverting to the legacy mode is therefore as easy as adding the following line to your site. Before the full release of WordPress 7.2.0, any and all feedback on this new implementation will not only be greatly appreciated, but will help ensure a stable update for everyone.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-php\" lang=\"php\">add_filter( 'wp_kses_force_legacy_parser', '__return_true' );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s safe to run the new code, as the new internal parser is more robust, faster, and requires less memory to run, but in case some existing code depends on the idiosyncrasies of the legacy <code>wp_kses()<\/code>, that implementation remains available <em>for now<\/em>, but it will disappear in future releases or even in WordPress 7.2.0<sup class=\"fn\" data-fn=\"fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c\"><a href=\"#fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c\" id=\"fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c-link\">3<\/a><\/sup>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What will change as a result of this refactor in the function\u2019s behavior?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The goal of the refactor is to preserve the intent of the safety and aesthetic checks in the legacy <code>wp_kses()<\/code> function while ensuring that there will never be a mis-parse of HTML. To that extent, it is hard to quantify or completely qualify the kinds of changes this will bring to bear. There are a number of common scenarios, however, that are likely to present themselves.<\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">Text nodes and all syntax tokens are normalized.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The new implementation starts by structurally parsing its input documents, meaning that logical choices are based on the <em>meaning<\/em> of the input text, not the text directly. Whereas the legacy <code>wp_kses()<\/code> implementation attempts to examine each token in an HTML input and make adjustments to that original document, the new implementation creates its output string as it proceeds by creating a fresh serialization of the parsed input.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means that character references in text nodes will be fully un-escaped and deterministically re-escaped, tags will appear all-lowercase, attributes double-quoted, no ignored self-closing flags for void elements<sup class=\"fn\" data-fn=\"fn-87616a20-ae7e-49d9-ae2f-febd7cead99a\"><a href=\"#fn-87616a20-ae7e-49d9-ae2f-febd7cead99a\" id=\"fn-87616a20-ae7e-49d9-ae2f-febd7cead99a-link\">4<\/a><\/sup>, etc.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input HTML --&gt;\nThe &lt;IMG class=bike class=\"bo&amp;#x0061;t\" src='vehicle.png' \/&gt; &amp; the wheels&amp;hellip;\n\n&lt;!-- Legacy behavior --&gt;\nThe &lt;IMG class=\"bike\" src=\"vehicle.png\" \/&gt; &amp;amp; the wheels&amp;hellip;\n\n&lt;!-- New behavior --&gt;\nThe &lt;img class=\"bike\" src=\"vehicle.png\"&gt; &amp;amp; the wheels\u2026<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The goal of these changes is to produce more predictable HTML so that other parsing code is more likely to successfully recognize the HTML it receives, even if that other code suffers the same problems characteristic with over-simplified HTML parsing. This is attempting to remove the edge cases that make handling HTML reliably so difficult.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This normalization also means that there are a number of places that content was erroneously removed before which will now be preserved. The legacy implementation took defensive measures against inputs it didn\u2019t understand, often swallowing up content that appeared like a <span tabindex='0' class='glossary-item-container'>tag<span class='glossary-item-hidden-content'><span class='glossary-item-header'>tag<\/span> <span class='glossary-item-description'>A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)<\/span><\/span><\/span>. Since the HTML <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> understands that structure, however, these situations are recognized and normalized to prevent this very kind of confusion.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input HTML --&gt;\nIt would have to be &lt;$500 for me to be interested in buying it; it\u2019s already &gt;5yo and past its warranted life.\n\n&lt;!-- Legacy behavior --&gt;\nIt would have to be 5yo and past its warranted life.\n\n&lt;!-- New behavior --&gt;\nIt would have to be &amp;lt;$500 for me to be interested in buying it; it\u2019s already &amp;gt;5yo and past its warranted life.<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">Ambiguous ampersands are resolved.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This one is a bit esoteric, but might appear when least expected: there\u2019s a subtlety in how HTML parsers treat <em>named character references<\/em> which are missing their closing semicolon. Some character references may be recognized without a terminating semicolon, such as <code>&amp;copy<\/code>, while others unconditionally require them, such as with <code>&amp;middot;<\/code>. Things become <em>ambiguous<\/em> when there are successive characters after such a named reference which themselves do not form another character reference: <em>e.g. <\/em><code>&amp;copypaste;<\/code> It looks like there\u2019s a name here, but there\u2019s no character reference named <code>copypaste<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inside of text nodes, these semicolon-optional character references are decoded, sometimes surprisingly, but when found inside HTML attributes they aren\u2019t, which is yet another surprise. In <a href=\"https:\/\/livedomviewer.com\/?%3Cp%20title%3D%22%26copypaste%3B%27%22%3E%26copypaste%3B%3C%2Fp%3E\">the <code>&amp;copypaste;<\/code> example<\/a> the rendered text would show <code>\u00a9paste;<\/code>, but an attribute value would remain <code>&amp;copypaste;<\/code>. The reason for this discrepancy is how <span tabindex='0' class='glossary-item-container'>URL<span class='glossary-item-hidden-content'><span class='glossary-item-header'>URL<\/span> <span class='glossary-item-description'>A specific web address of a website or web page on the Internet, such as a website\u2019s URL www.wordpress.org<\/span><\/span><\/span> search parameters are frequently mis-encoded in <code>src<\/code>, <code>href<\/code> and other attributes. Consider a search link: <code>&lt;a href=\"\/search?q=cat+pictures&amp;not=cartoon\"&gt;<\/code>; it\u2019s clear that the intent here was to add a search parameter named <code>not<\/code> to exclude search results, but if decoded strictly, would be interpreted as <code>\/search?q=cat+pictures\u00ac=cartoon<\/code> because the <code>&amp;not<\/code> character reference doesn\u2019t require its semicolon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This exception was made to prevent breaking the existing web and remains today in all spec-compliant HTML parsers and browsers. Where this might turn up is when <em>text nodes<\/em> contain URLs containing query args or snippets of query args. Note that <code>&amp;sect<\/code> substring has been replaced by the new implementation in the following snippet with the section sign <code>\u00a7<\/code>, just as a browser would.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input HTML --&gt;\nAdd &lt;code&gt;\/?preview=true&amp;section=grilling&lt;\/code&gt;.\n\n&lt;!-- Legacy behavior --&gt;\nAdd &lt;code&gt;\/?preview=true&amp;amp;section=grilling&lt;\/code&gt;.\n\n&lt;!-- New behavior --&gt;\nAdd &lt;code&gt;\/?preview=true\u00a7ion=grilling&lt;\/code&gt;.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid this situation, authors should always escape the ampersand character <code>&amp;<\/code> when writing HTML, and always include the semicolon for character references. This is particularly true within URL query strings, as the unescaped ampersands can be easy to overlook; one must remember that the decoded value should be <code>&amp;<\/code>, thus the attribute value must contain <code>&amp;amp;<\/code>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">The contents of SCRIPT and STYLE elements are removed with their corresponding tags.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The HTML API defines the concept of a \u201cspecial atomic element.\u201d These are essentially the elements whose content cannot contain other markup. That is, all of the bytes found inside of them are <a href=\"https:\/\/fluffyandflakey.blog\/2026\/07\/10\/see-data-cdata-rcdata-and-pcdata-oh-my\/\">parsed as plaintext<\/a>, sometimes un-escaping character references and other times not. Because of the unique rules applied to the content of each of these kinds of elements, the HTML API treats them as if they were a single unit \u2014 it provides the entire element or none at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the legacy <code>wp_kses()<\/code> implementation, if a <code>SCRIPT<\/code> tag were not allowed (as is the case for the default \u201cpost\u201d context), then the opening and closing tags would be removed but the content would stick around. This was <em>safe<\/em> behavior because the executable code was removed from its executable content, but it could leave large rendered spans of <span tabindex='0' class='glossary-item-container'>JavaScript<span class='glossary-item-hidden-content'><span class='glossary-item-header'>JavaScript<\/span> <span class='glossary-item-description'>JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user\u2019s browser.\n<a href=\"https:\/\/www.javascript.com\/\">https:\/\/www.javascript.com<\/a><\/span><\/span><\/span> code on the final page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The new behavior is that when one of these tags is not allowed, it will be removed with all of its content too, automatically. This is not the case for other tags generally. For example, if <code>section<\/code> isn\u2019t passed in for the allowable HTML tags, then only the opening and closing <code>&lt;section&gt;<\/code> and <code>&lt;\/section&gt;<\/code> tags will be removed. The nature of the special atomic elements warrants the change.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input HTML --&gt;\nClick on my &lt;script&gt;alert(1)&lt;\/script&gt;!\n\n&lt;!-- Legacy behavior --&gt;\nClick on my alert(1)!\n\n&lt;!-- New behavior --&gt;\nClick on my !<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s another side of this that could be surprising: there might be content inside of these special elements that looks like a tag but isn\u2019t. The updated code recognizes when things that look like tags but aren\u2019t, and then escapes that content where possible to prevent further confusion from downstream code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input HTML --&gt;\n&lt;title&gt;The &lt;sneaky&gt; tag is not allowed.&lt;\/title&gt;\n&lt;div&gt;The &lt;sneaky&gt; tag is removed.&lt;\/div&gt;\n\n&lt;!-- Legacy behavior --&gt;\n&lt;title&gt;The  tag is not allowed.&lt;\/title&gt;\n&lt;div&gt;The  tag is removed.&lt;\/div&gt;\n\n&lt;!-- New behavior --&gt;\n&lt;title&gt;The &amp;lt;sneaky&amp;gt; tag is not allowed.&lt;\/title&gt;\n&lt;div&gt;The  tag is removed.&lt;\/div&gt;<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">Incomplete inputs are truncated before the start of the ambiguity.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">While <code>wp_kses()<\/code> is usually examining a snippet of HTML in isolation, its output is typically being rendered into a containing HTML document. Because of this, it\u2019s important to guard the end of the output to make sure that it can\u2019t form a tag when joined with other strings. The legacy implementation handles this by treating anything which fails to fully parse as plaintext and escape it, which produces safe but often corrupt outputs. The HTML API <em>pauses<\/em> when it finds text that looks like it could have been truncated, meaning that it might be the start of a tag or comment or other syntax element. Therefore the refactor avoids treating these tail-ends as if they were text and simply discards them instead. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input --&gt;\nClick on the &lt;butto\n\n&lt;!-- Legacy behavior --&gt;\nClick on the &amp;lt;butto\n\n&lt;!-- New behavior --&gt;\nClick on the <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For most situations the new behavior will result in less-clobbered text on the rendered page. However, there are a few points to be aware of regarding the special atomic elements. <code>wp_kses()<\/code> was built in a way that allows for un-matched tags at the start and end of the input, and plenty of code sends these kinds of <em>incomplete<\/em> fragments. For the most part, this has been preserved, but the special atomic elements are unique in that the parser changes modes inside of the elements. Therefore, if any of these elements appears incompletely, then the entire element will be removed. <em>Complete<\/em> in this context would mean a proper opening tag followed by a proper closing tag, including the contained content.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input --&gt;\nUse the &lt;title&gt; tag to open a title.\n\n&lt;!-- Legacy behavior (assuming that TITLE is allowed ) --&gt;\nUse the &lt;title&gt; tag to open a title.\n\n&lt;!-- New behavior --&gt;\nUse the <\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">SVG and MathML requiring more-complicated parsing is rejected.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When SVG or MathML content is directly embedded in HTML it presents a complicated situation. SVG and MathML are normatively XML applications and adhere to XML\u2019s draconian error policy<sup class=\"fn\" data-fn=\"fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d\"><a href=\"#fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d\" id=\"fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d-link\">5<\/a><\/sup> \u2014 a parser <em>must<\/em> reject a document entirely if there is a single error or mistake in it \u2014 but when embedded into an HTML document they are a blend of HTML and XML<sup class=\"fn\" data-fn=\"fn-7a0c381b-5e24-4a40-b602-be15a7fd26be\"><a href=\"#fn-7a0c381b-5e24-4a40-b602-be15a7fd26be\" id=\"fn-7a0c381b-5e24-4a40-b602-be15a7fd26be-link\">6<\/a><\/sup>. When the markup behaves XML-like, it\u2019s relatively straightforward to parse, but when it toggles into the HTML-like syntax then it becomes harder to know when to switch back or when the content ends.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because of this, the new implementation of <code>wp_kses()<\/code> will parse as far into SVG and MathML content as it can with certainty. It\u2019s able to know when proceeding would require further complexity<sup class=\"fn\" data-fn=\"fn-d63f0850-9686-49a2-9881-b1476c81981a\"><a href=\"#fn-d63f0850-9686-49a2-9881-b1476c81981a\" id=\"fn-d63f0850-9686-49a2-9881-b1476c81981a-link\">7<\/a><\/sup>, and when it would, then it aborts entirely and returns the input up until that SVG or MathML content begins. This is important not only for <code>wp_kses()<\/code>, but safeguards downstream code and parsers which also might be unaware of the more-substantial rules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-markup\" lang=\"markup\">&lt;!-- Input --&gt;\n&lt;li&gt;XML-like &lt;math&gt;&lt;mtext&gt;MathML&lt;\/mtext&gt;&lt;\/math&gt;\n&lt;li&gt;HTML-like &lt;math&gt;&lt;mtext&gt;&lt;span&gt;MathML&lt;\/span&gt;&lt;\/mtext&gt;&lt;\/math&gt;\n\n&lt;!-- Legacy behavior --&gt;\n&lt;li&gt;XML-like &lt;math&gt;&lt;mtext&gt;MathML&lt;\/mtext&gt;&lt;\/math&gt;\n&lt;li&gt;HTML-like &lt;math&gt;&lt;mtext&gt;&lt;span&gt;MathML&lt;\/span&gt;&lt;\/mtext&gt;&lt;\/math&gt;\n\n&lt;!-- New behavior --&gt;\n&lt;li&gt;XML-like &lt;math&gt;&lt;mtext&gt;MathML&lt;\/mtext&gt;&lt;\/math&gt;\n&lt;li&gt;HTML-like<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">Some inputs are never trusted.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The availability of an HTML parser brings <span tabindex='0' class='glossary-item-container'>capabilities<span class='glossary-item-hidden-content'><span class='glossary-item-header'>capability<\/span> <span class='glossary-item-description'>A\u00a0<strong>capability<\/strong>\u00a0is permission to perform one or more types of task. Checking if a user has a capability is performed by the <code>current_user_can<\/code> function. Each user of a WordPress site might have some permissions but not others, depending on their\u00a0role. For example, users who have the Author role usually have permission to edit their own posts (the \u201cedit_posts\u201d capability), but not permission to edit other users\u2019 posts (the \u201cedit_others_posts\u201d capability).<\/span><\/span><\/span> that weren\u2019t previously possible, and in some cases, there are challenging decisions on what to allow based on those capabilities. The new implementation of <code>wp_kses()<\/code> applies some hard-limits in situations where the legacy implementation didn\u2019t. This includes rejecting various kinds of malformed HTML comments, documents containing the <code>NOSCRIPT<\/code> element, and various elements containing confusable content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In certain risky situations, whereby the risk is high that downstream parsers might get confused, or where the major browsers currently disagree on how to interpret the specification, elements may be rewritten in another form. For example, <code>CDATA<\/code> sections and <code>PLAINTEXT<\/code> element contents are transformed into normal escaped text.<\/p>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">What rationale is leading behavioral changes?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s easy to point out issues with <code>wp_kses()<\/code>, but it\u2019s much harder to classify if those issues warrant change or not. There is essentially one value leading the decisions in these cases: don\u2019t make <code>wp_kses()<\/code> <em>worse<\/em> than it was. This manifests in a couple of ways: for normative runs it should reproduce the existing normative behaviors; but for cases where expectations are already broken, there is no need to retain those broken behaviors. These decisions are also made against the backdrop of the security-sensitive role that <code>wp_kses()<\/code> plays \u2014 its purpose is to prevent misuse, so some changes will result from diligence in hardening despite a regretful change in behavior<sup class=\"fn\" data-fn=\"fn-b2fb60d6-ae33-474e-b381-83de76a948ea\"><a href=\"#fn-b2fb60d6-ae33-474e-b381-83de76a948ea\" id=\"fn-b2fb60d6-ae33-474e-b381-83de76a948ea-link\">8<\/a><\/sup>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Preserve intentional behaviors.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">There are some debatable historic decisions within <code>wp_kses()<\/code>. One, for instance, is preserving so-called \u201cunbalanced tags\u201d in the input. One might expect <code>wp_kses()<\/code> to add missing closing tags to its input, but plenty of existing code in the directory and in Core already passes \u201cunbalanced\u201d HTML intentionally through the function and expects it to remain unbalanced in the output. This is because people sometimes concatenate chunks of HTML which have been separately-sanitized. This may not be the ideal way to accomplish the task, but it\u2019s well-established.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a situation where the existing behavior is preserved. Adding those missing tags was explored, but ultimately rejected for this reason.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Allow already-broken behaviors to change.<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s also up for debate what \u201cbroken\u201d exactly means, but for the sake of this refactor, and all refactors with the HTML API, the qualification is whether a broken behavior was expected or not. For instance, <code>wp_kses()<\/code> has generally not been aware of the special parsing rules inside an HTML <code>TITLE<\/code> element. Consider its behavior when <code>img<\/code> <em>is<\/em> and <em>isn\u2019t<\/em> allowed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-php\" lang=\"php\">&lt;?php\n\necho wp_kses(\n    '&lt;title&gt;&lt;img&gt;&lt;\/title&gt;',\n    array( 'title' =&gt; true, 'img' =&gt; array( 'src' =&gt; array( 'required' =&gt; true ) ) ) \n);\n\/\/ &lt;title&gt;&lt;img&gt;&lt;\/title&gt;\n\necho wp_kses(\n    '&lt;title&gt;&lt;img \/&gt;&lt;\/title&gt;',\n    array( 'title' =&gt; true, 'img' =&gt; array( 'src' =&gt; array( 'required' =&gt; true ) ) )\n);\n\/\/ &lt;title&gt;&lt;\/title&gt;\n\necho wp_kses( '&lt;title&gt;&lt;img&gt;&lt;\/title&gt;', array( 'title' =&gt; true ) );\n\/\/ &lt;title&gt;&lt;\/title&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There is no real way to intuit the results of these calls because the parser was confused on the nature of the <code>&lt;img&gt;<\/code> and <code>&lt;img \/&gt;<\/code> byte sequences. Every one of the outputs of these calls is wrong because no <code>IMG<\/code> element exists within the <code>TITLE<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-php\" lang=\"php\">&lt;?php\n\nadd_filter( 'wp_kses_force_legacy_parser', '__return_false' );\necho wp_kses(\n    '&lt;title&gt;&lt;img&gt;&lt;\/title&gt;',\n    array( 'title' =&gt; true, 'img' =&gt; array( 'src' =&gt; array( 'required' =&gt; true ) ) ) \n);\n\/\/ &lt;title&gt;&amp;lt;img&amp;gt;&lt;\/title&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The proper way to sanitize and normalize content within the <code>TITLE<\/code> element is to escape it as text, after first decoding any character references inside it. This behavior was changed because there\u2019s no possible way to say that the existing behavior was correct without creating internal inconsistencies. <a href=\"https:\/\/xkcd.com\/1172\/\">It might have been \u201ccorrect\u201d in some cases for some people<\/a>, but an adjustment here only changes who is affected by the inconsistent state and it\u2019s not viable to attempt to evaluate whose broken flows are more or less important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So this change was adopted because it establishes clear expectations for everyone and fixes situations in which it was not previously possible for any consistent notion of \u201cit works.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Please give the new implementation of <code>wp_kses()<\/code> a try and share any feedback you have in the <span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/66208\">#66208<\/a>), or leave a comment below. Expect this to be part of WordPress 7.2 or 7.3 dependent on what this period of testing turns up. Thank you for your attention and participation!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\">\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to <a href=\"https:\/\/profiles.wordpress.org\/jonsurrell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jonsurrell<\/a> and <a href=\"https:\/\/profiles.wordpress.org\/westonruter\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>westonruter<\/a> who reviewed this post before publishing.<\/em><\/p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a\">\u201cThe name kses comes from the terms XSS and access.\u201d \u2014 noted in the README of the <a href=\"https:\/\/sourceforge.net\/projects\/kses\/files\/kses\/0.1.0\/\">0.1.0 release<\/a> of <a href=\"https:\/\/www.mail-archive.com\/full-disclosure@lists.netsys.com\/msg03530.html\">the <code>kses<\/code> library<\/a>. <a href=\"#fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-e7609e07-da47-43de-9f5a-b8815311246b\">The <a href=\"https:\/\/html.spec.whatwg.org\/multipage\/introduction.html#conformance-requirements-for-authors\">HTML Living Specification<\/a> prescribes how to parse every kind of malformed input, meaning that every compliant parser should produce the same output for any given input. There is no point of giving up, and <a href=\"https:\/\/fluffyandflakey.blog\/2024\/11\/14\/five-common-html-myths\/#loose-parsers\">there is no leniency<\/a> in how a document is to be parsed. <a href=\"#fn-e7609e07-da47-43de-9f5a-b8815311246b-link\" aria-label=\"Jump to footnote reference 2\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c\">The speed with which the legacy <code>wp_kses()<\/code> implementation will disappear is directly related to the <span tabindex='0' class='glossary-item-container'>severity<span class='glossary-item-hidden-content'><span class='glossary-item-header'>severity<\/span> <span class='glossary-item-description'>The seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while <strong>priority<\/strong> is its relationship to other bugs.<\/span><\/span><\/span> of issues uncovered in testing. If all goes well, WordPress 7.2.0 could include a wholesale replacement of the legacy function without any transition support in the released version. <a href=\"#fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c-link\" aria-label=\"Jump to footnote reference 3\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-87616a20-ae7e-49d9-ae2f-febd7cead99a\">There is a myth of XHTML-compatible HTML, but the sense of interoperability and security is superficial. <a href=\"https:\/\/hixie.ch\/advocacy\/xhtml\">It\u2019s not safe to deliver HTML as XHTML<\/a> and there is no general way to create a single document compatible under both systems. The mistaken self-closing flag on HTML elements appeared as a way to attempt to produce XHTML-safe HTML, but is non-normative and its presence continues a tradition of misunderstanding, because HTML has no self-closing elements. <a href=\"#fn-87616a20-ae7e-49d9-ae2f-febd7cead99a-link\" aria-label=\"Jump to footnote reference 4\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d\">Also referred to as \u201cpenalize innocent end-users,\u201d <a href=\"https:\/\/www.xml.com\/axml\/notes\/Draconian.html\">XML\u2019s \u201cdraconian error handling\u201d<\/a> was chosen to keep XML parser implementations simple. <a href=\"#fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d-link\" aria-label=\"Jump to footnote reference 5\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-7a0c381b-5e24-4a40-b602-be15a7fd26be\">When HTML5 was being standardized, one of the guiding rules was \u201cdon\u2019t break the Internet.\u201d Because a sufficient number of websites had already pasted SVG and MathML into HTML pages, with errors, and because the browsers at the time parsed and displayed that content anyway, the specification had to adapt to continue to allow these pages to render in spec-compliant browsers. In fact, this requirement for maximum backwards compatibility is the reason behind most of HTML\u2019s parsing complexity. <a href=\"#fn-7a0c381b-5e24-4a40-b602-be15a7fd26be-link\" aria-label=\"Jump to footnote reference 6\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-d63f0850-9686-49a2-9881-b1476c81981a\">The new <code>wp_kses()<\/code> implementation relies on the Tag Processor, which can parse every tag, comment, text node, etc., but which isn\u2019t aware of the tree-structure of an HTML document. The HTML Processor, its more-powerful counterpart, is able to build that tree, but this process involves considerably more time and effort.  <a href=\"#fn-d63f0850-9686-49a2-9881-b1476c81981a-link\" aria-label=\"Jump to footnote reference 7\">\u21a9\ufe0e<\/a><\/li><li id=\"fn-b2fb60d6-ae33-474e-b381-83de76a948ea\">It\u2019s worth emphasizing that <code>wp_kses()<\/code> is meant to sanitize <em>untrusted inputs<\/em>. There is a certain blurriness in how specific inputs should be handled in order to neutralize potential dangers. Because of this, there are intentionally fewer behavioral guarantees and the logic will lean conservatively. That is, it will be safety to regretfully reject some safe inputs in order to ensure that more unsafe inputs are rejected. <a href=\"#fn-b2fb60d6-ae33-474e-b381-83de76a948ea-link\" aria-label=\"Jump to footnote reference 8\">\u21a9\ufe0e<\/a><\/li><\/ol>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/html-api\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>html-api<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/html-api-progress-report\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>html-api-progress-report<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/progress-report\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>progress-report<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F07%2Fprogress-report-wp_kses%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>Since its inception, WordPress has relied on the KSES1 subsystem to sanitize HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. Its purpose has grown and changed over time, but primarily serves two purposes: correct aesthetic defects that are likely the result of typos or pasting errors; and [&hellip;]<\/p>\n","protected":false},"author":13597958,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"[{\"id\":\"fn-1e84fd31-badc-41d8-8b6e-2aae1aae060a\",\"content\":\"\\u201cThe name kses comes from the terms XSS and access.\\u201d \\u2014 noted in the README of the <a href=\\\"https:\\\/\\\/sourceforge.net\\\/projects\\\/kses\\\/files\\\/kses\\\/0.1.0\\\/\\\">0.1.0 release<\\\/a> of <a href=\\\"https:\\\/\\\/www.mail-archive.com\\\/full-disclosure@lists.netsys.com\\\/msg03530.html\\\">the <code>kses<\\\/code> library<\\\/a>.\"},{\"id\":\"fn-e7609e07-da47-43de-9f5a-b8815311246b\",\"content\":\"The <a href=\\\"https:\\\/\\\/html.spec.whatwg.org\\\/multipage\\\/introduction.html#conformance-requirements-for-authors\\\">HTML Living Specification<\\\/a> prescribes how to parse every kind of malformed input, meaning that every compliant parser should produce the same output for any given input. There is no point of giving up, and <a href=\\\"https:\\\/\\\/fluffyandflakey.blog\\\/2024\\\/11\\\/14\\\/five-common-html-myths\\\/#loose-parsers\\\">there is no leniency<\\\/a> in how a document is to be parsed.\"},{\"id\":\"fn-66d724e2-0320-4bf8-befd-e21e09dc0f2c\",\"content\":\"The speed with which the legacy <code>wp_kses()<\\\/code> implementation will disappear is directly related to the severity of issues uncovered in testing. If all goes well, WordPress 7.2.0 could include a wholesale replacement of the legacy function without any transition support in the released version.\"},{\"id\":\"fn-87616a20-ae7e-49d9-ae2f-febd7cead99a\",\"content\":\"There is a myth of XHTML-compatible HTML, but the sense of interoperability and security is superficial. <a href=\\\"https:\\\/\\\/hixie.ch\\\/advocacy\\\/xhtml\\\">It\\u2019s not safe to deliver HTML as XHTML<\\\/a> and there is no general way to create a single document compatible under both systems. The mistaken self-closing flag on HTML elements appeared as a way to attempt to produce XHTML-safe HTML, but is non-normative and its presence continues a tradition of misunderstanding, because HTML has no self-closing elements.\"},{\"id\":\"fn-a32915ca-546e-4f96-92e0-a8fa02e2e43d\",\"content\":\"Also referred to as \\u201cpenalize innocent end-users,\\u201d <a href=\\\"https:\\\/\\\/www.xml.com\\\/axml\\\/notes\\\/Draconian.html\\\">XML\\u2019s \\u201cdraconian error handling\\u201d<\\\/a> was chosen to keep XML parser implementations simple.\"},{\"id\":\"fn-7a0c381b-5e24-4a40-b602-be15a7fd26be\",\"content\":\"When HTML5 was being standardized, one of the guiding rules was \\u201cdon\\u2019t break the Internet.\\u201d Because a sufficient number of websites had already pasted SVG and MathML into HTML pages, with errors, and because the browsers at the time parsed and displayed that content anyway, the specification had to adapt to continue to allow these pages to render in spec-compliant browsers. In fact, this requirement for maximum backwards compatibility is the reason behind most of HTML\\u2019s parsing complexity.\"},{\"id\":\"fn-d63f0850-9686-49a2-9881-b1476c81981a\",\"content\":\"The new <code>wp_kses()<\\\/code> implementation relies on the Tag Processor, which can parse every tag, comment, text node, etc., but which isn\\u2019t aware of the tree-structure of an HTML document. The HTML Processor, its more-powerful counterpart, is able to build that tree, but this process involves considerably more time and effort. \"},{\"id\":\"fn-b2fb60d6-ae33-474e-b381-83de76a948ea\",\"content\":\"It\\u2019s worth emphasizing that <code>wp_kses()<\\\/code> is meant to sanitize <em>untrusted inputs<\\\/em>. There is a certain blurriness in how specific inputs should be handled in order to neutralize potential dangers. Because of this, there are intentionally fewer behavioral guarantees and the logic will lean conservatively. That is, it will be safety to regretfully reject some safe inputs in order to ensure that more unsafe inputs are rejected.\"}]","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[5393,5641,5975],"class_list":["post-126106","post","type-post","status-publish","format-standard","hentry","category-general","tag-html-api","tag-html-api-progress-report","tag-progress-report","mentions-jonsurrell","mentions-westonruter","author-dmsnell"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wNY","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/13597958"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126106"}],"version-history":[{"count":61,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106\/revisions"}],"predecessor-version":[{"id":126518,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106\/revisions\/126518"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":13597958,"name":"Dennis Snell","url":"https:\/\/fluffyandflakey.blog","description":"As a Code Wrangler at Automattic, Inc., I spend my days designing software. As a nomad, I own very few things and enjoy living simply. I love cooking, engineering, photography, and my faithful God, Jesus Christ.","link":"https:\/\/profiles.wordpress.org\/dmsnell\/","slug":"dmsnell","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/13597958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49448,"parent":49447,"author":13597958,"author_name":"Dennis Snell","author_url":"https:\/\/fluffyandflakey.blog","date":"2026-10-08T19:38:53","content":{"rendered":"<p>Not in this change, sadly. It would be great to examine the impact of this change. The expectation is that this is faster and uses less memory, and for these reasons:<\/p>\n<ul>\n<li>Whereas the legacy implementation attempts to split the document into a giant array of <span tabindex=\"0\" class=\"glossary-item-container\">HTML<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">HTML<\/span> <span class=\"glossary-item-description\">HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span> tokens via <code>wp_kses_split()<\/code>, and holds that array in memory, the new implementation instead walks forward through the document token by token, never holding that array in memory.<\/li>\n<li>Whereas the legacy implementation makes a number of text-processing passes through the entire document, the new implementation removes most of these passes and largely makes a single forward pass.<\/li>\n<li>Whereas the legacy implementation eagerly calls <code>serialize_blocks( parse_blocks() )<\/code> on the entire document, the new implementation only parses a <span tabindex=\"0\" class=\"glossary-item-container\">block<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Block<\/span> <span class=\"glossary-item-description\">Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> once one is actually present, and relies on <code>WP_Block_Parser<\/code> for even more lazy evaluation.<\/li>\n<\/ul>\n<p>There are some things that are more computationally demanding in the new implementation, particularly in how HTML is processed, but what we\u2019ve seen is that HTML <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> code tends to perform better than legacy code simply because there is more going on in legacy code that approximates what the HTML API does, but wasn\u2019t designed for performance.<\/p>\n<p>If you publish any benchmarks, please share them here!<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/progress-report-wp_kses\/#comment-49448","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/b5292a7fb1ae9f9cce40615cb7715e799a69d78bad79b99ca9d14494c90a1b8b?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/13597958"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49447"}]}},{"id":49447,"parent":0,"author":23381211,"author_name":"Miroslav Curcic","author_url":"","date":"2026-10-08T19:32:07","content":{"rendered":"<p>Any benchmarks?<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/progress-report-wp_kses\/#comment-49447","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d6b8f94cd9ece5c43a4a40ff47cd04a07d640a3346d034f4c9c2dc8ccf0aeccb?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d6b8f94cd9ece5c43a4a40ff47cd04a07d640a3346d034f4c9c2dc8ccf0aeccb?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d6b8f94cd9ece5c43a4a40ff47cd04a07d640a3346d034f4c9c2dc8ccf0aeccb?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/23381211"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49447"}]}},{"id":49445,"parent":0,"author":7558788,"author_name":"Jon Surrell","author_url":"https:\/\/sirre.al","date":"2026-10-08T05:39:27","content":{"rendered":"<p>Anyone that has trouble with differences in KSES behaviors affecting tests should try <code><a href=\"https:\/\/developer.wordpress.org\/news\/2026\/02\/a-better-way-to-test-html-in-wordpress-with-assertequalhtml\/\" rel=\"nofollow ugc\">assertEqualHTML()<\/a><\/code>. It\u2019s useful for comparing <span tabindex=\"0\" class=\"glossary-item-container\">HTML<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">HTML<\/span> <span class=\"glossary-item-description\">HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span> so that only semantically significant differences appear.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/progress-report-wp_kses\/#comment-49445","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/8133e8fdfe113d5df3e4bda9b670bba25a516df4daeba406cbe10ea2c9c62089?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/8133e8fdfe113d5df3e4bda9b670bba25a516df4daeba406cbe10ea2c9c62089?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/8133e8fdfe113d5df3e4bda9b670bba25a516df4daeba406cbe10ea2c9c62089?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/7558788"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126106"}]}}]],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":5393,"link":"https:\/\/make.wordpress.org\/core\/tag\/html-api\/","name":"html-api","slug":"html-api","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5641,"link":"https:\/\/make.wordpress.org\/core\/tag\/html-api-progress-report\/","name":"html-api-progress-report","slug":"html-api-progress-report","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5975,"link":"https:\/\/make.wordpress.org\/core\/tag\/progress-report\/","name":"progress-report","slug":"progress-report","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126337,"date":"2026-10-07T13:09:30","date_gmt":"2026-10-07T13:09:30","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126337"},"modified":"2026-10-07T14:52:13","modified_gmt":"2026-10-07T14:52:13","slug":"proposal-minor-updates-to-the-wordpress-core-css-coding-standards","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/proposal-minor-updates-to-the-wordpress-core-css-coding-standards\/","title":{"rendered":"Proposal: Minor updates to the WordPress Core CSS Coding Standards"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The purpose of this proposal is to introduce minor changes to <a href=\"https:\/\/developer.wordpress.org\/coding-standards\/wordpress-coding-standards\/css\/\">the WordPress CSS Coding Standards<\/a> required to integrate Stylelint into <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span>. Please keep any feedback focused on the scope of these minor changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> <span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/29792\">#29792<\/a> a proposal has been made to introduce a <span tabindex='0' class='glossary-item-container'>CSS<span class='glossary-item-hidden-content'><span class='glossary-item-header'>CSS<\/span> <span class='glossary-item-description'>Cascading Style Sheets.<\/span><\/span><\/span> linter to check for syntax errors and enforce the CSS Coding Standards for Core. A <a href=\"https:\/\/github.com\/WordPress\/wpcs-docs\/blob\/a9ffaa51e7c8d3bdf8732deeaea8f38e2d18ab15\/wordpress-coding-standards\/css.md\">versioned version<\/a> of the <em>current<\/em> standards is available on the <span tabindex='0' class='glossary-item-container'>WordPress Coding Standards<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress Coding Standards<\/span> <span class='glossary-item-description'>The Accessibility, PHP, JavaScript, CSS, HTML, etc. coding standards as published in the WordPress <a href=\"https:\/\/developer.wordpress.org\/coding-standards\/\">Coding Standards Handbook<\/a>.\nMay also refer to <a href=\"https:\/\/github.com\/WordPress\/WordPress-Coding-Standards\/\">The collection of PHP_CodeSniffer rules<\/a> (sniffs) used to format and validate PHP code developed for WordPress according to the PHP coding standards.<\/span><\/span><\/span> Docs repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While syntax errors are already caught by postcss, the coding standards aren\u2019t currently enforced. There is now <a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/pull\/12934\">a proposal to introduce Stylelint<\/a> as a tool to enforce them. Stylelint has been used in the <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span> editor repository for several years, and is widely used in the tech industry. It\u2019s a flexible and powerful tool that will help make sure no new standards errors are introduced, for better compliance and future maintainability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To introduce Stylelint in Core and in the WordPress Continuous Integration pipeline, a minor update to the CSS Coding Standards must happen first. <a href=\"https:\/\/github.com\/WordPress\/wpcs-docs\/pull\/162\">A pull request is ready<\/a> on the related repository for the proposed update.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The proposed changes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two changes are relevant, while others are minor or purely cosmetic changes. The rest of the Stylelint configuration matches the current coding standards.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blank lines<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The sentence <code>Add two blank lines between sections and one blank line between blocks in a section<\/code> is changed to <code>Add one blank line between sections and between blocks in a section<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rationale: Stylelint can\u2019t distinguish between blank lines that come before sections and blocks in a section. As such, the rule is simplified to require one blank line everywhere.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The order property and the reverse values<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the Properties and in the Values sections, two new bullet points are added to require avoiding the usage of the <code>order<\/code> property and the <code>*-reverse<\/code> values. Note that this matches the rules that are already in use in the Gutenberg repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rationale: the <code>order<\/code> property and the <code>*-reverse<\/code> values are known to be potentially harmful for <span tabindex='0' class='glossary-item-container'>accessibility<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Accessibility<\/span> <span class='glossary-item-description'>Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility)<\/span><\/span><\/span>. For accessibility reasons, visual, reading, and DOM order must match. Only use <code>order<\/code> and the reverse values when they do not affect reading order, meaning, and interaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quoting from <a href=\"https:\/\/www.w3.org\/TR\/css-display-3\/\">the W3C CSS Display Module Level 3<\/a> and <a href=\"https:\/\/www.w3.org\/TR\/css-flexbox-1\/\">the W3C CSS Flexible Box Layout Module Level 1<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Authors must use order only for spatial, not logical, reordering of content. Style sheets that use order to perform logical reordering are non-conforming.<\/em><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Authors must not use order or the *-reverse values of flex-flow\/flex-direction as a substitute for correct source ordering, as that can ruin the accessibility of the document.<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Minor and cosmetics changes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Added explicit exceptions to lowercase values for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>currentColor<\/code><\/li>\n\n\n\n<li><code>optimizeLegibility<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Changed the sentence <code>Things that are not yet used in core itself, such as CSS3 animations ...<\/code> by removing the part: <code>such as CSS3 animations<\/code> because CSS3 animations are now used in Core.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entirely removed the following bullet point:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>An exception is made for the wp-admin.css file in core, as it is very large and each section essentially represents a stylesheet of its own. Media queries are therefore added at the bottom of sections as applicable.<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">because <code>wp-admin.css<\/code> is no longer split into sections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other changes are purely cosmetic, for example long sentences have been split into bullet points for better readability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Proposed timeline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I would like to propose leaving this proposal open for comments for one week to gather feedback and any concerns. After a week, in the absence of significant objections, I suggest proceeding with the update.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Any feedback and comments are welcome.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Note on future plans<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once Stylelint will be in place, WordPress will have a solid baseline for further Core CSS improvements. If the CSS Coding Standards require major changes, they can be considered based on actual data provided by Stylelint. This could be addressed in a future, more wide-ranging proposal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Props to <a href=\"https:\/\/profiles.wordpress.org\/joedolson\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>joedolson<\/a> for review and feedback.<\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/codingstandards\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>codingstandards<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/core-css\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>core-css<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/proposal\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>proposal<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F07%2Fproposal-minor-updates-to-the-wordpress-core-css-coding-standards%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>The purpose of this proposal is to introduce minor changes to the WordPress CSS Coding Standards required to integrate Stylelint into CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Please keep any feedback focused on the scope of these minor changes. On TracTrac An open source [&hellip;]<\/p>\n","protected":false},"author":8894114,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[3041,2941,1445],"class_list":["post-126337","post","type-post","status-publish","format-standard","hentry","category-general","tag-codingstandards","tag-core-css","tag-proposal","mentions-joedolson","author-afercia"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wRH","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8894114"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126337"}],"version-history":[{"count":8,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126337\/revisions"}],"predecessor-version":[{"id":126496,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126337\/revisions\/126496"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":8894114,"name":"Andrea Fercia","url":"http:\/\/www.linkedin.com\/in\/andreafercia","description":"Accessibility Specialist, WordPress Core Committer, Senior Frontend engineer.\r\n\r\nAs a Core Committer since 2015 and a member of the WordPress Accessibility Team, I contributed to advancing accessibility standards within WordPress, delivering accessibility improvements for millions of users globally.\r\n\r\nWith over 10 years at Yoast BV, I specialised in modern WordPress development as a senior frontend developer and digital accessibility specialist. \r\n\r\nOpen-source contributor, speaker, mentor, and accessibility advocate. Over the course of more than 20 years of digital accessibility practice, I learned a couple things about people's needs, browsers, and assistive technology. Interested in scaling accessibility within product teams and fostering accessibility culture in large organisations.","link":"https:\/\/profiles.wordpress.org\/afercia\/","slug":"afercia","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8894114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49440,"parent":0,"author":13655154,"author_name":"Andrew Duthie","author_url":"http:\/\/www.andrewduthie.com","date":"2026-10-07T14:59:10","content":{"rendered":"<p>These all seem like reasonable changes to me \ud83d\udc4d I like the updates to simplify expectations (e.g. one-vs-two newlines between sections), and bring the rules in line with modern expectations (e.g. CSS3 animations).<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/proposal-minor-updates-to-the-wordpress-core-css-coding-standards\/#comment-49440","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/f4226aad00975bb106756610d04b6bb3bd65027d37d1839dbd6c285f12c8a49d?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/f4226aad00975bb106756610d04b6bb3bd65027d37d1839dbd6c285f12c8a49d?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/f4226aad00975bb106756610d04b6bb3bd65027d37d1839dbd6c285f12c8a49d?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/13655154"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126337"}]}}]],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":3041,"link":"https:\/\/make.wordpress.org\/core\/tag\/codingstandards\/","name":"codingstandards","slug":"codingstandards","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/3041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=3041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2941,"link":"https:\/\/make.wordpress.org\/core\/tag\/core-css\/","name":"core-css","slug":"core-css","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":1445,"link":"https:\/\/make.wordpress.org\/core\/tag\/proposal\/","name":"proposal","slug":"proposal","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/1445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=1445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126486,"date":"2026-10-07T00:40:00","date_gmt":"2026-10-07T00:40:00","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126486"},"modified":"2026-10-07T00:40:02","modified_gmt":"2026-10-07T00:40:02","slug":"dev-chat-agenda-oct-07-2026","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/dev-chat-agenda-oct-07-2026\/","title":{"rendered":"Dev Chat Agenda \u2013 October 7, 2026"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The next WordPress Developers Chat will take place on <a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261007T1500\"><abbr class=\"date\" title=\"2026-10-07T15:00:00+00:00\">Wednesday, October 7, 2026, at 15:00 UTC<\/abbr><\/a> in the\u00a0<a href=\"https:\/\/wordpress.slack.com\/messages\/core\/\">core<\/a>\u00a0channel on\u00a0<a href=\"https:\/\/make.wordpress.org\/chat\/\">Make WordPress Slack<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The live meeting will focus on the discussion for upcoming releases, and have an open floor section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The various curated agenda sections below refer to additional items. If you have\u00a0<span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span>\u00a0requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.<\/p>\n\n\n\n<h2 id=\"announcements-1\" class=\"wp-block-heading\">Announcements \ud83d\udce2<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wordpress.org\/news\/2026\/10\/wordpress-7-1-3-maintenance-and-security-release\/\">7.1.3 Security release 10\/6\/26<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/\">WordPress 7.2 release party schedule<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition\/\">Core Trac and Github spring cleaning<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/\">Presence API: What\u2019s new<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/whats-new-in-gutenberg-24-1-30-september\/\">What\u2019s new in Gutenberg 24.1 9\/30\/26<\/a><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"discussions\" class=\"wp-block-heading\">Discussions \ud83d\udcac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion<\/em>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"tickets-for-assistance\" class=\"wp-block-heading\">Open floor \u00a0\ud83c\udf99\ufe0f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.<br><br>Please include details of tickets \/ PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.<\/p>\n<\/div>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/7-1\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>7-1<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/7-2\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>7-2<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/agenda\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>agenda<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/core\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>core<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/dev-chat\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>dev-chat<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F07%2Fdev-chat-agenda-oct-07-2026%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>The next WordPress Developers Chat will take place on in the\u00a0core\u00a0channel on\u00a0Make WordPress Slack. The live meeting will focus on the discussion for upcoming releases, and have an open floor section. The various curated agenda sections below refer to additional items. If you have\u00a0ticketticket Created for both bug reports and feature development on the bug [&hellip;]<\/p>\n","protected":false},"author":16694622,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4424,4194,1175],"tags":[5885,5861,31,2325,92],"class_list":["post-126486","post","type-post","status-publish","format-standard","hentry","category-core","category-devchat","category-general","tag-7-1","tag-7-2","tag-agenda","tag-core","tag-dev-chat","author-amykamala"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wU6","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16694622"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126486"}],"version-history":[{"count":1,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486\/revisions"}],"predecessor-version":[{"id":126487,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486\/revisions\/126487"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":16694622,"name":"Amy Kamala","url":"https:\/\/kittenkamala.com\/","description":"Core Team Rep 2026\r\nHosting Team Rep 2026\r\n\r\nWordPress contributions sponsored by Elementor!\r\n\r\nTech nerd + artist. Full stack web dev with team leadership and project management experience, with some UIUX and product development mixed in. MFA from UCLA.\r\n\r\nPast contributions: \r\nRelease Coordinator WordPress 6.9 and 7.0\r\nHosting Team Rep 2019-2023\r\nTech Lead Cohort contributor WP 5.6 \r\nWPLA MeetUps organizer (but not currently hosting events)\r\nRelease Model Working Group 2019-2020\r\nWordCamp LA organizer 2020\r\nSpoken at and\/or helped with contributor day tables at a few camps and meetups including:  WCAsia, WCEU, WCUS, WC Las Vegas, WC\/WP Santa Clarita, WC\/WP LA\r\nPrevious sponsors include DreamHost, InMotion Hosting, Kanopi Studios","link":"https:\/\/profiles.wordpress.org\/amykamala\/","slug":"amykamala","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16694622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49442,"parent":0,"author":1182764,"author_name":"Jake Spurlock","author_url":"http:\/\/jakespurlock.com","date":"2026-10-07T15:05:08","content":{"rendered":"<p>Wanted to get the Secrets <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> in front of as many people as possible ahead of a potential merge laster this week. <\/p>\n<p><a href=\"https:\/\/core.trac.wordpress.org\/ticket\/66187\" rel=\"nofollow ugc\">Trac<\/a><br \/>\n<a href=\"https:\/\/make.wordpress.org\/core\/2026\/08\/25\/proposal-a-secrets-api-for-wordpress-7-2\/#comment-49441\" rel=\"ugc\">P2<\/a><\/p>\n<p>\/cc @ericmann<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/dev-chat-agenda-oct-07-2026\/#comment-49442","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/70c83ce0b076a495b73ee5823d0007c7b8e340fbc920c61286d2750deafa6a77?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/70c83ce0b076a495b73ee5823d0007c7b8e340fbc920c61286d2750deafa6a77?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/70c83ce0b076a495b73ee5823d0007c7b8e340fbc920c61286d2750deafa6a77?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/1182764"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486"}]}},{"id":49439,"parent":0,"author":8894114,"author_name":"Andrea Fercia","author_url":"http:\/\/www.linkedin.com\/in\/andreafercia","date":"2026-10-07T13:12:29","content":{"rendered":"<p>I published <a href=\"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/proposal-minor-updates-to-the-wordpress-core-css-coding-standards\/\" rel=\"ugc\">a proposal<\/a> for minor updates to the WordPress <span tabindex=\"0\" class=\"glossary-item-container\">CSS<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CSS<\/span> <span class=\"glossary-item-description\">Cascading Style Sheets.<\/span><\/span><\/span> Coding Standards. I would like it to be mentioned during the dev chat. Thank you!<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/dev-chat-agenda-oct-07-2026\/#comment-49439","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/cd18da60d54f0a7374dc62b122ff5050f33fad8c43ce013594f7703a37b9d906?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8894114"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486"}]}},{"id":49436,"parent":0,"author":147990,"author_name":"leemon","author_url":"https:\/\/github.com\/mrleemon","date":"2026-10-07T09:54:47","content":{"rendered":"<p>Apologies for bringing these up again! Could anyone take a look at these open issues when you have a moment? Some already have linked PRs:<\/p>\n<ul>\n<li>Additional <span tabindex=\"0\" class=\"glossary-item-container\">CSS<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CSS<\/span> <span class=\"glossary-item-description\">Cascading Style Sheets.<\/span><\/span><\/span> styles are not generated for Navigation Link blocks on the frontend: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/82171\">#82171<\/a>\n<\/li>\n<li>Add Border and Spacing support to the Navigation, Navigation Link and Navigation Submenu blocks: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/66392\">#66392<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/66483\">#66483<\/a> and <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/68455\">#68455<\/a>\n<\/li>\n<\/ul>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/dev-chat-agenda-oct-07-2026\/#comment-49436","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/147990"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486"}]}},{"id":49435,"parent":0,"author":21066070,"author_name":"Md Khorshed Alam","author_url":"https:\/\/therssoftware.com","date":"2026-10-07T07:28:15","content":{"rendered":"<p>Hi! For the Open Floor, I\u2019d like to request a review on <span tabindex=\"0\" class=\"glossary-item-container\">Trac<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Trac<\/span> <span class=\"glossary-item-description\">An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> <strong><a href=\"https:\/\/core.trac.wordpress.org\/ticket\/66248\">#66248<\/a><\/strong> (PR <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/14063\">#14063<\/a>). It adds the unit tests requested for the `pre_wp_get_image_alttext` <span tabindex=\"0\" class=\"glossary-item-container\">filter<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Filter<\/span> <span class=\"glossary-item-description\">Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> and is ready for a second pair of eyes. (I will be async). Thanks!<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/07\/dev-chat-agenda-oct-07-2026\/#comment-49435","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/8675600e47cb88e8a8a9ce49f76dd7b2579c11931dc01f2f1a93092f21e88ba2?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/8675600e47cb88e8a8a9ce49f76dd7b2579c11931dc01f2f1a93092f21e88ba2?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/8675600e47cb88e8a8a9ce49f76dd7b2579c11931dc01f2f1a93092f21e88ba2?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/21066070"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126486"}]}}]],"wp:term":[[{"id":4424,"link":"https:\/\/make.wordpress.org\/core\/category\/core\/","name":"Core","slug":"core","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/4424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=4424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4194,"link":"https:\/\/make.wordpress.org\/core\/category\/devchat\/","name":"Devchat","slug":"devchat","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/4194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=4194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":5885,"link":"https:\/\/make.wordpress.org\/core\/tag\/7-1\/","name":"7.1","slug":"7-1","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5861,"link":"https:\/\/make.wordpress.org\/core\/tag\/7-2\/","name":"7.2","slug":"7-2","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":31,"link":"https:\/\/make.wordpress.org\/core\/tag\/agenda\/","name":"agenda","slug":"agenda","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2325,"link":"https:\/\/make.wordpress.org\/core\/tag\/core\/","name":"core","slug":"core","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":92,"link":"https:\/\/make.wordpress.org\/core\/tag\/dev-chat\/","name":"dev chat","slug":"dev-chat","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126481,"date":"2026-10-06T16:28:42","date_gmt":"2026-10-06T16:28:42","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126481"},"modified":"2026-10-06T16:28:42","modified_gmt":"2026-10-06T16:28:42","slug":"performance-chat-summary-6-october-2026","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/performance-chat-summary-6-october-2026\/","title":{"rendered":"Performance Chat Summary: 6 October 2026"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The full chat log is available beginning <a href=\"https:\/\/wordpress.slack.com\/archives\/C02KGN5K076\/p1791302442213739\">here on Slack<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WordPress Performance <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> tickets<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/profiles.wordpress.org\/westonruter\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>westonruter<\/a> shared that prefetching has finally been committed in <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/64120\">changeset 64120<\/a>. The next step is to default script and style concatenation to off outside development environments in <a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\/pull\/13090\">PR #13090<\/a>. After that, the plan is to remove <code>load-scripts.php<\/code> and <code>load-styles.php<\/code>, along with the concatenation and compression logic that has been problematic for many years.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Open Floor<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/profiles.wordpress.org\/westonruter\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>westonruter<\/a> noted performance gains in PHPStan 2.3.0: a full uncached analysis of WordPress <span tabindex='0' class='glossary-item-container'>core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> went from 60 seconds to 8 seconds. He shared the <a href=\"https:\/\/phpstan.org\/blog\/phpstan-2-3-leap-in-performance\">PHPStan 2.3.0 release post<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Our next chat will be held on <a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261020T1600\"><abbr class=\"date\" title=\"2026-10-20T16:00:00+00:00\">Tuesday, October 20, 2026 at 16:00 UTC<\/abbr><\/a> in the <a href=\"https:\/\/wordpress.slack.com\/messages\/core-performance\/\">#core-performance channel<\/a> in <a href=\"https:\/\/make.wordpress.org\/chat\/\">Slack<\/a><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/core-performance\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>core-performance<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/hosting\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>hosting<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/performance\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>performance<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/performance-chat\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>performance-chat<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/summary\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>summary<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F06%2Fperformance-chat-summary-6-october-2026%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>The full chat log is available beginning here on Slack. WordPress Performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets @westonruter shared that prefetching has finally been committed in changeset 64120. The next step is to default script and style concatenation to [&hellip;]<\/p>\n","protected":false},"author":22004791,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1173],"tags":[4777,2745,178,3955,1398],"class_list":["post-126481","post","type-post","status-publish","format-standard","hentry","category-meetings","tag-core-performance","tag-hosting","tag-performance","tag-performance-chat","tag-summary","mentions-westonruter","author-b1ink0"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wU1","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/22004791"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126481"}],"version-history":[{"count":1,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126481\/revisions"}],"predecessor-version":[{"id":126482,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126481\/revisions\/126482"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":22004791,"name":"Aditya Dhade","url":"https:\/\/b1ink0.com","description":"WordPress Core Performance Team Rep","link":"https:\/\/profiles.wordpress.org\/b1ink0\/","slug":"b1ink0","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/0d9557bf3396560b348c3e32969208638fdd0cccdd1e28a5ce6e70c0cddd87cf?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/0d9557bf3396560b348c3e32969208638fdd0cccdd1e28a5ce6e70c0cddd87cf?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/0d9557bf3396560b348c3e32969208638fdd0cccdd1e28a5ce6e70c0cddd87cf?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/22004791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"wp:term":[[{"id":1173,"link":"https:\/\/make.wordpress.org\/core\/category\/meetings\/","name":"Meetings","slug":"meetings","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":4777,"link":"https:\/\/make.wordpress.org\/core\/tag\/core-performance\/","name":"core-performance","slug":"core-performance","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/4777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=4777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2745,"link":"https:\/\/make.wordpress.org\/core\/tag\/hosting\/","name":"hosting","slug":"hosting","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":178,"link":"https:\/\/make.wordpress.org\/core\/tag\/performance\/","name":"performance","slug":"performance","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3955,"link":"https:\/\/make.wordpress.org\/core\/tag\/performance-chat\/","name":"performance-chat","slug":"performance-chat","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/3955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=3955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":1398,"link":"https:\/\/make.wordpress.org\/core\/tag\/summary\/","name":"summary","slug":"summary","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/1398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=1398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126313,"date":"2026-10-06T13:12:25","date_gmt":"2026-10-06T13:12:25","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126313"},"modified":"2026-10-06T13:45:58","modified_gmt":"2026-10-06T13:45:58","slug":"wordpress-7-2-release-party-schedule","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/","title":{"rendered":"WordPress 7.2 Release Party Schedule"},"content":{"rendered":"<p class=\"wp-block-paragraph\">WordPress 7.2 is scheduled for release on <strong>December 8, 2026<\/strong>! Below is the proposed calendar with expected start times for each release party, and the release squad contributors involved in release parties for the upcoming <a href=\"https:\/\/make.wordpress.org\/core\/7-2\/\" data-type=\"link\" data-id=\"https:\/\/make.wordpress.org\/core\/7-2\/\">7.2 milestone<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This release party schedule will stay in effect during the <span tabindex='0' class='glossary-item-container'>Release Candidate<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span> phase and the final release of WordPress 7.2. This enables contributors to attend and assist with release testing during the final weeks of the release cycle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As always, there may be last-minute adjustments. The release squad will do its best to communicate any changes promptly by publishing a post on the change, and updating this post as the canonical reference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Join us for the 7.2 release parties in the <\/strong><a href=\"https:\/\/wordpress.slack.com\/archives\/C02RQBWTW\"><strong>#core channel on the Making WordPress Slack<\/strong><\/a><strong>!<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Release Schedule<\/h2>\n\n\n\n<figure class=\"wp-block-table alignfull is-style-regular\"><table><thead><tr><th><strong>Date (UTC)<\/strong><\/th><th><strong>Milestone<\/strong><\/th><th><strong>Emcee \/ <span tabindex='0' class='glossary-item-container'>Release Lead<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Release Lead<\/span> <span class='glossary-item-description'>The community member ultimately responsible for the Release.<\/span><\/span><\/span><\/strong><\/th><th><strong><span tabindex='0' class='glossary-item-container'>Committer<span class='glossary-item-hidden-content'><span class='glossary-item-header'>committer<\/span> <span class='glossary-item-description'>A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and\/or for a specific component.<\/span><\/span><\/span><\/strong><\/th><th><strong>Security<\/strong><\/th><th><strong>Mission Control (Coordination)<\/strong><\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261020T1500\"><abbr class=\"date\" title=\"2026-10-20T15:00:00+00:00\">October 20, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td><span tabindex='0' class='glossary-item-container'>Beta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Beta<\/span> <span class='glossary-item-description'>A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span> 1<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261027T1500\"><abbr class=\"date\" title=\"2026-10-27T15:00:00+00:00\">October 27, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>Beta 2<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261103T1500\"><abbr class=\"date\" title=\"2026-11-03T15:00:00+00:00\">November 3, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>Beta 3<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261110T1500\"><abbr class=\"date\" title=\"2026-11-10T15:00:00+00:00\">November 10, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>Beta 4<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261117T1500\"><abbr class=\"date\" title=\"2026-11-17T15:00:00+00:00\">November 17, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td><span tabindex='0' class='glossary-item-container'>RC<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span> 1<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261124T1500\"><abbr class=\"date\" title=\"2026-11-24T15:00:00+00:00\">November 24, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>RC 2<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261201T1500\"><abbr class=\"date\" title=\"2026-12-01T15:00:00+00:00\">December 1, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>RC 3<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261207T1500\"><abbr class=\"date\" title=\"2026-12-07T15:00:00+00:00\">December 7, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>Dry Run \/ 24-Hour Code Freeze<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><tr><td>WordPress 7.2 Final Release<br><a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20261208T1500\"><abbr class=\"date\" title=\"2026-12-08T15:00:00+00:00\">December 8, 2026 at 15:00 UTC<\/abbr><\/a><\/td><td>General Release<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><td>TBA<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Join the Party<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All parties happen in the <a href=\"https:\/\/wordpress.slack.com\/archives\/C02RQBWTW\"> #core channel on Slack<\/a>.<\/li>\n\n\n\n<li>Everyone is welcome! First-timers, veteran contributors, and all those curious about the process are invited.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Here are detailed instructions on <a href=\"https:\/\/make.wordpress.org\/test\/2025\/03\/04\/how-to-contribute-to-wp-6-8-release-party\/\">how to contribute to a release party<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thank you to every contributor and community member that helps make 7.2 a success. See you at the parties!<\/p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props to <a href=\"https:\/\/profiles.wordpress.org\/jeffpaul\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jeffpaul<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/audrasjb\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>audrasjb<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/amykamala\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>amykamala<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/mamaduka\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mamaduka<\/a>, and <a href=\"https:\/\/profiles.wordpress.org\/peterwilsoncc\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>peterwilsoncc<\/a> for peer review.<br><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/7-1\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>7-1<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/release\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>release<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F06%2Fwordpress-7-2-release-party-schedule%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>WordPress 7.2 is scheduled for release on December 8, 2026! Below is the proposed calendar with expected start times for each release party, and the release squad contributors involved in release parties for the upcoming 7.2 milestone. This release party schedule will stay in effect during the Release Candidaterelease candidate One of the final stages [&hellip;]<\/p>\n","protected":false},"author":15049054,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[5885,197],"class_list":["post-126313","post","type-post","status-publish","format-standard","hentry","category-general","tag-7-1","tag-release","mentions-amykamala","mentions-audrasjb","mentions-jeffpaul","mentions-mamaduka","mentions-peterwilsoncc","author-davidbaumwald"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wRj","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/15049054"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126313"}],"version-history":[{"count":1,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313\/revisions"}],"predecessor-version":[{"id":126480,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313\/revisions\/126480"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":15049054,"name":"David Baumwald","url":"https:\/\/dream-encode.com","description":"am potato","link":"https:\/\/profiles.wordpress.org\/davidbaumwald\/","slug":"davidbaumwald","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/15049054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49432,"parent":49430,"author":15049054,"author_name":"David Baumwald","author_url":"https:\/\/dream-encode.com","date":"2026-10-06T13:50:22","content":{"rendered":"<p>I\u2019ll slot you in those roles \ud83d\ude09<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/#comment-49432","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/15049054"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49430"}]}},{"id":49431,"parent":49429,"author":15049054,"author_name":"David Baumwald","author_url":"https:\/\/dream-encode.com","date":"2026-10-06T13:50:05","content":{"rendered":"<p>Thanks JB!<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/#comment-49431","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/3b04b6a0e3f18167632b7fc0ff0848ca2175b966fff7df8deed31d69416c8699?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/15049054"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49429"}]}},{"id":49430,"parent":0,"author":8670591,"author_name":"Jb Audras","author_url":"https:\/\/jeanbaptisteaudras.com","date":"2026-10-06T13:48:01","content":{"rendered":"<p>Thanks for putting this together David.<br \/>\nNoting that I\u2019m available for emcee or <span tabindex=\"0\" class=\"glossary-item-container\">committer<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">committer<\/span> <span class=\"glossary-item-description\">A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and\/or for a specific component.<\/span><\/span><\/span>\/security duties for any release.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/#comment-49430","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8670591"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49430"}]}},{"id":49429,"parent":49428,"author":8670591,"author_name":"Jb Audras","author_url":"https:\/\/jeanbaptisteaudras.com","date":"2026-10-06T13:46:47","content":{"rendered":"<p>Fixed, thanks.<br \/>\nThe old <span tabindex=\"0\" class=\"glossary-item-container\">URL<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">URL<\/span> <span class=\"glossary-item-description\">A specific web address of a website or web page on the Internet, such as a website\u2019s URL www.wordpress.org<\/span><\/span><\/span> also redirects to the new one.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/#comment-49429","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/6f505c6be9a951929a99becb6b413dcfa583a5ca3dd0f7320766fee1481f0f82?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/8670591"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49428"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49429"}]}},{"id":49428,"parent":0,"author":14520640,"author_name":"Hans-Gerd Gerhards","author_url":"https:\/\/haurand.com","date":"2026-10-06T13:32:15","content":{"rendered":"<p>Quick note: The link might be a little confusing because it refers to WordPress 7.1: <code>wordpress-7-1-release-party-schedule-2\/<\/code><\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/06\/wordpress-7-2-release-party-schedule\/#comment-49428","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/ab62eb42e842b6adca897024806bbf5eaebe9896ac46f2d6823973e6d9d27d42?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/ab62eb42e842b6adca897024806bbf5eaebe9896ac46f2d6823973e6d9d27d42?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/ab62eb42e842b6adca897024806bbf5eaebe9896ac46f2d6823973e6d9d27d42?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14520640"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126313"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49428"}]}}]],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":5885,"link":"https:\/\/make.wordpress.org\/core\/tag\/7-1\/","name":"7.1","slug":"7-1","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":197,"link":"https:\/\/make.wordpress.org\/core\/tag\/release\/","name":"release","slug":"release","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126348,"date":"2026-10-02T17:21:17","date_gmt":"2026-10-02T17:21:17","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126348"},"modified":"2026-10-02T17:21:17","modified_gmt":"2026-10-02T17:21:17","slug":"core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition\/","title":{"rendered":"Core Trac and GitHub Team Spring Cleaning (Southern Hemisphere edition)"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Over the last few days, there have been a few actions taken on <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> and in the WordPress <span tabindex='0' class='glossary-item-container'>GitHub<span class='glossary-item-hidden-content'><span class='glossary-item-header'>GitHub<\/span> <span class='glossary-item-description'>GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the \u2018pull request\u2019 where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. <a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/span><\/span><\/span> organization that are aimed at clarifying who is looking after areas of the project, and making it easier for contributors to do their work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maintainer Cleanup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The lists of <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> Component Maintainers and Core <span tabindex='0' class='glossary-item-container'>Bug Gardeners<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Bug Gardener<\/span> <span class='glossary-item-description'>A contributor who has been given advanced privileges in Trac.<\/span><\/span><\/span> have been updated to remove contributors where they have either moved on from contributing to the project, have not contributed regularly to a given component, or have not <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/tutorials\/linking-your-github-and-w-org-profiles\/\">connected their GitHub and WordPress.org accounts<\/a>. If you feel that you were removed in error, please DM <a href=\"https:\/\/profiles.wordpress.org\/desrosj\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>desrosj<\/a> or <a href=\"https:\/\/profiles.wordpress.org\/jorbin\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jorbin<\/a> in <span tabindex='0' class='glossary-item-container'>Slack<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Slack<\/span> <span class='glossary-item-description'>Slack is a Collaborative Group Chat Platform <a href=\"https:\/\/slack.com\/\">https:\/\/slack.com\/<\/a>. The WordPress community has its own Slack Channel at <a href=\"https:\/\/make.wordpress.org\/chat\/\">https:\/\/make.wordpress.org\/chat\/<\/a><\/span><\/span><\/span> or comment below and you can be re-added.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As always, anyone is welcome to be a Component Maintainer or <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/testing\/bug-gardening\/\">Bug Gardener<\/a>. If you are interested in contributing to the project in these ways, feel free to volunteer in the comments below, share your interest during a <a href=\"https:\/\/make.wordpress.org\/core\/weekly-developer-chats\/\">Core Dev Chat<\/a> or in <a href=\"https:\/\/wordpress.slack.com\/archives\/C02RQBWTW\">#core<\/a>, or stop by a component meeting in Slack if the one you\u2019re interested in <a href=\"https:\/\/make.wordpress.org\/meetings\/\">holds them regularly<\/a>. Additionally, please ensure your <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/tutorials\/linking-your-github-and-w-org-profiles\/\">GitHub and WordPress.org accounts are connected<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WordPress Organization GitHub Teams <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following teams have been added to the <code><a href=\"https:\/\/github.com\/WordPress\/wordpress-develop\">WordPress\/wordpress-develop<\/a><\/code> repository with <span tabindex='0' class='glossary-item-container'>triage<span class='glossary-item-hidden-content'><span class='glossary-item-header'>triage<\/span> <span class='glossary-item-description'>The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.<\/span><\/span><\/span>-level access:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><a href=\"https:\/\/github.com\/orgs\/WordPress\/teams\/gutenberg\">Gutenberg<\/a><\/code>: Contributors with multiple PRs merged to <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span>. This is roughly the Gutenberg equivalent of Trac bug gardeners.<\/li>\n\n\n\n<li><code><a href=\"https:\/\/github.com\/orgs\/WordPress\/teams\/wordpress-core-component-maintainers\">WordPress Core Component Maintainers<\/a><\/code> (newly created): Maintainers have been invited as they are currently listed on the <a href=\"https:\/\/make.wordpress.org\/core\/components\/\">Components page on Make Core<\/a>.<\/li>\n\n\n\n<li><code><a href=\"https:\/\/github.com\/orgs\/WordPress\/teams\/wordpress-core-bug-gardeners\">WordPress Core Bug Gardeners<\/a><\/code> (newly created): Existing Trac Bug Gardeners have been invited.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Members of the <code>WordPress Core PR Triage<\/code> team have also been invited to the new <code>WordPress Core Bug Gardeners<\/code>. Since this group\u2019s permissions and purpose align with the responsibilities of being a <span tabindex='0' class='glossary-item-container'>Bug Gardener<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Bug Gardener<\/span> <span class='glossary-item-description'>A contributor who has been given advanced privileges in Trac.<\/span><\/span><\/span>, the old team was unnecessary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assigning triage-level access will allow team members to request code reviews from other members of the WordPress organization, assign labels, and <a href=\"https:\/\/docs.github.com\/en\/organizations\/managing-user-access-to-your-organizations-repositories\/managing-repository-roles\/repository-roles-for-an-organization\">generally help garden pull requests<\/a>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Efforts have been made to ensure all existing component maintainers and bug gardeners are imported to these groups, but some contributors may have been missed. If you received an invitation, it must be accepted within 7 days. Please comment on this post if you believe you were accidentally missed.<\/p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props <a href=\"https:\/\/profiles.wordpress.org\/desrosj\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>desrosj<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jeffpaul\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jeffpaul<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/lancewillett\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>lancewillett<\/a> for pre-publish review.<\/em><\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F02%2Fcore-trac-and-github-team-spring-cleaning-southern-hemisphere-edition%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>Over the last few days, there have been a few actions taken on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and in the WordPress GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied [&hellip;]<\/p>\n","protected":false},"author":2738372,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[],"class_list":["post-126348","post","type-post","status-publish","format-standard","hentry","category-general","mentions-desrosj","mentions-jeffpaul","mentions-jorbin","mentions-lancewillett","author-jorbin"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wRS","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/2738372"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126348"}],"version-history":[{"count":11,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348\/revisions"}],"predecessor-version":[{"id":126467,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348\/revisions\/126467"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":2738372,"name":"Aaron Jorbin","url":"https:\/\/aaron.jorb.in","description":"Aaron is a polyhistoric man of the web who knows rabble-rousers get shit done. He has led engineering teams responsible for some of the largest and most prominent WordPress sites in the world including Rolling Stone, Variety, WIRED, The New Yorker, and Joe Biden's White House. He is also a WordPress Core Committer that focuses on improving developer happiness and making the internet usable and enjoyable by everyone. You can contact him at https:\/\/aaron.jorb.in\/get-in-touch\/","link":"https:\/\/profiles.wordpress.org\/jorbin\/","slug":"jorbin","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/2738372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49446,"parent":49443,"author":6373861,"author_name":"Manuel Camargo","author_url":"","date":"2026-10-08T08:10:17","content":{"rendered":"<p>Sure, I always preferred to keep things in the open, as it is easier to reuse them when many ask the same question. But I\u2019m also very open to hear from people personally asking when they have doubts and they feel unsure on how to proceed or where to ask to guide them.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition\/#comment-49446","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/6373861"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49443"}]}},{"id":49443,"parent":49418,"author":2738372,"author_name":"Aaron Jorbin","author_url":"https:\/\/aaron.jorb.in","date":"2026-10-07T15:09:52","content":{"rendered":"<p>Welcome back. I\u2019ve re-added you as a maintainer of Mail. <\/p><blockquote><p>as I\u2019m still receiving queries very regularly, mostly via PM<\/p><\/blockquote>\n<p>As the work of maintaining an <span tabindex=\"0\" class=\"glossary-item-container\">open source<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Open Source<\/span> <span class=\"glossary-item-description\">Open Source denotes software for which the original source code is made freely available and may be redistributed and modified.  Open Source **must be** delivered via a licensing model, see GPL.<\/span><\/span><\/span> project is done in the open, I hope you are encouraging these conversations to move into the open.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition\/#comment-49443","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/323cf209e19dd825678e9ccc51bc3f745f96571f1c68af26ae7955c1fa9ad1f2?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/2738372"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348"}],"in-reply-to":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49418"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49443"}]}},{"id":49418,"parent":0,"author":6373861,"author_name":"Manuel Camargo","author_url":"","date":"2026-10-02T20:47:01","content":{"rendered":"<p>Hello, <\/p>\n<p>Today during a conversation in <span tabindex=\"0\" class=\"glossary-item-container\">Trac<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Trac<\/span> <span class=\"glossary-item-description\">An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span>, I noticed that there might have been a mistake, and I\u2019ve been removed from my two components during my short months\u2019 break: Mail and Post\/Post Types.<\/p>\n<p>I would like to preserve the Mail component maintenance preferably, as I\u2019m still receiving queries very regularly, mostly via PM, and I\u2019ve been trying to garden every single <span tabindex=\"0\" class=\"glossary-item-container\">ticket<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">ticket<\/span> <span class=\"glossary-item-description\">Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> in the component dropping from over a hundred to barely a dozen.<\/p>\n<p>On Post\/Post-Types, I\u2019m not that active anymore and not sure when I will be able to get it back, so I prefer to leave it up to your criteria, although there are a more than a handful of members way less active than me for way more time that have been wisely preserved, and personally, I greatly respect them for their seniority in the project. With more than 20 <span tabindex=\"0\" class=\"glossary-item-container\">bug<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">bug<\/span> <span class=\"glossary-item-description\">A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.<\/span><\/span><\/span> scrubs on the Posts component and a massive drop from almost 600 tickets to barely 250 and 0 pending response tickets, they have probably been one of the most epic feats in the history of this software for just one component, but if the leaders of this project truly believe that, I shouldn\u2019t deserve it, and you prefer to keep me away from the Posts component, I\u2019m fine with the decision.<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/core-trac-and-github-team-spring-cleaning-southern-hemisphere-edition\/#comment-49418","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/5bccf439e28a96b79ced740b6c17811af9340bef54767c639c601953de5b1551?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/6373861"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126348"}],"children":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?parent=49418"}]}}]],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[]]}},{"id":125529,"date":"2026-10-02T17:11:11","date_gmt":"2026-10-02T17:11:11","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=125529"},"modified":"2026-10-02T17:11:11","modified_gmt":"2026-10-02T17:11:11","slug":"presence-api-whats-new","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/","title":{"rendered":"Presence API: What&#8217;s new"},"content":{"rendered":"<p class=\"wp-block-paragraph\">An update on the <a href=\"https:\/\/wordpress.org\/plugins\/presence-api\/\">Presence API<\/a> <span tabindex='0' class='glossary-item-container'>feature plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Feature Plugin<\/span> <span class='glossary-item-description'>A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/about\/release-cycle\/features-as-plugins\/\">Features as Plugins<\/a><\/span><\/span><\/span>, <a href=\"https:\/\/make.wordpress.org\/core\/2026\/04\/27\/presence-api-feature-plugin\/\">announced in April<\/a>. Here\u2019s everything that\u2019s shipped since then.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Current version: 0.14.0. Requires WordPress 7.0 and <span tabindex='0' class='glossary-item-container'>PHP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>PHP<\/span> <span class='glossary-item-description'>The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span> 7.4.<\/p>\n\n\n\n<figure class=\"wp-block-image alignfull size-full\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1600\" data-attachment-id=\"126460\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/03-posts-editors-column-4\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png\" data-orig-size=\"2560,1600\" data-comments-opened=\"1\" data-image-title=\"03-posts-editors-column\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-1024x640.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png\" alt='The Posts screen, where four locked posts show a lock icon and a note naming who is editing, such as \"Quinn Roberts is currently editing\". An Editors column on the right shows the faces of everyone in each post.' class=\"wp-image-126460\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png 2560w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-300x188.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-1024x640.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-768x480.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-1536x960.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-2048x1280.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\"><\/a><figcaption class=\"wp-element-caption\">Post locks live in the presence table, so refreshing one no longer bumps the posts cache key.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">In this post<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#whats-new\">What\u2019s new since April<\/a><\/li>\n\n\n\n<li><a href=\"#recording\">Recording and privacy<\/a><\/li>\n\n\n\n<li><a href=\"#multisite\">Multisite<\/a><\/li>\n\n\n\n<li><a href=\"#post-locks\">Post locks<\/a><\/li>\n\n\n\n<li><a href=\"#every-post-type\">Every post type<\/a><\/li>\n\n\n\n<li><a href=\"#who-sees-what\">Who sees what<\/a><\/li>\n\n\n\n<li><a href=\"#ai-agents\">AI agents<\/a><\/li>\n\n\n\n<li><a href=\"#performance\">Performance<\/a><\/li>\n\n\n\n<li><a href=\"#for-developers\">For developers<\/a><\/li>\n\n\n\n<li><a href=\"#feedback\">Feedback welcome<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"whats-new\" class=\"wp-block-heading\">What\u2019s new since April<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every <span tabindex='0' class='glossary-item-container'>avatar<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Avatar<\/span> <span class='glossary-item-description'>An avatar is an image or illustration that specifically refers to a character that represents an online user. It\u2019s usually a square box that appears next to the user\u2019s name.<\/span><\/span><\/span> now requests the right resolution for retina screens (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/481\">#481<\/a>).<\/li>\n\n\n\n<li>The \u201csomeone else updated this\u201d banner shows up again correctly if you dismiss it and someone edits again (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/371\">#371<\/a>).<\/li>\n\n\n\n<li>Keyboard users can reach every item in the <span tabindex='0' class='glossary-item-container'>admin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>admin<\/span> <span class='glossary-item-description'>(and super admin)<\/span><\/span><\/span> bar menu, and focus stays put when the dashboard widgets refresh (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/271\">#271<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/275\">#275<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/390\">#390<\/a>).<\/li>\n\n\n\n<li>One tab now polls and shares results with the rest, background tabs stop sending presence, and idle screens back off automatically (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/300\">#300<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/307\">#307<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/675\">#675<\/a>).<\/li>\n\n\n\n<li>The Editors column and the Online users list refresh on each heartbeat (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/604\">#604<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/606\">#606<\/a>).<\/li>\n\n\n\n<li>Site Health tells you when Heartbeat can\u2019t keep presence current (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/544\">#544<\/a>).<\/li>\n<\/ul>\n\n\n\n<h2 id=\"recording\" class=\"wp-block-heading\">Recording and privacy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recording is on by default. Switch it off for one site on Settings &gt; General, or for every site at once on <span tabindex='0' class='glossary-item-container'>Network<span class='glossary-item-hidden-content'><span class='glossary-item-header'>network<\/span> <span class='glossary-item-description'>(versus site, blog)<\/span><\/span><\/span> Admin &gt; Settings. If either switch is off, recording is off, and post locks keep working either way (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/429\">#429<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/442\">#442<\/a>). A privacy policy section, exporter and eraser cover presence data too (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/449\">#449<\/a>).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"199\" data-attachment-id=\"126374\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/05-settings-recording-3\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2.png\" data-orig-size=\"2000,388\" data-comments-opened=\"1\" data-image-title=\"05-settings-recording\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-1024x199.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-1024x199.png\" alt='Settings &gt; General with a checked \"Record who is working where in the admin\" checkbox under Presence.' class=\"wp-image-126374\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-1024x199.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-300x58.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-763x148.png 763w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2-1536x298.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/05-settings-recording-2.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">Each site has its own switch.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"136\" data-attachment-id=\"126435\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/09-network-settings-recording-2\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1.png\" data-orig-size=\"2236,298\" data-comments-opened=\"1\" data-image-title=\"09-network-settings-recording\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;The network switch overrides every site&amp;#8217;s own setting when it&amp;#8217;s off.&lt;\/p&gt;\n\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-1024x136.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-1024x136.png\" alt='Network Admin Settings with a checked \"Record presence on sites in this network\" checkbox under Presence, noting that switching it off stops recording everywhere, whatever an individual site has chosen.' class=\"wp-image-126435\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-1024x136.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-765x102.png 765w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-300x40.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-1536x205.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/09-network-settings-recording-1-2048x273.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">The network switch overrides every site\u2019s own setting when it\u2019s off.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">From <span tabindex='0' class='glossary-item-container'>WP-CLI<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WP-CLI<\/span> <span class='glossary-item-description'>WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is <a href=\"http:\/\/wp-cli.org\/\">http:\/\/wp-cli.org\/<\/a> <a href=\"https:\/\/make.wordpress.org\/cli\/\">https:\/\/make.wordpress.org\/cli\/<\/a><\/span><\/span><\/span>, run <code>wp presence recording set off<\/code>, or add <code>--network<\/code> for the whole network.<\/p>\n\n\n\n<h2 id=\"multisite\" class=\"wp-block-heading\"><span tabindex='0' class='glossary-item-container'>Multisite<span class='glossary-item-hidden-content'><span class='glossary-item-header'>multisite<\/span> <span class='glossary-item-description'>Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also <strong>network<\/strong>, <strong>blog<\/strong>, <strong>site<\/strong><\/span><\/span><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Network Admin now shows who\u2019s online across every site, with matching REST and WP-CLI. It\u2019s on by default for networks below <code>wp_is_large_network()<\/code>, and the <code>wp_presence_network_aggregation_enabled<\/code> <span tabindex='0' class='glossary-item-container'>filter<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Filter<\/span> <span class='glossary-item-description'>Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> turns it on or off (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/332\">#332<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/365\">#365<\/a>).<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" data-attachment-id=\"126373\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/08-network-users-online\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-scaled.png\" data-orig-size=\"2560,1600\" data-comments-opened=\"1\" data-image-title=\"08-network-users-online\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-1024x640.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-1024x640.png\" alt=\"Network Admin Users screen filtered to Online, with an Online column listing the sites each user is active on.\" class=\"wp-image-126373\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-1024x640.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-300x188.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-768x480.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-1536x960.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/08-network-users-online-2048x1280.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">Each site writes a summary row, so Network Admin reads one table instead of every site\u2019s.<\/figcaption><\/figure>\n\n\n\n<h2 id=\"post-locks\" class=\"wp-block-heading\">Post locks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Post locks now live in the presence table instead of post <span tabindex='0' class='glossary-item-container'>meta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Meta<\/span> <span class='glossary-item-description'>Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.<\/span><\/span><\/span>, so refreshing a lock no longer invalidates every cached post query on sites with a persistent object cache (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/551\">#551<\/a>). Locks keep working with recording switched off (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/644\">#644<\/a>).<\/p>\n\n\n\n<h2 id=\"every-post-type\" class=\"wp-block-heading\">Every post type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Presence works on every post type with an editor, including what the Site Editor has open (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/631\">#631<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/638\">#638<\/a>). Roles that can edit only pages or a <span tabindex='0' class='glossary-item-container'>custom post type<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Custom Post Type<\/span> <span class='glossary-item-description'>WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept.<\/span><\/span><\/span> get presence too (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/637\">#637<\/a>).<\/p>\n\n\n\n<h2 id=\"who-sees-what\" class=\"wp-block-heading\">Who sees what<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Everyone online still appears in the admin bar, but where they are is now behind the <code>view_presence_location<\/code> <span tabindex='0' class='glossary-item-container'>capability<span class='glossary-item-hidden-content'><span class='glossary-item-header'>capability<\/span> <span class='glossary-item-description'>A\u00a0<strong>capability<\/strong>\u00a0is permission to perform one or more types of task. Checking if a user has a capability is performed by the <code>current_user_can<\/code> function. Each user of a WordPress site might have some permissions but not others, depending on their\u00a0role. For example, users who have the Author role usually have permission to edit their own posts (the \u201cedit_posts\u201d capability), but not permission to edit other users\u2019 posts (the \u201cedit_others_posts\u201d capability).<\/span><\/span><\/span>, which maps to <code>list_users<\/code> by default (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/571\">#571<\/a>). Everyone can always see their own. The admin bar shows whole faces beside My Account (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/565\">#565<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/574\">#574<\/a>). A face is ringed in the person\u2019s <span tabindex='0' class='glossary-item-container'>block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> editor color only when you\u2019re both in the same post, the way the editor shows it, and in your admin color scheme everywhere else (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/707\">#707<\/a>).<\/p>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu.png\"><img loading=\"lazy\" decoding=\"async\" width=\"789\" height=\"1024\" data-attachment-id=\"126454\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/01-admin-bar-menu-3\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu.png\" data-orig-size=\"1094,1420\" data-comments-opened=\"1\" data-image-title=\"01-admin-bar-menu\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu-789x1024.png\" data-id=\"126454\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu-789x1024.png\" alt=\"The admin bar's Presence menu, opened from three faces and &quot;16 online&quot;, on the Posts screen. Blake Wilson, Cameron Lee and Harper Carter are listed first because they're on the same screen. Below them, everyone else online is grouped under the post or screen they're on, such as Casey Lewis, Morgan Scott and Riley Nelson under &quot;Investigation: Where the Road Repair Money Went&quot;.\" class=\"wp-image-126454\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu-789x1024.png 789w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu-231x300.png 231w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu-768x997.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/01-admin-bar-menu.png 1094w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\"><\/a><figcaption class=\"wp-element-caption\">With it, administrators see where each person is.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"941\" data-attachment-id=\"126455\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/02-admin-bar-menu-without-location-3\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location.png\" data-orig-size=\"1036,952\" data-comments-opened=\"1\" data-image-title=\"02-admin-bar-menu-without-location\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location-1024x941.png\" data-id=\"126455\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location-1024x941.png\" alt=\"The same Presence menu, seen by Dakota Ramirez, who can't see where other people are. admin, Blake Wilson, Cameron Lee and Harper Carter are listed first because they share the screen, and everyone else online appears as a plain list of names.\" class=\"wp-image-126455\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location-1024x941.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location-300x276.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location-768x706.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/02-admin-bar-menu-without-location.png 1036w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">Without it, editors see who is online but not where.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 id=\"ai-agents\" class=\"wp-block-heading\">AI agents<\/h2>\n\n\n\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 40%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-left wp-block-paragraph\">An AI agent editing over REST or MCP sends no Heartbeat, so it wouldn\u2019t show up on its own. As of 0.13.0, each save writes a presence row for it in that post\u2019s room, and the row expires about 75 seconds after its last save by default. The row appears in the admin bar and the Editors column with an Agent badge (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/653\">#653<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/697\">#697<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/701\">#701<\/a>).<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">The <span tabindex='0' class='glossary-item-container'>plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Plugin<\/span> <span class='glossary-item-description'>A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> doesn\u2019t decide who is an agent. It asks the <a href=\"https:\/\/github.com\/WordPress\/ai\/pull\/961\">Agent Users<\/a> plugin through <code>wpai_is_agent_user()<\/code> when that\u2019s loaded, and any plugin can answer through the <a href=\"https:\/\/github.com\/WordPress\/presence-api#wp_presence_is_agent_user\"><code>wp_presence_is_agent_user<\/code><\/a> filter. With neither, nobody is labeled.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu.png\"><img loading=\"lazy\" decoding=\"async\" width=\"819\" height=\"1024\" data-attachment-id=\"126453\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/07-agent-in-menu-2\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu.png\" data-orig-size=\"1094,1368\" data-comments-opened=\"1\" data-image-title=\"07-agent-in-menu\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu-819x1024.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu-819x1024.png\" alt='The Presence menu with Editorial Assistant, marked with an \"Agent\" badge, listed under \"Weekend Arts Guide\" next to Alex Smith.' class=\"wp-image-126453 size-full\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu-819x1024.png 819w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu-240x300.png 240w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu-768x960.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/07-agent-in-menu.png 1094w\" sizes=\"auto, (max-width: 819px) 100vw, 819px\"><\/a><\/figure><\/div>\n\n\n\n<h2 id=\"performance\" class=\"wp-block-heading\">Performance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In 0.12.2, each presence query is read once per request until the table changes, which took a Users screen heartbeat from 6 presence reads to 2 (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/678\">#678<\/a>). The plugin also stopped checking its tables on every admin page (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/657\">#657<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/682\">#682<\/a>), and only one visible tab per site sends the Heartbeat <span tabindex='0' class='glossary-item-container'>ping<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Ping<\/span> <span class='glossary-item-description'>The act of sending a very small amount of data to an end point.  Ping is used in computer science to illicit a response from a target server to test it\u2019s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of \u201cPing me when the meeting starts.\u201d<\/span><\/span><\/span> (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/675\">#675<\/a>).<\/p>\n\n\n\n<h2 id=\"for-developers\" class=\"wp-block-heading\">For developers<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>As of 0.14.0, REST presence entries no longer include color, and <code>wp_presence_get_user_color()<\/code> returns the block editor\u2019s color for a user ID instead of a stored one (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/707\">#707<\/a>).<\/li>\n\n\n\n<li>New functions: <code>wp_presence_exchange()<\/code>, <code>wp_presence_leave()<\/code> and <code>wp_presence_is_available()<\/code>, documented in the <a href=\"https:\/\/github.com\/WordPress\/presence-api#php-api\">PHP API<\/a> section of the README (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/546\">#546<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/519\">#519<\/a>).<\/li>\n\n\n\n<li>Each row carries its own expiry, and reads filter by client ID prefix in SQL (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/541\">#541<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/530\">#530<\/a>).<\/li>\n\n\n\n<li>An admin bar debugger replaces the Dashboard <span tabindex='0' class='glossary-item-container'>widget<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Widget<\/span> <span class='glossary-item-description'>A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.<\/span><\/span><\/span>, and plugins can add their own rows to it (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/652\">#652<\/a>, <a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/666\">#666<\/a>). It\u2019s a development tool: it loads only with <code>WP_DEBUG<\/code> on and isn\u2019t in the <span tabindex='0' class='glossary-item-container'>WordPress.org<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress.org<\/span> <span class='glossary-item-description'>The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization.  <a href=\"https:\/\/wordpress.org\/\">https:\/\/wordpress.org\/<\/a><\/span><\/span><\/span> download, so use a <a href=\"https:\/\/github.com\/WordPress\/presence-api\">git checkout<\/a> or the plugin\u2019s Live Preview in Playground.<\/li>\n\n\n\n<li>Writes work on SQLite (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/pull\/623\">#623<\/a>).<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/gutenberg-sync-engines\/\">Gutenberg Sync Engines<\/a>, a plugin for trying server-aware real-time collaboration, keeps who\u2019s in the editor in the presence table when Presence <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> is active too. To see it, launch the <a href=\"https:\/\/playground.wordpress.net\/?blueprint-url=https:\/\/raw.githubusercontent.com\/WordPress\/presence-api\/main\/blueprint-rtc.json\">RTC Playground<\/a>, which opens a post shared with two seeded collaborators, and open the debugger: their rows start with <code>gse-<\/code>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image alignfull size-full is-style-default\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1390\" data-attachment-id=\"126451\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/08-debugger\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-scaled.png\" data-orig-size=\"2560,1390\" data-comments-opened=\"1\" data-image-title=\"08-debugger\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-1024x556.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-scaled.png\" alt=\"The Presence debugger opened from the admin bar on the Dashboard. It shows a 60-second interval and a 150-second TTL, then the admin\/online room with 101 rows. admin, Kendall Wilson and Toby Martinez are listed first with blue dots, matching the faces of the people on the Dashboard in the admin bar.\" class=\"wp-image-126451\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-scaled.png 2560w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-300x163.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-1024x556.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-768x417.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-1536x834.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/10\/08-debugger-2048x1112.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\"><\/a><figcaption class=\"wp-element-caption\">101 people online, each row showing its client ID and seconds since last seen.<\/figcaption><\/figure>\n\n\n\n<h2 id=\"feedback\" class=\"wp-block-heading\">Feedback welcome<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Discussion and development: <a href=\"https:\/\/wordpress.slack.com\/archives\/C0ASCNMB7FZ\">#feature-presence-api<\/a> on WordPress <span tabindex='0' class='glossary-item-container'>Slack<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Slack<\/span> <span class='glossary-item-description'>Slack is a Collaborative Group Chat Platform <a href=\"https:\/\/slack.com\/\">https:\/\/slack.com\/<\/a>. The WordPress community has its own Slack Channel at <a href=\"https:\/\/make.wordpress.org\/chat\/\">https:\/\/make.wordpress.org\/chat\/<\/a><\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bug reports and discussion: <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\">GitHub Issues<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thank you to <a href=\"https:\/\/profiles.wordpress.org\/mindctrl\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mindctrl<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/iqbal1hossain\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>iqbal1hossain<\/a>, and <a href=\"https:\/\/profiles.wordpress.org\/iamchitti\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>iamchitti<\/a> for reviewing this post.<br><br>Props to <a href=\"https:\/\/profiles.wordpress.org\/intenzi\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>intenzi<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/ashishjii\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ashishjii<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/iamchitti\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>iamchitti<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/iqbal1hossain\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>iqbal1hossain<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/wp24horas\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>wp24horas<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/aldorza\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>aldorza<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/bejignesh\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>bejignesh<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/stfulldev\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>stfulldev<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/obenland\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>obenland<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/moriikuri\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>moriikuri<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/ishitaj34\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ishitaj34<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/theaminuldev\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>theaminuldev<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/muneebashraf\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>muneebashraf<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/mindctrl\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mindctrl<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/zahidui\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>zahidui<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/mitgiselle\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mitgiselle<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jaredrethman\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jaredrethman<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jooahmed\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jooahmed<\/a> and <a href=\"https:\/\/profiles.wordpress.org\/westonruter\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>westonruter<\/a> for contributing.<\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/performance\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>performance<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/presence-api\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>presence-api<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F10%2F02%2Fpresence-api-whats-new%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>Since its announcement, the Presence API feature plugin has grown to show who&#8217;s working where across a whole multisite network, with post locks that leave the posts cache alone.<\/p>\n","protected":false},"author":14040817,"featured_media":126460,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[178,5867],"class_list":["post-125529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","tag-performance","tag-presence-api","mentions-aldorza","mentions-ashishjii","mentions-bejignesh","mentions-iamchitti","mentions-intenzi","mentions-iqbal1hossain","mentions-ishitaj34","mentions-jaredrethman","mentions-jooahmed","mentions-mindctrl","mentions-mitgiselle","mentions-moriikuri","mentions-muneebashraf","mentions-obenland","mentions-stfulldev","mentions-theaminuldev","mentions-westonruter","mentions-wp24horas","mentions-zahidui","author-joefusco"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wEF","jetpack_featured_media_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/125529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14040817"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=125529"}],"version-history":[{"count":67,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/125529\/revisions"}],"predecessor-version":[{"id":126465,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/125529\/revisions\/126465"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/126460"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=125529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=125529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=125529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":14040817,"name":"Joe Fusco","url":"https:\/\/josephfus.co\/","description":"Building WordPress","link":"https:\/\/profiles.wordpress.org\/joefusco\/","slug":"joefusco","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d69ded7ff395fe086c58984188d0dc79a5d492aa212b038805caffbb4b89bf7c?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d69ded7ff395fe086c58984188d0dc79a5d492aa212b038805caffbb4b89bf7c?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d69ded7ff395fe086c58984188d0dc79a5d492aa212b038805caffbb4b89bf7c?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14040817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"wp:featuredmedia":[{"id":126460,"date":"2026-10-02T16:58:10","slug":"03-posts-editors-column-4","type":"attachment","link":"https:\/\/make.wordpress.org\/core\/2026\/10\/02\/presence-api-whats-new\/03-posts-editors-column-4\/#main","title":{"rendered":"03-posts-editors-column"},"author":14040817,"featured_media":0,"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/a2AvED-wTG","caption":{"rendered":"<p>Login to Reply<\/p>\n"},"alt_text":"The Posts screen, where four locked posts show a lock icon and a note naming who is editing, such as \"Quinn Roberts is currently editing\". An Editors column on the right shows the faces of everyone in each post.","media_type":"image","mime_type":"image\/png","media_details":{"width":2560,"height":1600,"file":"2026\/10\/03-posts-editors-column.png","filesize":389829,"sizes":{"medium":{"file":"03-posts-editors-column-300x188.png","width":300,"height":188,"filesize":22653,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-300x188.png"},"large":{"file":"03-posts-editors-column-1024x640.png","width":1024,"height":640,"filesize":155512,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-1024x640.png"},"thumbnail":{"file":"03-posts-editors-column-150x150.png","width":150,"height":150,"filesize":6570,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-150x150.png"},"medium_large":{"file":"03-posts-editors-column-768x480.png","width":768,"height":480,"filesize":100694,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-768x480.png"},"1536x1536":{"file":"03-posts-editors-column-1536x960.png","width":1536,"height":960,"filesize":285439,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-1536x960.png"},"2048x2048":{"file":"03-posts-editors-column-2048x1280.png","width":2048,"height":1280,"filesize":438416,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column-2048x1280.png"},"full":{"file":"03-posts-editors-column.png","width":2560,"height":1600,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""}},"source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/10\/03-posts-editors-column.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/126460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/attachment"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14040817"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126460"}],"wp:attached-to":[{"embeddable":true,"post_type":"post","id":125529,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/125529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":178,"link":"https:\/\/make.wordpress.org\/core\/tag\/performance\/","name":"performance","slug":"performance","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5867,"link":"https:\/\/make.wordpress.org\/core\/tag\/presence-api\/","name":"presence-api","slug":"presence-api","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126247,"date":"2026-09-30T09:35:31","date_gmt":"2026-09-30T09:35:31","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126247"},"modified":"2026-09-30T09:35:32","modified_gmt":"2026-09-30T09:35:32","slug":"whats-new-in-gutenberg-24-1-30-september","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/whats-new-in-gutenberg-24-1-30-september\/","title":{"rendered":"What\u2019s new in Gutenberg 24.1? (30 September)"},"content":{"rendered":"<p class=\"wp-block-paragraph\">\u201cWhat\u2019s new in <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span>\u2026\u201d posts (labeled with the <a href=\"https:\/\/make.wordpress.org\/core\/tag\/gutenberg-new\/\">#gutenberg-new tag<\/a>) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, <a href=\"https:\/\/make.wordpress.org\/core\/2020\/05\/20\/ways-to-keep-up-with-full-site-editing-fse\/\">here\u2019s an overview<\/a> of different ways to keep up with Gutenberg and the Editor.<\/p>\n\n\n\n<div class=\"wp-block-cover has-custom-content-position is-position-bottom-center\" style=\"border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;margin-bottom:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" data-attachment-id=\"118575\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2025\/07\/02\/whats-new-in-gutenberg-21-1\/gb-21-0-whats-new-2\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new.png\" data-orig-size=\"2160,1080\" data-comments-opened=\"1\" data-image-title=\"gb-21-0-whats-new\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-1024x512.png\" class=\"wp-block-cover__image-background wp-image-118575 size-large\" alt=\"\" src=\"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-1024x512.png\" data-object-fit=\"cover\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-1024x512.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-300x150.png 300w, https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-768x384.png 768w, https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-1536x768.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-21-0-whats-new-2048x1024.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\" style=\"background-color:#1e1e1f\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60);font-size:72px;line-height:1.1\"><mark style=\"color:#7b90ff\" class=\"has-inline-color\">What\u2019s new in<\/mark><br>Gutenberg 24.1?<\/p>\n<\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gutenberg 24.1 has been released and is <a href=\"https:\/\/wordpress.org\/plugins\/gutenberg\/\">available for download<\/a>!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This version is all about design tool consistency, with about 140 dedicated PRs. Background image, size and gradient, shadow, borders, link, heading and button colors, typography and text columns now reach almost every <span tabindex='0' class='glossary-item-container'>core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> <span tabindex='0' class='glossary-item-container'>block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span>. And a new text-shadow control arrives alongside them.<\/p>\n\n\n<nav aria-label=\"Table of Contents\" class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"#more-block-design-tools\">More block design tools<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#expanded-text-shadow-support\">Expanded text shadow support<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#media-selection-in-the-block-inspector-panel\">Media selection in the block inspector panel<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#other-notable-highlights\">Other notable highlights<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#changelog\">Changelog<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#first-time-contributors\">First-time contributors<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"#contributors\">Contributors<\/a><\/li><\/ol><\/nav>\n\n\n<h2 id=\"more-block-design-tools\" class=\"wp-block-heading\">More block design tools<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"1024\" data-attachment-id=\"126324\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/whats-new-in-gutenberg-24-1-30-september\/background-controls-2\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1.png\" data-orig-size=\"1124,1470\" data-comments-opened=\"1\" data-image-title=\"background-controls\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1-783x1024.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1-783x1024.png\" alt=\"Screenshot of a block inspector sidebar showing the new background tools.\" class=\"wp-image-126324 size-full\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1-783x1024.png 783w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1-229x300.png 229w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1-768x1004.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/background-controls-1.png 1124w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\"><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">Accordion, Tabs, Comments, Post blocks and more all get the same set of background and color tools (dozens of PRs, check the <a href=\"https:\/\/docs.google.com\/document\/d\/11F0YgjVAfKVbs1vHoM8nDneY-4nhj3vXC-h6bUuyVY8\/edit#enhancements-block-library\">changelog<\/a>). The Group (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83425\">#83425<\/a>), Post Author Biography (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83424\">#83424<\/a>), and Terms List (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83432\">#83432<\/a>) blocks gain column support. Tabs (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83431\">#83431<\/a>) and Tab Panel (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83428\">#83428<\/a>) gain typography controls.<br><\/p>\n<\/div><\/div>\n\n\n\n<h2 id=\"expanded-text-shadow-support\" class=\"wp-block-heading\">Expanded text shadow support<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls.png\"><img loading=\"lazy\" decoding=\"async\" width=\"857\" height=\"1024\" data-attachment-id=\"126325\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/whats-new-in-gutenberg-24-1-30-september\/text-shadow-controls\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls.png\" data-orig-size=\"1156,1382\" data-comments-opened=\"1\" data-image-title=\"text-shadow-controls\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls-857x1024.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls-857x1024.png\" alt=\"Screenshot of a block inspector sidebar showing the new text shadow tools.\" class=\"wp-image-126325 size-full\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls-857x1024.png 857w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls-251x300.png 251w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls-768x918.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/text-shadow-controls.png 1156w\" sizes=\"auto, (max-width: 857px) 100vw, 857px\"><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">The text shadow functionality introduced in Gutenberg 23.5 (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/73320\">#73320<\/a>) now is fully supported by theme.<span tabindex='0' class='glossary-item-container'>json<span class='glossary-item-hidden-content'><span class='glossary-item-header'>JSON<\/span> <span class='glossary-item-description'>JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.<\/span><\/span><\/span>, gains its own panel in Global Styles, and is available by the Paragraph and Heading blocks (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79584\">#79584<\/a>).<\/p>\n<\/div><\/div>\n\n\n\n<h2 id=\"media-selection-in-the-block-inspector-panel\" class=\"wp-block-heading\">Media selection in the block inspector panel<\/h2>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top\" style=\"grid-template-columns:30% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"876\" data-attachment-id=\"126326\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/whats-new-in-gutenberg-24-1-30-september\/media-selection-controls-2\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1.png\" data-orig-size=\"562,876\" data-comments-opened=\"1\" data-image-title=\"media-selection-controls\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1.png\" alt=\"Screenshot of a block inspector sidebar showing the new media selection tools.\" class=\"wp-image-126326 size-full\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1.png 562w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/media-selection-controls-1-192x300.png 192w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\"><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">The block inspector panel of the Cover (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82751\">#82751<\/a>) and Media &amp; Text (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82593\">#82593<\/a>) blocks has a new media selection functionality, matching the Image and Site Logo blocks.<\/p>\n<\/div><\/div>\n\n\n\n<h2 id=\"other-notable-highlights\" class=\"wp-block-heading\">Other notable highlights<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Start page patterns:<\/strong> the modal now has <span tabindex='0' class='glossary-item-container'>category<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Category<\/span> <span class='glossary-item-description'>The 'category' taxonomy lets you group posts \/ content together that share a common bond. Categories are pre-defined and broad ranging.<\/span><\/span><\/span> filtering and search (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81396\">#81396<\/a>).<\/li>\n\n\n\n<li><strong>Add Template:<\/strong> the modal shows each template\u2019s description (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83064\">#83064<\/a>).<\/li>\n\n\n\n<li><strong>Blocks inside patterns:<\/strong> the parent selector now shows for them (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82912\">#82912<\/a>).<\/li>\n\n\n\n<li><strong>Alignment menu:<\/strong> unavailable wide and full alignments are listed as unavailable instead of silently disappearing (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82600\">#82600<\/a>).<\/li>\n\n\n\n<li><strong>Viewport states:<\/strong> position can be set per viewport (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83094\">#83094<\/a>), and custom controls get a public <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> for viewport states (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82741\">#82741<\/a>).<\/li>\n\n\n\n<li><strong>Icon redraw finished:<\/strong> the last 238 icons were converted to strokes (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82540\">#82540<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82754\">#82754<\/a>), completing the redraw <a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/16\/whats-new-in-gutenberg-24-0-16-september\/#other-notable-highlights\">started in 24.0<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"changelog\" class=\"wp-block-heading\">Changelog<\/h2>\n\n\n\n<h3 id=\"features\" class=\"wp-block-heading\">Features<\/h3>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span tabindex='0' class='glossary-item-container'>UI<span class='glossary-item-hidden-content'><span class='glossary-item-header'>UI<\/span> <span class='glossary-item-description'>User interface<\/span><\/span><\/span>: Add CheckboxGroup form primitive. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82556\">82556<\/a>)<\/li>\n\n\n\n<li>UI: Add RadioGroup form primitive. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83038\">83038<\/a>)<\/li>\n\n\n\n<li>UI: Add RadioGroupControl. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83143\">83143<\/a>)<\/li>\n\n\n\n<li>UI: Add Switch form primitive. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83039\">83039<\/a>)<\/li>\n\n\n\n<li>UI: Add SwitchControl component. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83146\">83146<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"enhancements\" class=\"wp-block-heading\">Enhancements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span tabindex='0' class='glossary-item-container'>Admin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>admin<\/span> <span class='glossary-item-description'>(and super admin)<\/span><\/span><\/span> bar: <span tabindex='0' class='glossary-item-container'>Backport<span class='glossary-item-hidden-content'><span class='glossary-item-header'>backport<\/span> <span class='glossary-item-description'>A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.<\/span><\/span><\/span> removal of site icon background from 7.1.1. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83433\">83433<\/a>)<\/li>\n\n\n\n<li>Command Palette: Only add the admin bar node when Core does not provide it. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82733\">82733<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-library\" class=\"wp-block-heading\">Block Library<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Accordion Item: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83197\">83197<\/a>)<\/li>\n\n\n\n<li>Accordion Item: Add link, heading, and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83371\">83371<\/a>)<\/li>\n\n\n\n<li>Accordion Panel: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83201\">83201<\/a>)<\/li>\n\n\n\n<li>Accordion Panel: Add link, heading, and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83374\">83374<\/a>)<\/li>\n\n\n\n<li>Accordion: Add link, heading, and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83373\">83373<\/a>)<\/li>\n\n\n\n<li>Archives: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83198\">83198<\/a>)<\/li>\n\n\n\n<li>Audio: Add link colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83375\">83375<\/a>)<\/li>\n\n\n\n<li>Block API: Add textShadow typography support and UI. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79584\">79584<\/a>)<\/li>\n\n\n\n<li>Block API: Public API for supporting viewport states in custom controls. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82741\">82741<\/a>)<\/li>\n\n\n\n<li>Block API: Re-enable editableRoot for multi-selection on mobile web. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81542\">81542<\/a>)<\/li>\n\n\n\n<li>Breadcrumbs: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83202\">83202<\/a>)<\/li>\n\n\n\n<li>Buttons: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83203\">83203<\/a>)<\/li>\n\n\n\n<li>Code: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83204\">83204<\/a>)<\/li>\n\n\n\n<li>Code: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83014\">83014<\/a>)<\/li>\n\n\n\n<li>Column: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83205\">83205<\/a>)<\/li>\n\n\n\n<li>Columns: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83206\">83206<\/a>)<\/li>\n\n\n\n<li>Comment Author Name: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83207\">83207<\/a>)<\/li>\n\n\n\n<li>Comment Content: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83208\">83208<\/a>)<\/li>\n\n\n\n<li>Comment Content: Add heading and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83376\">83376<\/a>)<\/li>\n\n\n\n<li>Comment Date: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83209\">83209<\/a>)<\/li>\n\n\n\n<li>Comment Edit Link: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83210\">83210<\/a>)<\/li>\n\n\n\n<li>Comment Reply Link: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83211\">83211<\/a>)<\/li>\n\n\n\n<li>Comments Next Page: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83215\">83215<\/a>)<\/li>\n\n\n\n<li>Comments Page Numbers: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83216\">83216<\/a>)<\/li>\n\n\n\n<li>Comments Pagination: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83219\">83219<\/a>)<\/li>\n\n\n\n<li>Comments Previous Page: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83220\">83220<\/a>)<\/li>\n\n\n\n<li>Comments Title: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83217\">83217<\/a>)<\/li>\n\n\n\n<li>Comments: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83212\">83212<\/a>)<\/li>\n\n\n\n<li>Comments: Add button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83378\">83378<\/a>)<\/li>\n\n\n\n<li>Cover: Add a Media section to the block inspector panel. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82751\">82751<\/a>)<\/li>\n\n\n\n<li>Details: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83222\">83222<\/a>)<\/li>\n\n\n\n<li>Details: Add heading and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83381\">83381<\/a>)<\/li>\n\n\n\n<li>Details: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83021\">83021<\/a>)<\/li>\n\n\n\n<li>File: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83223\">83223<\/a>)<\/li>\n\n\n\n<li>Footnotes: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83224\">83224<\/a>)<\/li>\n\n\n\n<li>Footnotes: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83044\">83044<\/a>)<\/li>\n\n\n\n<li>Gallery: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83225\">83225<\/a>)<\/li>\n\n\n\n<li>Gallery: Enable viewport state values for Gallery aspect ratio. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82233\">82233<\/a>)<\/li>\n\n\n\n<li>Group: Add text columns support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83425\">83425<\/a>)<\/li>\n\n\n\n<li>Heading: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83226\">83226<\/a>)<\/li>\n\n\n\n<li>Heading: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83045\">83045<\/a>)<\/li>\n\n\n\n<li>Home Link: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83230\">83230<\/a>)<\/li>\n\n\n\n<li>Home Link: Add border support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83360\">83360<\/a>)<\/li>\n\n\n\n<li>Home Link: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83046\">83046<\/a>)<\/li>\n\n\n\n<li>Icon block: Don\u2019t render non-public icons on the frontend. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82774\">82774<\/a>)<\/li>\n\n\n\n<li>Latest Comments: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83227\">83227<\/a>)<\/li>\n\n\n\n<li>Latest Comments: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83047\">83047<\/a>)<\/li>\n\n\n\n<li>Latest Posts: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83228\">83228<\/a>)<\/li>\n\n\n\n<li>Latest Posts: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83051\">83051<\/a>)<\/li>\n\n\n\n<li>Login\/out: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83229\">83229<\/a>)<\/li>\n\n\n\n<li>Login\/out: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83050\">83050<\/a>)<\/li>\n\n\n\n<li>Math: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83231\">83231<\/a>)<\/li>\n\n\n\n<li>Math: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83052\">83052<\/a>)<\/li>\n\n\n\n<li>Math: Improve inline block UI. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/77743\">77743<\/a>)<\/li>\n\n\n\n<li>Media &amp; Text: Add a Media section to the block inspector panel. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82593\">82593<\/a>)<\/li>\n\n\n\n<li>Media &amp; Text: Add button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83380\">83380<\/a>)<\/li>\n\n\n\n<li>Navigation Overlay Close: Add border support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83362\">83362<\/a>)<\/li>\n\n\n\n<li>Navigation Overlay Close: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83053\">83053<\/a>)<\/li>\n\n\n\n<li>Next Page: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83232\">83232<\/a>)<\/li>\n\n\n\n<li>No Results: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83233\">83233<\/a>)<\/li>\n\n\n\n<li>No Results: Add heading and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83382\">83382<\/a>)<\/li>\n\n\n\n<li>No Results: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83054\">83054<\/a>)<\/li>\n\n\n\n<li>Page List: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83234\">83234<\/a>)<\/li>\n\n\n\n<li>Page List: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83056\">83056<\/a>)<\/li>\n\n\n\n<li>Page Numbers: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83235\">83235<\/a>)<\/li>\n\n\n\n<li>Pagination: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83236\">83236<\/a>)<\/li>\n\n\n\n<li>Playlist: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83055\">83055<\/a>)<\/li>\n\n\n\n<li>Post Author Biography: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83199\">83199<\/a>)<\/li>\n\n\n\n<li>Post Author Biography: Add text columns support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83424\">83424<\/a>)<\/li>\n\n\n\n<li>Post Author Name: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83200\">83200<\/a>)<\/li>\n\n\n\n<li>Post Comments Count: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83213\">83213<\/a>)<\/li>\n\n\n\n<li>Post Comments Form: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83214\">83214<\/a>)<\/li>\n\n\n\n<li>Post Comments Form: Add button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83377\">83377<\/a>)<\/li>\n\n\n\n<li>Post Content: Add button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83379\">83379<\/a>)<\/li>\n\n\n\n<li>Post Content: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83016\">83016<\/a>)<\/li>\n\n\n\n<li>Post Content: Add text align support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83427\">83427<\/a>)<\/li>\n\n\n\n<li>Post Date: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83218\">83218<\/a>)<\/li>\n\n\n\n<li>Post <span tabindex='0' class='glossary-item-container'>Excerpt<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Excerpt<\/span> <span class='glossary-item-description'>An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin\u2019s metabox.<\/span><\/span><\/span>: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83221\">83221<\/a>)<\/li>\n\n\n\n<li>Post Excerpt: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83018\">83018<\/a>)<\/li>\n\n\n\n<li>Post Navigation Link: Add border and spacing support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83122\">83122<\/a>)<\/li>\n\n\n\n<li>Post Navigation Link: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83058\">83058<\/a>)<\/li>\n\n\n\n<li>Post Template: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83237\">83237<\/a>)<\/li>\n\n\n\n<li>Post Template: Add heading and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83384\">83384<\/a>)<\/li>\n\n\n\n<li>Post Template: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83059\">83059<\/a>)<\/li>\n\n\n\n<li>Post Terms: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83238\">83238<\/a>)<\/li>\n\n\n\n<li>Post Terms: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83175\">83175<\/a>)<\/li>\n\n\n\n<li>Post Time to Read: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83258\">83258<\/a>)<\/li>\n\n\n\n<li>Post Time to Read: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83194\">83194<\/a>)<\/li>\n\n\n\n<li>Post Title: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83260\">83260<\/a>)<\/li>\n\n\n\n<li>Post Title: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83195\">83195<\/a>)<\/li>\n\n\n\n<li>Preformatted: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83239\">83239<\/a>)<\/li>\n\n\n\n<li>Preformatted: Add link colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83386\">83386<\/a>)<\/li>\n\n\n\n<li>Preformatted: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83174\">83174<\/a>)<\/li>\n\n\n\n<li>Previous Page: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83240\">83240<\/a>)<\/li>\n\n\n\n<li>Pullquote: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83177\">83177<\/a>)<\/li>\n\n\n\n<li>Query Title: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83242\">83242<\/a>)<\/li>\n\n\n\n<li>Query Total: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83243\">83243<\/a>)<\/li>\n\n\n\n<li>Query Total: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83176\">83176<\/a>)<\/li>\n\n\n\n<li>Quote: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83178\">83178<\/a>)<\/li>\n\n\n\n<li>RSS: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83244\">83244<\/a>)<\/li>\n\n\n\n<li>RSS: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83179\">83179<\/a>)<\/li>\n\n\n\n<li>Read More: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83245\">83245<\/a>)<\/li>\n\n\n\n<li>Read More: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83180\">83180<\/a>)<\/li>\n\n\n\n<li>Site Tagline: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83246\">83246<\/a>)<\/li>\n\n\n\n<li>Site Tagline: Add fit text support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83034\">83034<\/a>)<\/li>\n\n\n\n<li>Site Tagline: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83181\">83181<\/a>)<\/li>\n\n\n\n<li>Site Title: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83247\">83247<\/a>)<\/li>\n\n\n\n<li>Site Title: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83182\">83182<\/a>)<\/li>\n\n\n\n<li>Social Icons: Add background gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83249\">83249<\/a>)<\/li>\n\n\n\n<li>Submenu: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83185\">83185<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83248\">83248<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Add border support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83363\">83363<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Add link, heading, and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83389\">83389<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83183\">83183<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Add typography support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83426\">83426<\/a>)<\/li>\n\n\n\n<li>Tab Panels: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83250\">83250<\/a>)<\/li>\n\n\n\n<li>Tab Panels: Add button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83388\">83388<\/a>)<\/li>\n\n\n\n<li>Tab Panels: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83184\">83184<\/a>)<\/li>\n\n\n\n<li>Tab Panels: Add typography support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83428\">83428<\/a>)<\/li>\n\n\n\n<li>Table of Contents: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83251\">83251<\/a>)<\/li>\n\n\n\n<li>Table of Contents: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83187\">83187<\/a>)<\/li>\n\n\n\n<li>Table of Contents: Add text align support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83430\">83430<\/a>)<\/li>\n\n\n\n<li>Tabs: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83252\">83252<\/a>)<\/li>\n\n\n\n<li>Tabs: Add border support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83361\">83361<\/a>)<\/li>\n\n\n\n<li>Tabs: Add link, heading, and button colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83390\">83390<\/a>)<\/li>\n\n\n\n<li>Tabs: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83186\">83186<\/a>)<\/li>\n\n\n\n<li>Tabs: Add typography support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83431\">83431<\/a>)<\/li>\n\n\n\n<li>Tag Cloud: Add background and link colour support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83264\">83264<\/a>)<\/li>\n\n\n\n<li>Tag Cloud: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83259\">83259<\/a>)<\/li>\n\n\n\n<li>Tag Cloud: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83188\">83188<\/a>)<\/li>\n\n\n\n<li>Term Count: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83253\">83253<\/a>)<\/li>\n\n\n\n<li>Term Count: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83189\">83189<\/a>)<\/li>\n\n\n\n<li>Term Count: Add text align support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83429\">83429<\/a>)<\/li>\n\n\n\n<li>Term Description: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83254\">83254<\/a>)<\/li>\n\n\n\n<li>Term Description: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83190\">83190<\/a>)<\/li>\n\n\n\n<li>Term Name: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83255\">83255<\/a>)<\/li>\n\n\n\n<li>Term Name: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83191\">83191<\/a>)<\/li>\n\n\n\n<li>Term Template: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83256\">83256<\/a>)<\/li>\n\n\n\n<li>Term Template: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83192\">83192<\/a>)<\/li>\n\n\n\n<li>Terms List: Add background image, size, and gradient support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83257\">83257<\/a>)<\/li>\n\n\n\n<li>Terms List: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83193\">83193<\/a>)<\/li>\n\n\n\n<li>Terms List: Add text columns support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83432\">83432<\/a>)<\/li>\n\n\n\n<li>Verse: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83057\">83057<\/a>)<\/li>\n\n\n\n<li>Video block: Remove GIF variation handling. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82696\">82696<\/a>)<\/li>\n\n\n\n<li>Video: Add shadow support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83196\">83196<\/a>)<\/li>\n\n\n\n<li><span tabindex='0' class='glossary-item-container'>i18n<span class='glossary-item-hidden-content'><span class='glossary-item-header'>i18n<\/span> <span class='glossary-item-description'>Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see <a href=\"#l10n\">localization<\/a>. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.<\/span><\/span><\/span>: Add context to breadcrumbs area label. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78134\">78134<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Autocomplete: Show focus with design system\u2019s focus ring. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82766\">82766<\/a>)<\/li>\n\n\n\n<li>Links: Update LinkControl and LinkPicker to use Badge from wordpress\/ui. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82684\">82684<\/a>)<\/li>\n\n\n\n<li>BoxControl: Migrate the side indicator to an SCSS module. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82570\">82570<\/a>)<\/li>\n\n\n\n<li>Checkbox: Align CheckboxControl border, hover, and disabled colors with UI. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83271\">83271<\/a>)<\/li>\n\n\n\n<li>Checkbox: Align CheckboxControl checkmark and disabled styles with UI. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82555\">82555<\/a>)<\/li>\n\n\n\n<li>Checkbox: Expand hit target without changing visual size. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82597\">82597<\/a>)<\/li>\n\n\n\n<li>Circular Option Picker: Show focus with button\u2019s outline ring. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82521\">82521<\/a>)<\/li>\n\n\n\n<li>Custom Gradient Picker: Show the control point\u2019s focus ring with the design system\u2019s outline. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82834\">82834<\/a>)<\/li>\n\n\n\n<li>DataViews: Let a picker compose its footer from the page select and its actions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83281\">83281<\/a>)<\/li>\n\n\n\n<li>Deprecate Divider. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83040\">83040<\/a>)<\/li>\n\n\n\n<li>Deprecate ResponsiveWrapper. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83347\">83347<\/a>)<\/li>\n\n\n\n<li>Deprecate Scrollable. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83273\">83273<\/a>)<\/li>\n\n\n\n<li>Deprecate ZStack. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83344\">83344<\/a>)<\/li>\n\n\n\n<li>Elevation: Deprecate Elevation. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83269\">83269<\/a>)<\/li>\n\n\n\n<li>Elevation: Migrate from Emotion to SCSS modules. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82572\">82572<\/a>)<\/li>\n\n\n\n<li>Grid: Migrate Emotion styles to SCSS Modules. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82571\">82571<\/a>)<\/li>\n\n\n\n<li>Notes: Use UI Menu for note actions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81930\">81930<\/a>)<\/li>\n\n\n\n<li>Palette: Use wordpress\/ui Menu for palette options. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82768\">82768<\/a>)<\/li>\n\n\n\n<li>Radio: Expand hit target without changing visual size. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83275\">83275<\/a>)<\/li>\n\n\n\n<li>Select Positioner: Revert to Base UI alignItemWithTrigger default. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82043\">82043<\/a>)<\/li>\n\n\n\n<li>Snackbar: Clean up legacy focus\/button overrides in Snackbar and Notice. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82640\">82640<\/a>)<\/li>\n\n\n\n<li>Storybook: Fold Foundations, DataViews, Fields, Admin UI and Icons under Design System. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82430\">82430<\/a>)<\/li>\n\n\n\n<li>Storybook: Group <span tabindex='0' class='glossary-item-container'>Widget<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Widget<\/span> <span class='glossary-item-description'>A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.<\/span><\/span><\/span> Primitives, Widget Dashboard and Grid under Widgets. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82431\">82431<\/a>)<\/li>\n\n\n\n<li>Storybook: Group component packages under Components. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82433\">82433<\/a>)<\/li>\n\n\n\n<li>Storybook: Group the editor UI under Editor. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82432\">82432<\/a>)<\/li>\n\n\n\n<li>Storybook: Guard the set of top-level <span tabindex='0' class='glossary-item-container'>sidebar<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Sidebar<\/span> <span class='glossary-item-description'>A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.<\/span><\/span><\/span> folders with a test. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82436\">82436<\/a>)<\/li>\n\n\n\n<li>Storybook: List every top-level folder in the sidebar order, design system first. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82429\">82429<\/a>)<\/li>\n\n\n\n<li>Storybook: Remove the legacy Tokens pages. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82434\">82434<\/a>)<\/li>\n\n\n\n<li>Storybook: Rewrite the introduction page as the front door of the design system. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82437\">82437<\/a>)<\/li>\n\n\n\n<li>Storybook: Show the component status in the sidebar as status-* tags. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82435\">82435<\/a>)<\/li>\n\n\n\n<li>UI: Add Select.ItemLabel and ItemDescription. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82369\">82369<\/a>)<\/li>\n\n\n\n<li>UI: Add statusContent to searchable selects. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82592\">82592<\/a>)<\/li>\n\n\n\n<li>UI: Tighten Fieldset legend and description gap. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82729\">82729<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"post-editor\" class=\"wp-block-heading\">Post Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Collaborators: Update to use design system\u2019s focus ring in <span tabindex='0' class='glossary-item-container'>header<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Header<\/span> <span class='glossary-item-description'>The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor\u2019s opinion about your content and you\/ your organization\u2019s brand. It may also look different on different screen sizes.<\/span><\/span><\/span> <span tabindex='0' class='glossary-item-container'>avatar<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Avatar<\/span> <span class='glossary-item-description'>An avatar is an image or illustration that specifically refers to a character that represents an online user. It\u2019s usually a square box that appears next to the user\u2019s name.<\/span><\/span><\/span> stack when collaborator is present. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82941\">82941<\/a>)<\/li>\n\n\n\n<li>Editor: Add left border to Notes panel. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83330\">83330<\/a>)<\/li>\n\n\n\n<li>Editor: Use UI Menu for post actions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81922\">81922<\/a>)<\/li>\n\n\n\n<li><span tabindex='0' class='glossary-item-container'>Featured image<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Featured image<\/span> <span class='glossary-item-description'>A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.<\/span><\/span><\/span> field: Support the editor.PostFeaturedImage <span tabindex='0' class='glossary-item-container'>filter<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Filter<\/span> <span class='glossary-item-description'>Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> in the post summary. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83133\">83133<\/a>)<\/li>\n\n\n\n<li>Global Styles: Use UI Menu. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81921\">81921<\/a>)<\/li>\n\n\n\n<li>Global Styles: Switch the <span tabindex='0' class='glossary-item-container'>revisions<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Revisions<\/span> <span class='glossary-item-description'>The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next\/Previous buttons). The display indicates what has changed in each revision.<\/span><\/span><\/span> screen to the DataViews pickerActivity layout. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80856\">80856<\/a>)<\/li>\n\n\n\n<li>Keycodes: Add a shared keyboard shortcut representation helper. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82632\">82632<\/a>)<\/li>\n\n\n\n<li>Media Utils: Stabilize unstableFeaturedImageFlow as featuredImageFlow. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83439\">83439<\/a>)<\/li>\n\n\n\n<li>Patterns: Add category filtering to the start page options patterns modal. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81396\">81396<\/a>)<\/li>\n\n\n\n<li>Post Taxonomies: Replace FormTokenField in the flat term selector. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80967\">80967<\/a>)<\/li>\n\n\n\n<li>Textarea: Replace TextareaAutosize with native textareas and field-sizing. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/64208\">64208<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-editor\" class=\"wp-block-heading\">Block Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Blocks: Highlight the block when its content list item is hovered. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83049\">83049<\/a>)<\/li>\n\n\n\n<li>Blocks: List unavailable wide and full alignments instead of hiding them. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82600\">82600<\/a>)<\/li>\n\n\n\n<li>Block Editor: Consolidate search ranking into one shared module. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83312\">83312<\/a>)<\/li>\n\n\n\n<li>Block Inspector: Enable setting position within viewport states. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83094\">83094<\/a>)<\/li>\n\n\n\n<li>Block Inspector: Improve style states UI. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82649\">82649<\/a>)<\/li>\n\n\n\n<li>Block Inspector: Migrate block-card Badge to UI Badge. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82503\">82503<\/a>)<\/li>\n\n\n\n<li>Block Inspector: Stabilize display of inherited global styles and keep UI changes behind experiment. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82840\">82840<\/a>)<\/li>\n\n\n\n<li>Block Toolbar: Show the parent selector for blocks inside patterns. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82912\">82912<\/a>)<\/li>\n\n\n\n<li>UI: Use UI Menu for bindings and variation transforms. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81925\">81925<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"icons\" class=\"wp-block-heading\">Icons<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add a core-admin collection for the admin interface. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83261\">83261<\/a>)<\/li>\n\n\n\n<li>Allow icons to ship to WordPress Core without exposing them in the Icon block. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82634\">82634<\/a>)<\/li>\n\n\n\n<li>Icons: Stroke conversion \u2013 3rd batch, 142 icon updates. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82540\">82540<\/a>)<\/li>\n\n\n\n<li>Icons: Stroke conversion \u2013 Final batch, 96 icons. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82754\">82754<\/a>)<\/li>\n\n\n\n<li>Move the public property from icons to collections. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83277\">83277<\/a>)<\/li>\n\n\n\n<li>Rebalance a few, add other new icons. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83338\">83338<\/a>)<\/li>\n\n\n\n<li>ship required icons for admin bar and menu with public: False. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79451\">79451<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"dashboard\" class=\"wp-block-heading\">Dashboard<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Widget Dashboard: Default tile padding to padding-lg. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82961\">82961<\/a>)<\/li>\n\n\n\n<li>Widget Dashboard: Show a clipped widget title in the header infotip. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82226\">82226<\/a>)<\/li>\n\n\n\n<li>Widget Dashboard: Use UI Menu for dashboard controls. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81929\">81929<\/a>)<\/li>\n\n\n\n<li>Widget Dashboard: Use UI Spinner and remove Components dependency. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82837\">82837<\/a>)<\/li>\n\n\n\n<li>Widget Primitives: Add HostLink over the links <span tabindex='0' class='glossary-item-container'>capability<span class='glossary-item-hidden-content'><span class='glossary-item-header'>capability<\/span> <span class='glossary-item-description'>A\u00a0<strong>capability<\/strong>\u00a0is permission to perform one or more types of task. Checking if a user has a capability is performed by the <code>current_user_can<\/code> function. Each user of a WordPress site might have some permissions but not others, depending on their\u00a0role. For example, users who have the Author role usually have permission to edit their own posts (the \u201cedit_posts\u201d capability), but not permission to edit other users\u2019 posts (the \u201cedit_others_posts\u201d capability).<\/span><\/span><\/span>. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82952\">82952<\/a>)<\/li>\n\n\n\n<li>Widgets: Carry declarative attributes through the widget pipeline. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82485\">82485<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"dataviews\" class=\"wp-block-heading\">DataViews<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Excerpt field: Render nothing when the excerpt is empty. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82423\">82423<\/a>)<\/li>\n\n\n\n<li>Fields: Use the post type labels in the featured image field and drop mediaUploadProps. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83445\">83445<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"data-layer\" class=\"wp-block-heading\">Data Layer<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data: Add getResolutionArgs to share a resolution across selector calls. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82638\">82638<\/a>)<\/li>\n\n\n\n<li>Data: Stabilize __unstableNormalizeArgs as normalizeArgs. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83067\">83067<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"site-editor\" class=\"wp-block-heading\">Site Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add Template: Show template descriptions in the template list. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83064\">83064<\/a>)<\/li>\n\n\n\n<li><span tabindex='0' class='glossary-item-container'>Extensible<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Extensible<\/span> <span class='glossary-item-description'>This is the ability to add additional functionality to the code. Plugins extend the WordPress core software.<\/span><\/span><\/span> Site Editor: Use the view configuration form for Quick Edit. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82962\">82962<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"bug-fixes\" class=\"wp-block-heading\">Bug Fixes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Env: Preserve complete lifecycle script error output. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82735\">82735<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-library\" class=\"wp-block-heading\">Block Library<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cover: Prevent content cutoff when aspect ratio is set in Safari. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/70152\">70152<\/a>)<\/li>\n\n\n\n<li>Gallery: Skip gap style generation for themes opting out of layout styles. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81633\">81633<\/a>)<\/li>\n\n\n\n<li>Image Block: Prevent global link colors from leaking into linked image borders. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79401\">79401<\/a>)<\/li>\n\n\n\n<li>Image block: Stop interpreting $\/\\ in img attributes as regex backreferences. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79369\">79369<\/a>)<\/li>\n\n\n\n<li>Image: Restore alt text and caption when undoing a media editor save. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82829\">82829<\/a>)<\/li>\n\n\n\n<li>Math: Source the LaTeX from the MathML annotation. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82987\">82987<\/a>)<\/li>\n\n\n\n<li>Navigation: Block appender button is 26\u00d724 instead of square. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82718\">82718<\/a>)<\/li>\n\n\n\n<li>Navigation: Don\u2019t force submenus open inside a custom overlay. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82596\">82596<\/a>)<\/li>\n\n\n\n<li>Navigation: Fix always-open submenus jumping in width on hover. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83142\">83142<\/a>)<\/li>\n\n\n\n<li>Navigation: Fix submenu detection leaks between Navigation blocks. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82366\">82366<\/a>)<\/li>\n\n\n\n<li>Navigation: Multi-line text of menu items is not aligned. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/70917\">70917<\/a>)<\/li>\n\n\n\n<li>Pattern block: Run autoembed() before do_blocks(). (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82860\">82860<\/a>)<\/li>\n\n\n\n<li>Playlist: Fix track selector stability. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81760\">81760<\/a>)<\/li>\n\n\n\n<li>Post Title: Remove the inline-block from the title link. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80231\">80231<\/a>)<\/li>\n\n\n\n<li>Query Pagination: block ignores the parent block gap in the editor. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82399\">82399<\/a>)<\/li>\n\n\n\n<li>Tab Panel: Hide the shadow on closed panels. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83369\">83369<\/a>)<\/li>\n\n\n\n<li>Term Name: Block skips the term name display filters. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82365\">82365<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-editor\" class=\"wp-block-heading\">Block Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Block Toolbar: Fix parent selector inserter for locked blocks. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83444\">83444<\/a>)<\/li>\n\n\n\n<li>Cover Block: Fix resizable handle visibility on mobile when sidebar is opened. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80355\">80355<\/a>)<\/li>\n\n\n\n<li>Find focusable image map areas. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82736\">82736<\/a>)<\/li>\n\n\n\n<li>Fix: Social Icons: In-between inserter does not work. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83327\">83327<\/a>)<\/li>\n\n\n\n<li>Hide alignment control when nothing available. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83265\">83265<\/a>)<\/li>\n\n\n\n<li>Inner Blocks: Support legacy inherit-based layouts. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82637\">82637<\/a>)<\/li>\n\n\n\n<li>Keep the <span tabindex='0' class='glossary-item-container'>iOS<span class='glossary-item-hidden-content'><span class='glossary-item-header'>iOS<\/span> <span class='glossary-item-description'>The operating system used on iPhones and iPads.<\/span><\/span><\/span> keyboard capitalized after Return inside the editing host. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82911\">82911<\/a>)<\/li>\n\n\n\n<li>Link Control: Only <span tabindex='0' class='glossary-item-container'>tag<span class='glossary-item-hidden-content'><span class='glossary-item-header'>tag<\/span> <span class='glossary-item-description'>A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)<\/span><\/span><\/span> pages as the front page or <span tabindex='0' class='glossary-item-container'>blog<span class='glossary-item-hidden-content'><span class='glossary-item-header'>blog<\/span> <span class='glossary-item-description'>(versus network, site)<\/span><\/span><\/span> home. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83082\">83082<\/a>)<\/li>\n\n\n\n<li>Media: Detect HEIC uploads from the file header rather than the file name. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81737\">81737<\/a>)<\/li>\n\n\n\n<li>Media: Stop injecting crossorigin attributes under Document-Isolation-Policy. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82614\">82614<\/a>)<\/li>\n\n\n\n<li><span tabindex='0' class='glossary-item-container'>PHP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>PHP<\/span> <span class='glossary-item-description'>The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span>-only blocks: Detect enums in array attributes. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83394\">83394<\/a>)<\/li>\n\n\n\n<li>Revise block direct dragging to fix adjacent issues. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/72983\">72983<\/a>)<\/li>\n\n\n\n<li>Rich text: Fix mobile selection hair pin grab at edge of block. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83041\">83041<\/a>)<\/li>\n\n\n\n<li>Rich text: Select an inline image by clicking it, and show the edit UI of the object clicked. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83370\">83370<\/a>)<\/li>\n\n\n\n<li>Rich text: Show the format boundary when the canvas root has focus. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83385\">83385<\/a>)<\/li>\n\n\n\n<li>Show the in-between inserter on wrapped lines. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83276\">83276<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>BorderBoxControl: Restore the split borders layout. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82939\">82939<\/a>)<\/li>\n\n\n\n<li>DataForm: Hide the edit button of disabled fields in the panel layout. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82957\">82957<\/a>)<\/li>\n\n\n\n<li>DataViews: Label clickable grid media by the item title when the title is hidden. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82639\">82639<\/a>)<\/li>\n\n\n\n<li>Fix stray fill rule in SelectControl. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82949\">82949<\/a>)<\/li>\n\n\n\n<li>FocalPointPicker: Fix Sidebar Overflow Issue. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/68915\">68915<\/a>)<\/li>\n\n\n\n<li>Give control labels an explicit foreground color. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83318\">83318<\/a>)<\/li>\n\n\n\n<li>Menu: Fix vertical alignment across item combinations. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82847\">82847<\/a>)<\/li>\n\n\n\n<li>Storybook: Load the media editor package styles in its stories. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83303\">83303<\/a>)<\/li>\n\n\n\n<li>Storybook: Omit the recommended checkmark from the sidebar. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83309\">83309<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"post-editor\" class=\"wp-block-heading\">Post Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avoid re-registering command loaders on every render. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82819\">82819<\/a>)<\/li>\n\n\n\n<li>Distraction Free: Raise top bar above notices when revealed by hover or keyboard focus. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80349\">80349<\/a>)<\/li>\n\n\n\n<li>Editor: Add a fixedRenderingMode prop for contexts with one mode. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82711\">82711<\/a>)<\/li>\n\n\n\n<li>Editor: Coerce multiple to a boolean in the media modal wrapper. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82715\">82715<\/a>)<\/li>\n\n\n\n<li>Editor: Default block gap is ignored in the editor for themes without block gap support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82401\">82401<\/a>)<\/li>\n\n\n\n<li>Editor: Honor post types in post-thumbnails theme support when registering the featured image field. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82773\">82773<\/a>)<\/li>\n\n\n\n<li>Fix post editor: <span tabindex='0' class='glossary-item-container'>Meta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Meta<\/span> <span class='glossary-item-description'>Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.<\/span><\/span><\/span> boxes become invisible in Code Editor view. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78644\">78644<\/a>)<\/li>\n\n\n\n<li>PostLastRevisionPanel: Fix doubled focus ring on the revisions button. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82955\">82955<\/a>)<\/li>\n\n\n\n<li>Template panel: Hide edit and create actions from users who can\u2019t create templates. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82858\">82858<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"site-editor\" class=\"wp-block-heading\">Site Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Site Editor: Restore Global Styles access on the front page. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82624\">82624<\/a>)<\/li>\n\n\n\n<li>Site Editor v2: Show the template on the routes that show the site. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82712\">82712<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"global-styles\" class=\"wp-block-heading\">Global Styles<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rank block search results by title match. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83435\">83435<\/a>)<\/li>\n\n\n\n<li>Retain responsive styles in block style variation partials. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82403\">82403<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"data-layer\" class=\"wp-block-heading\">Data Layer<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Core Data: Fix overwriting scored matches for duplicate ids. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83113\">83113<\/a>)<\/li>\n\n\n\n<li>Core Data: Fix return types on generated save\/delete entity actions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/77162\">77162<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"icons\" class=\"wp-block-heading\">Icons<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Allow rect and circle in the registry sanitizer. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82846\">82846<\/a>)<\/li>\n\n\n\n<li>Restore the dimmed box on the side and corner icons. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82940\">82940<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"dataviews\" class=\"wp-block-heading\">DataViews<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fields: Hide the date, author and password fields when the user can\u2019t publish or reassign. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82844\">82844<\/a>)<\/li>\n\n\n\n<li>Fields: Show the template field to users who can\u2019t create templates. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82857\">82857<\/a>)<\/li>\n\n\n\n<li>Show a message in MediaEdit when the user can\u2019t upload media. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82720\">82720<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"connectors-screen\" class=\"wp-block-heading\">Connectors screen<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add missing listitem role to ConnectorItem. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82664\">82664<\/a>)<\/li>\n\n\n\n<li>Fix Connectors and Fonts pages background color and contrast. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82827\">82827<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"media\" class=\"wp-block-heading\">Media<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Media Editor: Fix crop canvas handlers and rotation ruler in RTL. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83304\">83304<\/a>)<\/li>\n\n\n\n<li>Upload media: Guard processItem against re-entrant dispatch. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83031\">83031<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"accessibility\" class=\"wp-block-heading\"><span tabindex='0' class='glossary-item-container'>Accessibility<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Accessibility<\/span> <span class='glossary-item-description'>Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both \u201cdirect access\u201d (i.e. unassisted) and \u201cindirect access\u201d meaning compatibility with a person\u2019s assistive technology (for example, computer screen readers). (https:\/\/en.wikipedia.org\/wiki\/Accessibility)<\/span><\/span><\/span><\/h3>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UI: Fix highlighted item indicator in forced-colors mode. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82772\">82772<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"widgets-editor\" class=\"wp-block-heading\">Widgets Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fix: Widgets <span tabindex='0' class='glossary-item-container'>customizer<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Customizer<\/span> <span class='glossary-item-description'>Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site\u2019s appearance settings.<\/span><\/span><\/span> Undo and Redo buttons are disabled and the document tools focus style is not visible. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82412\">82412<\/a>)<\/li>\n\n\n\n<li>Widgets: Fix the Welcome Guide menu item triggering a preference speak message. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82395\">82395<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"performance\" class=\"wp-block-heading\">Performance<\/h3>\n\n\n\n<h4 id=\"data-layer\" class=\"wp-block-heading\">Data Layer<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data: Defer async-mode useSelect notification to idle time. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82821\">82821<\/a>)<\/li>\n\n\n\n<li>Data: Keep a pending listener when store not yet registered. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83346\">83346<\/a>)<\/li>\n\n\n\n<li>Data: Optimize store listeners and their execution. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82842\">82842<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-editor\" class=\"wp-block-heading\">Block Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Avoid a store subscription per inserter item. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83434\">83434<\/a>)<\/li>\n\n\n\n<li>Drop the O(n) tie-break in orderBy. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83443\">83443<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stop rendering a hidden drag preview and a media query per draggable. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83423\">83423<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"documentation\" class=\"wp-block-heading\">Documentation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>API Fetch: Document that requests are meant for the current site\u2019s <span tabindex='0' class='glossary-item-container'>REST API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>REST API<\/span> <span class='glossary-item-description'>The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think \u201cphone app\u201d or \u201cwebsite\u201d) can communicate with the data store (think \u201cdatabase\u201d or \u201cfile system\u201d)\n<a href=\"https:\/\/developer.wordpress.org\/rest-api\/\">https:\/\/developer.wordpress.org\/rest-api\/<\/a><\/span><\/span><\/span>. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82373\">82373<\/a>)<\/li>\n\n\n\n<li>Data: Fix the latest changelog entry and structure. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82959\">82959<\/a>)<\/li>\n\n\n\n<li>DataViews README: Clarify readOnly vs isDisabled. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82956\">82956<\/a>)<\/li>\n\n\n\n<li>Docs: Add blank line between since and param\/return in block parser. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82690\">82690<\/a>)<\/li>\n\n\n\n<li>Docs: Add missing since tags to two functions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83116\">83116<\/a>)<\/li>\n\n\n\n<li>Docs: Clarify DEWP asset file naming rule. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80620\">80620<\/a>)<\/li>\n\n\n\n<li>Docs: Clarify dependency extraction asset filename. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78968\">78968<\/a>)<\/li>\n\n\n\n<li>Docs: Clarify parent behavior during block registration. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78967\">78967<\/a>)<\/li>\n\n\n\n<li>Docs: Data: Fix typo in code example for __unstableNormalizeArgs. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83070\">83070<\/a>)<\/li>\n\n\n\n<li>Docs: Document page stability convention. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80632\">80632<\/a>)<\/li>\n\n\n\n<li>Docs: Document published dependency constraints. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80631\">80631<\/a>)<\/li>\n\n\n\n<li>Docs: Document the no-hard-wrap rule for Markdown. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83017\">83017<\/a>)<\/li>\n\n\n\n<li>Docs: Fix the broken Query block link in the Interactivity API guide. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82862\">82862<\/a>)<\/li>\n\n\n\n<li>Docs: Fix the dead anchor in the block development environment list. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82878\">82878<\/a>)<\/li>\n\n\n\n<li>Docs: Guard against ESLint bulk suppression abuse. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82944\">82944<\/a>)<\/li>\n\n\n\n<li>Docs: Replace retired reduce-motion mixin in animation guidelines. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83335\">83335<\/a>)<\/li>\n\n\n\n<li>Docs: Say how long a notice can be, in the copy guide. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81195\">81195<\/a>)<\/li>\n\n\n\n<li>Docs: The image dimensions have been removed from the name. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82828\">82828<\/a>)<\/li>\n\n\n\n<li>Fix typos in comments and test descriptions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83172\">83172<\/a>)<\/li>\n\n\n\n<li>Notice: Add custom icon Storybook example. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82762\">82762<\/a>)<\/li>\n\n\n\n<li>Storybook: Drop CustomSelectControlV2 stories and the unused WIP tag. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83349\">83349<\/a>)<\/li>\n\n\n\n<li>Sync: Add PR link to CHANGELOG. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83037\">83037<\/a>)<\/li>\n\n\n\n<li>UI: Document that public \u2013wp-ui-* <span tabindex='0' class='glossary-item-container'>CSS<span class='glossary-item-hidden-content'><span class='glossary-item-header'>CSS<\/span> <span class='glossary-item-description'>Cascading Style Sheets.<\/span><\/span><\/span> custom properties are frozen. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83147\">83147<\/a>)<\/li>\n\n\n\n<li>UI: Mark Select and SelectControl as recommended. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83030\">83030<\/a>)<\/li>\n\n\n\n<li>UI: Place Fieldset description after the legend in stories. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83144\">83144<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"code-quality\" class=\"wp-block-heading\">Code Quality<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CI: Disable setup-node npm caching in the Create Block packed package job. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82833\">82833<\/a>)<\/li>\n\n\n\n<li>CI: Keep the bundled npm when devEngines is absent. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82823\">82823<\/a>)<\/li>\n\n\n\n<li>CI: Stop actions\/setup-node from invoking the bundled npm. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82775\">82775<\/a>)<\/li>\n\n\n\n<li>Code Modernization: Use null coalescing operator in WP_Block_Parser methods. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82763\">82763<\/a>)<\/li>\n\n\n\n<li>Global Styles: Replace experimental ZStack in the palette preview. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83060\">83060<\/a>)<\/li>\n\n\n\n<li>Interactivity API: Remove the interactivity-router script module data shim. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83011\">83011<\/a>)<\/li>\n\n\n\n<li>Monorepo tools: Move the experimental API audit out of bin\/. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83081\">83081<\/a>)<\/li>\n\n\n\n<li>Release tools: Move the <span tabindex='0' class='glossary-item-container'>plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Plugin<\/span> <span class='glossary-item-description'>A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> ZIP build out of bin\/. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83087\">83087<\/a>)<\/li>\n\n\n\n<li>Storybook: Reject non-module stylesheet imports. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83313\">83313<\/a>)<\/li>\n\n\n\n<li>Tooling: Add wordpress\/monorepo-tools to root devDependencies. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82824\">82824<\/a>)<\/li>\n\n\n\n<li>Tooling: Name the shared tsconfig presets tsconfig.*.json. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83077\">83077<\/a>)<\/li>\n\n\n\n<li>Unit Tests: Resolve @ariakit\/utils through its dependents. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82756\">82756<\/a>)<\/li>\n\n\n\n<li>Upgrade <span tabindex='0' class='glossary-item-container'>React<span class='glossary-item-hidden-content'><span class='glossary-item-header'>React<\/span> <span class='glossary-item-description'>React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.\n<a href=\"https:\/\/reactjs.org\/\">https:\/\/reactjs.org<\/a><\/span><\/span><\/span> 19 to 19.3.0. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82760\">82760<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-editor\" class=\"wp-block-heading\">Block Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Block Mover: Cleanup focus ring override. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83068\">83068<\/a>)<\/li>\n\n\n\n<li>Layout <span tabindex='0' class='glossary-item-container'>hooks<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Hooks<\/span> <span class='glossary-item-description'>In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.<\/span><\/span><\/span>: Roll out usage of normalizeLegacyLayout to the block-editor layout hooks. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82710\">82710<\/a>)<\/li>\n\n\n\n<li>Remove the deprecated __experimentalGroup prop. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83171\">83171<\/a>)<\/li>\n\n\n\n<li>Remove the zero width space hack from getRectangleFromRange. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82977\">82977<\/a>)<\/li>\n\n\n\n<li>Replace denylisted layout components in the Duotone filter label. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83061\">83061<\/a>)<\/li>\n\n\n\n<li>Replace experimental ZStack in overlapping color indicators. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83062\">83062<\/a>)<\/li>\n\n\n\n<li>Rich text: Separate applying the selection from focusing the field. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82581\">82581<\/a>)<\/li>\n\n\n\n<li>Update block visibility badges to use from wordpress\/ui package. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82670\">82670<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"post-editor\" class=\"wp-block-heading\">Post Editor<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Collaborators Presence &amp; Document Bar: Clean up styles by removing overrides. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83013\">83013<\/a>)<\/li>\n\n\n\n<li>Editor: Remove pass-through more menu Slot wrappers. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82759\">82759<\/a>)<\/li>\n\n\n\n<li>Interface: Convert the package to TypeScript. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82753\">82753<\/a>)<\/li>\n\n\n\n<li>Interface: Fix the ActionItem click handler and selector types. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82758\">82758<\/a>)<\/li>\n\n\n\n<li>Post template panel: Remove the dead template read capability check. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82861\">82861<\/a>)<\/li>\n\n\n\n<li>Use WCCheckboxControl alias for legacy CheckboxControl imports. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83145\">83145<\/a>)<\/li>\n\n\n\n<li>Use WCSelectControl alias for legacy SelectControl imports. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83027\">83027<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"components\" class=\"wp-block-heading\">Components<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build: Deduplicate npm dependencies. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82698\">82698<\/a>)<\/li>\n\n\n\n<li>ESLint: Allow string literal IDs in tests and Storybook. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83090\">83090<\/a>)<\/li>\n\n\n\n<li>Packages: Update Ariakit to 0.4.39. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82831\">82831<\/a>)<\/li>\n\n\n\n<li>Prettier: Upgrade wp-prettier to 3.9.6. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82731\">82731<\/a>)<\/li>\n\n\n\n<li>Prettier: Upgrade wp-prettier to 3.9.6 final. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83026\">83026<\/a>)<\/li>\n\n\n\n<li>Storybook: Convert story-only stylesheets to CSS modules. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83272\">83272<\/a>)<\/li>\n\n\n\n<li>Storybook: Place RadioGroup, Switch, and SwitchControl under wordpress-ui. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83314\">83314<\/a>)<\/li>\n\n\n\n<li>Storybook: Remove obsolete manifest extractor render workaround. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83124\">83124<\/a>)<\/li>\n\n\n\n<li>UI: Update Base UI to 1.8.0. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82835\">82835<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"css-styling\" class=\"wp-block-heading\">CSS &amp; Styling<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Button: replace deprecated word-break with overflow-wrap: Anywhere. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82854\">82854<\/a>)<\/li>\n\n\n\n<li>DataViews: replace word-break with overflow-wrap: Anywhere on DataForm panel field control. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82776\">82776<\/a>)<\/li>\n\n\n\n<li>Fields: replace word-break with overflow-wrap: Anywhere on slug permalink. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82693\">82693<\/a>)<\/li>\n\n\n\n<li>Post publish panel: Replace deprecated word-break with overflow-wrap. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82495\">82495<\/a>)<\/li>\n\n\n\n<li>Replace deprecated word-wrap with overflow-wrap in responsive block control. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82855\">82855<\/a>)<\/li>\n\n\n\n<li>Replace deprecated word-wrap with overflow-wrap in screen-reader-text. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82972\">82972<\/a>)<\/li>\n\n\n\n<li>Stylelint: Fix Stylelint configuration and coding standards for font weight numeric values and disallow relative weights. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82778\">82778<\/a>)<\/li>\n\n\n\n<li>Stylelint: Remove deprecated word-wrapping Stylelint suppressions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82426\">82426<\/a>)<\/li>\n\n\n\n<li>UI: Replace deprecated word-wrap with overflow-wrap in VisuallyHidden. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82970\">82970<\/a>)<\/li>\n\n\n\n<li>Workflow: Remove deprecated word-wrapping. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82562\">82562<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"data-layer\" class=\"wp-block-heading\">Data Layer<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data: Remove the unused AsyncModeConsumer export. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82822\">82822<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"block-library\" class=\"wp-block-heading\">Block Library<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calendar Block: Use the args array signature of get_calendar(). (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82943\">82943<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"icons\" class=\"wp-block-heading\">Icons<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test that the registry sanitizer preserves every library icon. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83008\">83008<\/a>)<\/li>\n\n\n\n<li>Test the registry sanitizer with a data provider. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83024\">83024<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"wp-build\" class=\"wp-block-heading\">wp-build<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build: Declare wordpress\/theme as a dev dependency of wordpress\/build. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83129\">83129<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"widget-primitives\" class=\"wp-block-heading\">Widget primitives<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fix prettier lint issues after prettier upgrade. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83015\">83015<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"plugin\" class=\"wp-block-heading\">Plugin<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Icons: Move plugin icon registration out of the 7.1 compat directory. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82832\">82832<\/a>)<\/li>\n\n\n\n<li>Bump minimum required WordPress version to 7.0. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82404\">82404<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"font-library\" class=\"wp-block-heading\">Font Library<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fonts: Remove the deprecated Fonts API BC layer and leftovers. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82813\">82813<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"jest-console\" class=\"wp-block-heading\">Jest console<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test: Remove obsolete internal test setup and transforms. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82761\">82761<\/a>)<\/li>\n<\/ul>\n\n\n\n<h3 id=\"tools\" class=\"wp-block-heading\">Tools<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CI: Run the required <span tabindex='0' class='glossary-item-container'>trunk<span class='glossary-item-hidden-content'><span class='glossary-item-header'>trunk<\/span> <span class='glossary-item-description'>A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running \"trunk\", then you are on the latest revision.<\/span><\/span><\/span> changes check through the pr-baseline action. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82725\">82725<\/a>)<\/li>\n\n\n\n<li>CI: Scope the required trunk changes refresh to what a move can invalidate. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82767\">82767<\/a>)<\/li>\n\n\n\n<li>Project Management: Exclude private APIs configuration from CODEOWNERS. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82750\">82750<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"testing\" class=\"wp-block-heading\">Testing<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automated Testing: Document and validate expected changelog structure. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83043\">83043<\/a>)<\/li>\n\n\n\n<li>Customize Widgets: Fix asynchronous updates in the header history test. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82963\">82963<\/a>)<\/li>\n\n\n\n<li>E2E: Reset preferences in the post editor preload spec. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82818\">82818<\/a>)<\/li>\n\n\n\n<li>Fields: Resolve the MediaEdit picker through the editor.MediaUpload filter. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82678\">82678<\/a>)<\/li>\n\n\n\n<li>Fix the high-<span tabindex='0' class='glossary-item-container'>severity<span class='glossary-item-hidden-content'><span class='glossary-item-header'>severity<\/span> <span class='glossary-item-description'>The seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while <strong>priority<\/strong> is its relationship to other bugs.<\/span><\/span><\/span> adm-zip audit failure in AI development tests. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83170\">83170<\/a>)<\/li>\n\n\n\n<li>Move the unit-test-date.sh script to workspace, rewrite to <span tabindex='0' class='glossary-item-container'>JS<span class='glossary-item-hidden-content'><span class='glossary-item-header'>JS<\/span> <span class='glossary-item-description'>JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.<\/span><\/span><\/span>. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83066\">83066<\/a>)<\/li>\n\n\n\n<li>Scripts: Switch unit tests to Vitest and deprecate Jest tooling. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82843\">82843<\/a>)<\/li>\n\n\n\n<li>Speed up collaboration end-to-end by shortening poll interval. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78746\">78746<\/a>)<\/li>\n\n\n\n<li>Test: Finish repository Vitest <span tabindex='0' class='glossary-item-container'>migration<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Migration<\/span> <span class='glossary-item-description'>Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.<\/span><\/span><\/span> and expand Browser Mode coverage. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82742\">82742<\/a>)<\/li>\n\n\n\n<li>Test: Run rendered browser behavior in Vitest Browser Mode. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/80995\">80995<\/a>)<\/li>\n\n\n\n<li>Test: Strengthen Menu <span tabindex='0' class='glossary-item-container'>iframe<span class='glossary-item-hidden-content'><span class='glossary-item-header'>iframe<\/span> <span class='glossary-item-description'>iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and\/or CSS which is loaded at the time when iframe tag is parsed by the user\u2019s browser.<\/span><\/span><\/span> listener cleanup assertions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82575\">82575<\/a>)<\/li>\n\n\n\n<li>Tests: Isolate deprecation warnings between cases. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83097\">83097<\/a>)<\/li>\n\n\n\n<li>Tests: Remove obsolete internal Jest infrastructure. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82975\">82975<\/a>)<\/li>\n\n\n\n<li>Tests: Update Testing Library DOM to 10.4.2. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83279\">83279<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"build-tooling\" class=\"wp-block-heading\">Build Tooling<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AI development tests: Use repository Node version. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82662\">82662<\/a>)<\/li>\n\n\n\n<li>Dependency Extraction Webpack Plugin: Add global-styles-engine and global-styles-ui as bundled packages. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82589\">82589<\/a>)<\/li>\n\n\n\n<li>Dependency Extraction Webpack Plugin: Pretty-print generated asset output. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79650\">79650<\/a>)<\/li>\n\n\n\n<li>Disable caching when publishing built assets. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79835\">79835<\/a>)<\/li>\n\n\n\n<li>ESLint: Disallow Storybook build-style side-effect imports. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82960\">82960<\/a>)<\/li>\n\n\n\n<li>Packages: Backport the September 10 npm release metadata to trunk. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82709\">82709<\/a>)<\/li>\n\n\n\n<li>Packages: Remove npm from package engines. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83326\">83326<\/a>)<\/li>\n\n\n\n<li>Release: Verify <span tabindex='0' class='glossary-item-container'>SVN<span class='glossary-item-hidden-content'><span class='glossary-item-header'>SVN<\/span> <span class='glossary-item-description'>Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase.<\/span><\/span><\/span> deployment after publication. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82513\">82513<\/a>)<\/li>\n\n\n\n<li>Stylelint: Add\u00a0 \u2013_wp-*\u00a0 to custom-property-pattern rule. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83075\">83075<\/a>)<\/li>\n\n\n\n<li>Stylelint: Add custom-property-pattern to disallow \u2013_gcd-* custom properties. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83025\">83025<\/a>)<\/li>\n\n\n\n<li>Test: Make browser tests independent of execution order. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82743\">82743<\/a>)<\/li>\n\n\n\n<li>TypeScript: Give each widget its own typecheck project. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83328\">83328<\/a>)<\/li>\n\n\n\n<li>Workflows: Refine and complete the push and pull_request <span tabindex='0' class='glossary-item-container'>branch<span class='glossary-item-hidden-content'><span class='glossary-item-header'>branch<\/span> <span class='glossary-item-description'>A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a \"branch\", such as \"the 4.0 branch\".<\/span><\/span><\/span> filters. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82744\">82744<\/a>)<\/li>\n\n\n\n<li>Tooling: Add .mts and .cts support. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83071\">83071<\/a>)<\/li>\n\n\n\n<li>Tooling: Extract shared TypeScript configs into a wordpress\/monorepo workspace. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82334\">82334<\/a>)<\/li>\n\n\n\n<li>UI: Move interaction tests to Browser Mode. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82838\">82838<\/a>)<\/li>\n\n\n\n<li>WP Scripts: Update lerna to 10 and markdownlint-cli to 0.49.1. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/81917\">81917<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"eslint-plugin\" class=\"wp-block-heading\">ESLint plugin<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Check type-only imports for undeclared dependencies. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83336\">83336<\/a>)<\/li>\n\n\n\n<li>Upgrade eslint-plugin-jsdoc to latest version 64. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82727\">82727<\/a>)<\/li>\n<\/ul>\n\n\n\n<h4 id=\"collaboration\" class=\"wp-block-heading\">Collaboration<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sync: Add backwards-compatible Y option to provider creator. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82621\">82621<\/a>)<\/li>\n<\/ul>\n\n\n\n<h2 id=\"first-time-contributors\" class=\"wp-block-heading\">First-time contributors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following PRs were merged by first-time contributors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>@DanielFloeter: Multi-line text of menu items is not aligned. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/70917\">70917<\/a>)<\/li>\n\n\n\n<li><a href=\"https:\/\/profiles.wordpress.org\/gunjanjaswal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>gunjanjaswal<\/a>: Dependency Extraction Webpack Plugin: Pretty-print generated asset output. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/79650\">79650<\/a>)<\/li>\n\n\n\n<li><a href=\"https:\/\/profiles.wordpress.org\/guzel\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>guzel<\/a>: Global Styles: Retain responsive styles in block style variation partials. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82403\">82403<\/a>)<\/li>\n\n\n\n<li>@iiibrapn: The image dimensions have been removed from the name. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82828\">82828<\/a>)<\/li>\n\n\n\n<li>@imraan011: Video block: Remove GIF variation handling. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/82696\">82696<\/a>)<\/li>\n\n\n\n<li>@smeetbuilds: Docs: Clarify dependency extraction asset filename. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78968\">78968<\/a>)<\/li>\n\n\n\n<li><a href=\"https:\/\/profiles.wordpress.org\/som3669\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>som3669<\/a>: Docs: Add missing since tags to two functions. (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/83116\">83116<\/a>)<\/li>\n<\/ul>\n\n\n\n<h2 id=\"contributors\" class=\"wp-block-heading\">Contributors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following contributors merged PRs in this release:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/profiles.wordpress.org\/aaronrobertshaw\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>aaronrobertshaw<\/a> <a href=\"https:\/\/profiles.wordpress.org\/adamsilverstein\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>adamsilverstein<\/a> <a href=\"https:\/\/profiles.wordpress.org\/aduth\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>aduth<\/a> <a href=\"https:\/\/profiles.wordpress.org\/afercia\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>afercia<\/a> <a href=\"https:\/\/profiles.wordpress.org\/alecgeatches\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>alecgeatches<\/a> <a href=\"https:\/\/profiles.wordpress.org\/andrewserong\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>andrewserong<\/a> <a href=\"https:\/\/profiles.wordpress.org\/chihsuan\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>chihsuan<\/a> @ciampo <a href=\"https:\/\/profiles.wordpress.org\/costasovo\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>costasovo<\/a> @DanielFloeter <a href=\"https:\/\/profiles.wordpress.org\/desrosj\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>desrosj<\/a> @dhruvikpatel18 @dknauss @dpmehta <a href=\"https:\/\/profiles.wordpress.org\/ellatrix\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ellatrix<\/a> <a href=\"https:\/\/profiles.wordpress.org\/fushar\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>fushar<\/a> <a href=\"https:\/\/profiles.wordpress.org\/gunjanjaswal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>gunjanjaswal<\/a> <a href=\"https:\/\/profiles.wordpress.org\/guzel\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>guzel<\/a> <a href=\"https:\/\/profiles.wordpress.org\/hbhalodia\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>hbhalodia<\/a> @i-am-chitti @iiibrapn <a href=\"https:\/\/profiles.wordpress.org\/im3dabasia\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>im3dabasia<\/a> @imraan011 @jasmussen <a href=\"https:\/\/profiles.wordpress.org\/jeryj\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jeryj<\/a> <a href=\"https:\/\/profiles.wordpress.org\/jorgefilipecosta\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jorgefilipecosta<\/a> <a href=\"https:\/\/profiles.wordpress.org\/jsnajdr\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jsnajdr<\/a> <a href=\"https:\/\/profiles.wordpress.org\/juanmaguitar\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>juanmaguitar<\/a> @Kgupta62 <a href=\"https:\/\/profiles.wordpress.org\/lonesahilnazir\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>lonesahilnazir<\/a> @MaggieCabrera <a href=\"https:\/\/profiles.wordpress.org\/mamaduka\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>Mamaduka<\/a> <a href=\"https:\/\/profiles.wordpress.org\/manzoorwanijk\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>manzoorwanijk<\/a> <a href=\"https:\/\/profiles.wordpress.org\/mcsf\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mcsf<\/a> <a href=\"https:\/\/profiles.wordpress.org\/mirka\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mirka<\/a> @mukeshpanchal27 <a href=\"https:\/\/profiles.wordpress.org\/mustafabharmal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>Mustafabharmal<\/a> <a href=\"https:\/\/profiles.wordpress.org\/ntsekouras\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ntsekouras<\/a> <a href=\"https:\/\/profiles.wordpress.org\/oandregal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>oandregal<\/a> <a href=\"https:\/\/profiles.wordpress.org\/obliviousharmony\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ObliviousHarmony<\/a> @R1shabh-Gupta @ramonjd <a href=\"https:\/\/profiles.wordpress.org\/retrofox\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>retrofox<\/a> <a href=\"https:\/\/profiles.wordpress.org\/sainathpoojary\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>SainathPoojary<\/a> <a href=\"https:\/\/profiles.wordpress.org\/scruffian\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>scruffian<\/a> @shail-mehta <a href=\"https:\/\/profiles.wordpress.org\/simison\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>simison<\/a> <a href=\"https:\/\/profiles.wordpress.org\/sirreal\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>sirreal<\/a> @smeetbuilds <a href=\"https:\/\/profiles.wordpress.org\/soean\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>Soean<\/a> <a href=\"https:\/\/profiles.wordpress.org\/som3669\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>som3669<\/a> <a href=\"https:\/\/profiles.wordpress.org\/stokesman\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>stokesman<\/a> <a href=\"https:\/\/profiles.wordpress.org\/swissspidy\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>swissspidy<\/a> @t-hamano <a href=\"https:\/\/profiles.wordpress.org\/talldan\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>talldan<\/a> @tellthemachines <a href=\"https:\/\/profiles.wordpress.org\/timse201\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>timse201<\/a> <a href=\"https:\/\/profiles.wordpress.org\/tyxla\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>tyxla<\/a> <a href=\"https:\/\/profiles.wordpress.org\/vrishabhsk\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>Vrishabhsk<\/a> <a href=\"https:\/\/profiles.wordpress.org\/yashjawale\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>yashjawale<\/a> <a href=\"https:\/\/profiles.wordpress.org\/youknowriad\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>youknowriad<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/block-editor\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>block-editor<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/core-editor\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>core-editor<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/gutenberg\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>gutenberg<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/gutenberg-new\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>gutenberg-new<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F09%2F30%2Fwhats-new-in-gutenberg-24-1-30-september%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>\u201cWhat\u2019s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc. https:\/\/wordpress.org\/gutenberg\/\u2026\u201d posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg [&hellip;]<\/p>\n","protected":false},"author":11169573,"featured_media":118641,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[2804,2321,2417,3108],"class_list":["post-126247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","tag-block-editor","tag-core-editor","tag-gutenberg","tag-gutenberg-new","mentions-aaronrobertshaw","mentions-adamsilverstein","mentions-aduth","mentions-afercia","mentions-alecgeatches","mentions-andrewserong","mentions-chihsuan","mentions-costasovo","mentions-desrosj","mentions-ellatrix","mentions-fushar","mentions-gunjanjaswal","mentions-guzel","mentions-hbhalodia","mentions-im3dabasia","mentions-jeryj","mentions-jorgefilipecosta","mentions-jsnajdr","mentions-juanmaguitar","mentions-lonesahilnazir","mentions-mamaduka","mentions-manzoorwanijk","mentions-mcsf","mentions-mirka","mentions-mustafabharmal","mentions-ntsekouras","mentions-oandregal","mentions-obliviousharmony","mentions-param","mentions-retrofox","mentions-return","mentions-sainathpoojary","mentions-scruffian","mentions-simison","mentions-since","mentions-sirreal","mentions-soean","mentions-som3669","mentions-stokesman","mentions-swissspidy","mentions-talldan","mentions-timse201","mentions-tyxla","mentions-vrishabhsk","mentions-wordpress","mentions-yashjawale","mentions-youknowriad","author-copons"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wQf","jetpack_featured_media_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/11169573"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126247"}],"version-history":[{"count":18,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126247\/revisions"}],"predecessor-version":[{"id":126328,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126247\/revisions\/126328"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/118641"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":11169573,"name":"Copons","url":"http:\/\/www.giocagiue.it\/","description":"","link":"https:\/\/profiles.wordpress.org\/copons\/","slug":"copons","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/6697343a1155c9039f861d287dd9761ef12824ac580efedd717404c8603943d4?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/6697343a1155c9039f861d287dd9761ef12824ac580efedd717404c8603943d4?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/6697343a1155c9039f861d287dd9761ef12824ac580efedd717404c8603943d4?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/11169573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"wp:featuredmedia":[{"id":118641,"date":"2025-07-04T02:19:17","slug":"gb-featured","type":"attachment","link":"https:\/\/make.wordpress.org\/core\/2025\/07\/02\/whats-new-in-gutenberg-21-1\/gb-featured\/#main","title":{"rendered":"gb-featured"},"author":16239218,"featured_media":0,"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/a2AvED-uRz","caption":{"rendered":"<p>Login to Reply<\/p>\n"},"alt_text":"","media_type":"image","mime_type":"image\/png","media_details":{"width":2528,"height":1420,"file":"2025\/07\/gb-featured.png","filesize":42398,"sizes":{"medium":{"file":"gb-featured-300x169.png","width":300,"height":169,"filesize":4213,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-300x169.png"},"large":{"file":"gb-featured-1024x575.png","width":1024,"height":575,"filesize":24738,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-1024x575.png"},"thumbnail":{"file":"gb-featured-150x150.png","width":150,"height":150,"filesize":2680,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-150x150.png"},"medium_large":{"file":"gb-featured-768x431.png","width":768,"height":431,"filesize":16444,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-768x431.png"},"1536x1536":{"file":"gb-featured-1536x863.png","width":1536,"height":863,"filesize":43456,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-1536x863.png"},"2048x2048":{"file":"gb-featured-2048x1150.png","width":2048,"height":1150,"filesize":64929,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured-2048x1150.png"},"full":{"file":"gb-featured.png","width":2528,"height":1420,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[]}},"source_url":"https:\/\/make.wordpress.org\/core\/files\/2025\/07\/gb-featured.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/118641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/attachment"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16239218"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=118641"}],"wp:attached-to":[{"embeddable":true,"post_type":"post","id":118564,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/118564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":2804,"link":"https:\/\/make.wordpress.org\/core\/tag\/block-editor\/","name":"block-editor","slug":"block-editor","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2321,"link":"https:\/\/make.wordpress.org\/core\/tag\/core-editor\/","name":"core-editor","slug":"core-editor","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2417,"link":"https:\/\/make.wordpress.org\/core\/tag\/gutenberg\/","name":"gutenberg","slug":"gutenberg","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":3108,"link":"https:\/\/make.wordpress.org\/core\/tag\/gutenberg-new\/","name":"gutenberg-new","slug":"gutenberg-new","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/3108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=3108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126334,"date":"2026-09-30T00:18:38","date_gmt":"2026-09-30T00:18:38","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126334"},"modified":"2026-09-30T00:18:40","modified_gmt":"2026-09-30T00:18:40","slug":"dev-chat-agenda-sep-30-2026","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/dev-chat-agenda-sep-30-2026\/","title":{"rendered":"Dev Chat Agenda \u2013 September 30, 2026"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The next WordPress Developers Chat will take place on <a href=\"https:\/\/www.timeanddate.com\/worldclock\/fixedtime.html?iso=20260930T1500\"><abbr class=\"date\" title=\"2026-09-30T15:00:00+00:00\">Wednesday, September 30, 2026, at 15:00 UTC<\/abbr><\/a> in the\u00a0<a href=\"https:\/\/wordpress.slack.com\/messages\/core\/\">core<\/a>\u00a0channel on\u00a0<a href=\"https:\/\/make.wordpress.org\/chat\/\">Make WordPress Slack<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The live meeting will focus on the discussion for upcoming releases, and have an open floor section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The various curated agenda sections below refer to additional items. If you have\u00a0<span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span>\u00a0requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.<\/p>\n\n\n\n<h2 id=\"announcements-1\" class=\"wp-block-heading\">Announcements \ud83d\udce2<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/23\/gutenbergs-javascript-unit-and-integration-tests-now-use-vitest\/\">Gutenberg\u2019s JS unit and integration tests now use Vitest<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/24\/wordpress-trac-mcp-server\/\">Trac MCP Server<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/25\/wordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution\/\">WordPress Contributor Toolkit 1.2<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/23\/new-public-repo-core-release-tools\/\">New Core release tools repo<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/09\/23\/iterating-from-live-events-to-livestreamed-releases\/\">Shifting from live event releases to live-streamed releases<\/a><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"discussions\" class=\"wp-block-heading\">Discussions \ud83d\udcac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/profiles.wordpress.org\/ericmann\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ericmann<\/a> asked to open a conversation about the Secrets <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span>, <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/66187\">#66187<\/a> . A PR for integrating 2FA has been opened and broader conversation on the API approach would be valuable to establish a trajectory prior to the 7.2 <span tabindex='0' class='glossary-item-container'>beta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Beta<\/span> <span class='glossary-item-description'>A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span> period.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"tickets-for-assistance\" class=\"wp-block-heading\">Open floor \u00a0\ud83c\udf99\ufe0f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.<br><br>Please include details of tickets \/ PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.<\/p>\n<\/div>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/7-1\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>7-1<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/7-2\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>7-2<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/agenda\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>agenda<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/core\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>core<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/dev-chat\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>dev-chat<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F09%2F30%2Fdev-chat-agenda-sep-30-2026%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>The next WordPress Developers Chat will take place on in the\u00a0core\u00a0channel on\u00a0Make WordPress Slack. The live meeting will focus on the discussion for upcoming releases, and have an open floor section. The various curated agenda sections below refer to additional items. If you have\u00a0ticketticket Created for both bug reports and feature development on the bug [&hellip;]<\/p>\n","protected":false},"author":16694622,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4424,4194,1175],"tags":[5885,5861,31,2325,92],"class_list":["post-126334","post","type-post","status-publish","format-standard","hentry","category-core","category-devchat","category-general","tag-7-1","tag-7-2","tag-agenda","tag-core","tag-dev-chat","mentions-ericmann","author-amykamala"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wRE","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16694622"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126334"}],"version-history":[{"count":2,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334\/revisions"}],"predecessor-version":[{"id":126336,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334\/revisions\/126336"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":16694622,"name":"Amy Kamala","url":"https:\/\/kittenkamala.com\/","description":"Core Team Rep 2026\r\nHosting Team Rep 2026\r\n\r\nWordPress contributions sponsored by Elementor!\r\n\r\nTech nerd + artist. Full stack web dev with team leadership and project management experience, with some UIUX and product development mixed in. MFA from UCLA.\r\n\r\nPast contributions: \r\nRelease Coordinator WordPress 6.9 and 7.0\r\nHosting Team Rep 2019-2023\r\nTech Lead Cohort contributor WP 5.6 \r\nWPLA MeetUps organizer (but not currently hosting events)\r\nRelease Model Working Group 2019-2020\r\nWordCamp LA organizer 2020\r\nSpoken at and\/or helped with contributor day tables at a few camps and meetups including:  WCAsia, WCEU, WCUS, WC Las Vegas, WC\/WP Santa Clarita, WC\/WP LA\r\nPrevious sponsors include DreamHost, InMotion Hosting, Kanopi Studios","link":"https:\/\/profiles.wordpress.org\/amykamala\/","slug":"amykamala","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/97891a17d737ebead37447e64a530eb0ba3ddabe7e5ea2450bbde2b705dd87fc?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16694622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"replies":[[{"id":49387,"parent":0,"author":16551033,"author_name":"Mikey Binns","author_url":"","date":"2026-09-30T09:51:07","content":{"rendered":"<p>I\u2019m unable to attend the meeting, but I want to increase visibility on <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/79455\" rel=\"nofollow ugc\">issue #79455<\/a><\/p>\n<p>This is an update on the previously discussed loss of mapping between WordPress <span tabindex=\"0\" class=\"glossary-item-container\">core<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Core<\/span> <span class=\"glossary-item-description\">Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> and <span tabindex=\"0\" class=\"glossary-item-container\">Gutenberg<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Gutenberg<\/span> <span class=\"glossary-item-description\">The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.<br \/>\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span> packages.<\/p>\n<p>I\u2019ve proposed an option where typescript types could be baked directly into WP core and I\u2019d like to get peoples opinions on it. There\u2019s proof of concept branches (not PRs yet) created to illustrate my solution.<\/p>\n<p>Feedback I\u2019d like to receive as comments on that issue:<br \/>\n1. Do people think this is a good idea? Why or why not?<br \/>\n2. Are there alternative solutions to this issue other than what I\u2019ve proposed?<br \/>\n3. If the idea is sound, then do my branches fully cover the process or am I missing something?<br \/>\n4. Is TypeScript development supported as a first party way to develop for WordPress (i.e. developing custom themes and plugins) like the conversion of packages to TypeScript suggests or is it unsupported?<\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/dev-chat-agenda-sep-30-2026\/#comment-49387","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/e30f06b220bd0cd715d91c6b41caa9e810b69c549fd67f66f11101f063e86d4a?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/e30f06b220bd0cd715d91c6b41caa9e810b69c549fd67f66f11101f063e86d4a?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/e30f06b220bd0cd715d91c6b41caa9e810b69c549fd67f66f11101f063e86d4a?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/16551033"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334"}]}},{"id":49386,"parent":0,"author":9233657,"author_name":"Drivingralle","author_url":"https:\/\/www.drivingralle.de","date":"2026-09-30T08:28:22","content":{"rendered":"<p>This <span tabindex=\"0\" class=\"glossary-item-container\">ticket<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">ticket<\/span> <span class=\"glossary-item-description\">Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> is very old and has a fix. Would be great to get a decision on it by the <span tabindex=\"0\" class=\"glossary-item-container\">core<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Core<\/span> <span class=\"glossary-item-description\">Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> team:<br \/>\n<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/21989\" rel=\"nofollow ugc\">https:\/\/core.trac.wordpress.org\/ticket\/21989<\/a><\/p>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/dev-chat-agenda-sep-30-2026\/#comment-49386","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/a436ab0e9c96432f9852e6c89a6efba387bbbd837e6f3eb29d1c97edad80f6ec?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/a436ab0e9c96432f9852e6c89a6efba387bbbd837e6f3eb29d1c97edad80f6ec?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/a436ab0e9c96432f9852e6c89a6efba387bbbd837e6f3eb29d1c97edad80f6ec?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/9233657"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334"}]}},{"id":49385,"parent":0,"author":147990,"author_name":"leemon","author_url":"https:\/\/github.com\/mrleemon","date":"2026-09-30T06:42:50","content":{"rendered":"<p>Could anyone take a look at these open issues when you have a moment? A few already have linked PRs:<\/p>\n<ul>\n<li>Additional <span tabindex=\"0\" class=\"glossary-item-container\">CSS<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">CSS<\/span> <span class=\"glossary-item-description\">Cascading Style Sheets.<\/span><\/span><\/span> styles are not generated for Navigation Link blocks on the frontend: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/82171\">#82171<\/a>\n<\/li>\n<li>Add Border and Spacing support to the Navigation, Navigation Link and Navigation Submenu blocks: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/66392\">#66392<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/66483\">#66483<\/a> and <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/68455\">#68455<\/a> (The Home Link <span tabindex=\"0\" class=\"glossary-item-container\">block<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">Block<\/span> <span class=\"glossary-item-description\">Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> recently added support for Border and Spacing tools. It would be great to extend full Border and Spacing support across the remaining navigation-related blocks for WP 7.2)\n<\/li>\n<li>Interactivity <span tabindex=\"0\" class=\"glossary-item-container\">API<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">API<\/span> <span class=\"glossary-item-description\">An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span>: Add a data-wp-<span tabindex=\"0\" class=\"glossary-item-container\">html<span class=\"glossary-item-hidden-content\"><span class=\"glossary-item-header\">HTML<\/span> <span class=\"glossary-item-description\">HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span> directive: <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues\/83076\">#83076<\/a>\n<\/li>\n<\/ul>\n"},"link":"https:\/\/make.wordpress.org\/core\/2026\/09\/30\/dev-chat-agenda-sep-30-2026\/#comment-49385","type":"comment","author_avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/d94bdc8e970ce9c05a299f54838f522dafcf3d9379cfbea2ca2c848497bb6732?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments\/49385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/147990"}],"up":[{"embeddable":true,"post_type":"post","href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126334"}]}}]],"wp:term":[[{"id":4424,"link":"https:\/\/make.wordpress.org\/core\/category\/core\/","name":"Core","slug":"core","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/4424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=4424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4194,"link":"https:\/\/make.wordpress.org\/core\/category\/devchat\/","name":"Devchat","slug":"devchat","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/4194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=4194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":5885,"link":"https:\/\/make.wordpress.org\/core\/tag\/7-1\/","name":"7.1","slug":"7-1","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":5861,"link":"https:\/\/make.wordpress.org\/core\/tag\/7-2\/","name":"7.2","slug":"7-2","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/5861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=5861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":31,"link":"https:\/\/make.wordpress.org\/core\/tag\/agenda\/","name":"agenda","slug":"agenda","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":2325,"link":"https:\/\/make.wordpress.org\/core\/tag\/core\/","name":"core","slug":"core","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/2325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=2325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":92,"link":"https:\/\/make.wordpress.org\/core\/tag\/dev-chat\/","name":"dev chat","slug":"dev-chat","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}},{"id":126258,"date":"2026-09-25T17:09:52","date_gmt":"2026-09-25T17:09:52","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=126258"},"modified":"2026-09-25T20:25:53","modified_gmt":"2026-09-25T20:25:53","slug":"wordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/09\/25\/wordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution\/","title":{"rendered":"WordPress Contributor Toolkit 1.2: One app for your first Core or Gutenberg contribution"},"content":{"rendered":"<p class=\"has-background wp-block-paragraph\" style=\"background-color:#8cd1fd33\">TL;DR: <a href=\"https:\/\/github.com\/WordPress\/contributor-toolkit\/releases\/tag\/v1.2.0\">WordPress Contributor Toolkit<code> v1.2.0<\/code><\/a> has been released providing full <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> and <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\n<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span> contribution workflows for first-time contributors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong><a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/\">WordPress Contributor Toolkit<\/a><\/strong> was created to remove the points of friction first-time contributors face before they write a line of code, especially during Contributor Days, but is becoming a great tool also for experienced contributors. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The app <a href=\"https:\/\/make.wordpress.org\/core\/2026\/04\/16\/wordpress-core-dev-environment-toolkit-a-faster-path-to-your-first-core-contribution\/\" target=\"_blank\" rel=\"noopener\">started by providing a seamless setup of a full WordPress contribution development environment<\/a>, the first wall most newcomers hit. <a href=\"https:\/\/make.wordpress.org\/core\/2026\/08\/14\/wordpress-contributor-toolkit-1-0-a-smoother-workflow-for-your-first-core-contribution\/\" target=\"_blank\" rel=\"noopener\">Version 1.0 brought a full Core contribution workflow into the app<\/a>: from reading a <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> <span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> and testing the work attached to it, to sending your own fix back as a pull request or a Trac <span tabindex='0' class='glossary-item-container'>patch<span class='glossary-item-hidden-content'><span class='glossary-item-header'>patch<\/span> <span class='glossary-item-description'>A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a <strong>diff<\/strong>. A patch can be <em>applied<\/em> to a codebase for testing.<\/span><\/span><\/span>, without ever leaving the app. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, <strong><a href=\"https:\/\/github.com\/WordPress\/contributor-toolkit\/releases\/tag\/v1.2.0\">version 1.2<\/a> adds also a full Gutenberg contribution workflow<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" data-attachment-id=\"126267\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/09\/25\/wordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution\/image-128\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-scaled.png\" data-orig-size=\"2560,1281\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1024x512.png\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1024x512.png\" alt=\"\" class=\"wp-image-126267\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1024x512.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-300x150.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-768x384.png 768w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1536x768.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-2048x1025.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">A first Gutenberg contribution, from start to finish<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Gutenberg contribution follows the same path as a Core ticket in the app: create a site, link the work item, try the work that already exists, write your fix, and send it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Create a Gutenberg site<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Create a site<\/strong>, choose a folder, and pick what the site contributes to: <strong>WordPress Core<\/strong>, the default, or <strong>Gutenberg<\/strong>. That choice <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/creating-a-site.html\" target=\"_blank\" rel=\"noopener\">decides what the site clones, how it builds and how it runs<\/a>, and it cannot be changed afterwards. Everything else is the same app: the <span tabindex='0' class='glossary-item-container'>sidebar<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Sidebar<\/span> <span class='glossary-item-description'>A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.<\/span><\/span><\/span>, the terminal, the review screen, the ways to submit.<\/p>\n\n\n\n\t\t<figure class=\"wp-block-jetpack-videopress jetpack-videopress-player\" style=\"\">\n\t\t\t<div class=\"jetpack-videopress-player__wrapper\"> <iframe loading=\"lazy\" title=\"VideoPress Video Player\" aria-label=\"VideoPress Video Player\" width=\"776\" height=\"517\" src=\"https:\/\/videopress.com\/embed\/frqyv7ET?cover=1&amp;autoPlay=0&amp;controls=1&amp;loop=0&amp;muted=0&amp;persistVolume=1&amp;playsinline=0&amp;preloadContent=metadata&amp;useAverageColor=1&amp;hd=0\" frameborder=\"0\" allowfullscreen data-resize-to-parent=\"true\" allow=\"clipboard-write; presentation\"><\/iframe><script src=\"https:\/\/v0.wordpress.com\/js\/next\/videopress-iframe.js?m=1770107250\"><\/script><\/div>\n\t\t\t\n\t\t\t\n\t\t<\/figure>\n\t\t\n\n\n<p class=\"wp-block-paragraph\">A Gutenberg site clones the <span tabindex='0' class='glossary-item-container'>block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> editor\u2019s repository, installs its dependencies with the bundled npm 11, and builds the packages, all as one continuous setup. When it finishes, click <strong>Start dev server<\/strong>. The app <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/running-the-site.html\" target=\"_blank\" rel=\"noopener\">runs a stock WordPress in Playground with your checkout mounted as the Gutenberg plugin<\/a>, already activated. Posts, settings and uploads survive stopping the server and restarting the app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Setup ends with a full build, so the server starts in seconds. To have what you save recompiled, click <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/running-the-site.html#the-build-watch\" target=\"_blank\" rel=\"noopener\"><strong>Start build watch<\/strong><\/a>, which runs Gutenberg\u2019s own <code>npm run dev<\/code>. It rebuilds everything once, then recompiles each save.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Link the site to a <span tabindex='0' class='glossary-item-container'>GitHub<span class='glossary-item-hidden-content'><span class='glossary-item-header'>GitHub<\/span> <span class='glossary-item-description'>GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the \u2018pull request\u2019 where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. <a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/span><\/span><\/span> issue<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Where a Core site has its Trac ticket card, a Gutenberg site has a <strong>GitHub issue<\/strong> card. Enter the issue number or paste its <span tabindex='0' class='glossary-item-container'>URL<span class='glossary-item-hidden-content'><span class='glossary-item-header'>URL<\/span> <span class='glossary-item-description'>A specific web address of a website or web page on the Internet, such as a website\u2019s URL www.wordpress.org<\/span><\/span><\/span> to <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/gutenberg-issues.html\" target=\"_blank\" rel=\"noopener\">link the issue to the site<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The issue gets its own <span tabindex='0' class='glossary-item-container'>branch<span class='glossary-item-hidden-content'><span class='glossary-item-header'>branch<\/span> <span class='glossary-item-description'>A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a \"branch\", such as \"the 4.0 branch\".<\/span><\/span><\/span> inside the site, so everything <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/ticket-branches.html\" target=\"_blank\" rel=\"noopener\">ticket branches<\/a> do on a Core site works here too: switch between issues in seconds, park work you are not ready to finish, move an issue onto the current <span tabindex='0' class='glossary-item-container'>trunk<span class='glossary-item-hidden-content'><span class='glossary-item-header'>trunk<\/span> <span class='glossary-item-description'>A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running \"trunk\", then you are on the latest revision.<\/span><\/span><\/span> with one click.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Check the work that already exists<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A linked issue <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/gutenberg-issues.html#linked-pull-requests\" target=\"_blank\" rel=\"noopener\">shows the pull requests that fix it<\/a> showing the pull request\u2019s state.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each PR associated to an issue has an <strong>Apply\u2026<\/strong> button. The app previews the files it will touch, then <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/applying-patches.html\" target=\"_blank\" rel=\"noopener\">checks the pull request out on its own branch, with the author\u2019s commits<\/a>. <strong>Revert this PR<\/strong> brings your own work back.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Review and send the contribution<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/submitting-changes.html\" target=\"_blank\" rel=\"noopener\"><strong>Review &amp; submit changes<\/strong><\/a> to inspect the complete diff. On a Gutenberg site the destination is <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/submit-github-pr.html\" target=\"_blank\" rel=\"noopener\"><strong>Open a pull request<\/strong><\/a>. You sign in to GitHub through the device flow, and the app forks <code>WordPress\/gutenberg<\/code> to your account, pushes a branch and opens the pull request through the <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span>. The authorization lives in memory only, and is gone when you quit the app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The form asks for a title and notes for reviewers. Gutenberg reviewers want testing steps, so that is where they go: what to open, what to click, what should happen. The app adds the <code>Fixes #N<\/code> line for you, so the pull request appears on the issue as soon as it opens. There is nothing to post anywhere else.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Every site is a real <span tabindex='0' class='glossary-item-container'>Git<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Git<\/span> <span class='glossary-item-description'>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system.\n<a href=\"https:\/\/git-scm.com\/\">https:\/\/git-scm.com\/<\/a><\/span><\/span><\/span> repository<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Since <a href=\"https:\/\/github.com\/WordPress\/contributor-toolkit\/releases#release-v1.1.0\">v1.1<\/a>, a pull request you try arrives as its own branch with its author\u2019s commits, its conflicts are the same ones GitHub reports, and your ticket can move onto today\u2019s trunk. That comes from one change: the app now ships Git itself (<a href=\"https:\/\/github.com\/desktop\/dugite\" target=\"_blank\" rel=\"noopener\">the client GitHub Desktop uses<\/a>) instead of the <span tabindex='0' class='glossary-item-container'>JavaScript<span class='glossary-item-hidden-content'><span class='glossary-item-header'>JavaScript<\/span> <span class='glossary-item-description'>JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user\u2019s browser.\n<a href=\"https:\/\/www.javascript.com\/\">https:\/\/www.javascript.com<\/a><\/span><\/span><\/span> reimplementation 1.0 relied on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It runs with none of your machine\u2019s settings, and you never see it. A Git you already have, or the lack of one, changes nothing about how a site behaves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every operation is now a Git command run on your behalf. Creating a site is a clone, linking a ticket is a branch, applying a patch is <code>git apply<\/code>, trying a pull request is a fetch and a checkout, updating trunk is a fetch and a merge. What the app does in that folder is exactly what you would see if you had typed the commands yourself. That also means a patch fits or fails the way it will for the reviewer, and when it fails the app names the regions that failed and leaves the checkout unchanged.<\/p>\n\n\n\n\t\t<figure class=\"wp-block-jetpack-videopress jetpack-videopress-player\" style=\"\">\n\t\t\t<div class=\"jetpack-videopress-player__wrapper\"> <iframe loading=\"lazy\" title=\"VideoPress Video Player\" aria-label=\"VideoPress Video Player\" width=\"776\" height=\"517\" src=\"https:\/\/videopress.com\/embed\/o4asjylF?cover=1&amp;autoPlay=0&amp;controls=1&amp;loop=0&amp;muted=0&amp;persistVolume=1&amp;playsinline=0&amp;preloadContent=metadata&amp;useAverageColor=1&amp;hd=0\" frameborder=\"0\" allowfullscreen data-resize-to-parent=\"true\" allow=\"clipboard-write; presentation\"><\/iframe><script src=\"https:\/\/v0.wordpress.com\/js\/next\/videopress-iframe.js?m=1770107250\"><\/script><\/div>\n\t\t\t\n\t\t\t\n\t\t<\/figure>\n\t\t\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What this gives you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The whole history, from the terminal or your editor.<\/strong> Open the site folder and <code>git log<\/code>, <code>git blame<\/code> and <code>git bisect<\/code> work as they do on any clone. A new site brings the full history of <code>wordpress-develop<\/code> or Gutenberg, fetching old file contents only when something asks for them, so it is not much larger than the shallow clone 1.0 made.<\/li>\n\n\n\n<li><strong>A pull request you apply shows up as its author\u2019s commits.<\/strong> After <strong>Apply\u2026<\/strong>, <code>git log<\/code> lists the pull request\u2019s commits, with their authors, on a <code>pr\/N<\/code> branch. You can read them, diff them, and see exactly what you are testing.<\/li>\n\n\n\n<li><strong>Your work is on branches you can name.<\/strong> Each Core ticket lives on <code>ticket\/N<\/code>, each Gutenberg issue on <code>issue\/N<\/code>, each pull request you try on <code>pr\/N<\/code>. Parking a ticket in the app is a checkout, and <code>git branch<\/code> shows everything the app is holding for you.<\/li>\n\n\n\n<li><strong>The site outlives the app.<\/strong> Delete the app, or open the folder on another machine, and the repository continues with whatever Git is there. Nothing you did depends on the Toolkit staying installed.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Working from the terminal is fine too. Reading the site with <code>git log<\/code> or <code>git diff<\/code> never gets in the app\u2019s way, and if you start a merge or a rebase yourself the app waits: it refuses to write until you finish or abandon it, and names the commands that do either.<\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#fab70014\"><a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/managing-sites.html#sites-created-by-an-earlier-version\" target=\"_blank\" rel=\"noopener\">Sites created before 1.1<\/a> cannot be written to by this version. You can still read them and save their work as a patch, but to keep contributing you create a new site. The app says so on the site\u2019s card, and offers to create one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Links from your browser<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Since 1.1 the app <a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/trac-tickets.html#open-a-ticket-from-your-browser\" target=\"_blank\" rel=\"noopener\">answers <code>wpct:\/\/ticket\/N<\/code> links<\/a>, so a link can hand a Trac ticket to the app instead of making you type the number. The app asks before it links the ticket to the site you have open, because linking switches branches, and a ticket link that arrives while a Gutenberg site is open waits for a Core site. On Windows, open the app once before trying a link. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This enables much smoother contribution workflows. For example, with <a href=\"https:\/\/chromewebstore.google.com\/detail\/wp-trac-triager\/fhlhkchpljijkhhmichmfdhedangngol\" target=\"_blank\" rel=\"noopener\">WP Trac Triager<\/a>, a Chrome extension for triaging Core Trac tickets, every ticket on Trac gets a link that opens it in Contributor Toolkit, with its pull requests ready to test.<\/p>\n\n\n\n\t\t<figure class=\"wp-block-jetpack-videopress jetpack-videopress-player\" style=\"\">\n\t\t\t<div class=\"jetpack-videopress-player__wrapper\"> <iframe loading=\"lazy\" title=\"VideoPress Video Player\" aria-label=\"VideoPress Video Player\" width=\"776\" height=\"528\" src=\"https:\/\/videopress.com\/embed\/ntNJlwBn?cover=1&amp;autoPlay=0&amp;controls=1&amp;loop=0&amp;muted=0&amp;persistVolume=1&amp;playsinline=0&amp;preloadContent=metadata&amp;useAverageColor=1&amp;hd=0\" frameborder=\"0\" allowfullscreen data-resize-to-parent=\"true\" allow=\"clipboard-write; presentation\"><\/iframe><script src=\"https:\/\/v0.wordpress.com\/js\/next\/videopress-iframe.js?m=1770107250\"><\/script><\/div>\n\t\t\t\n\t\t\t\n\t\t<\/figure>\n\t\t\n\n\n<h2 class=\"wp-block-heading\">Help shape the next version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Try it on a real ticket or issue and tell us how it went:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Something broke?<\/strong> <a href=\"https:\/\/github.com\/WordPress\/contributor-toolkit\/issues\/new\/choose\" target=\"_blank\" rel=\"noopener\">Open an issue<\/a> with what you did and what happened.<\/li>\n\n\n\n<li><strong>Something felt off?<\/strong> Use the <a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScnMxicyDxZO2OoaS5ela8FArYWjCyLfC3hxRBBRSF7XLPzKg\/viewform\" target=\"_blank\" rel=\"noopener\">feedback form<\/a>, or the feedback button in the app.<\/li>\n\n\n\n<li><strong>Want to talk it through?<\/strong> Ask in <code>#core<\/code>, or <code>#core-editor<\/code> for the Gutenberg flow, or comment below.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gutenberg support is new, so the most useful reports come from taking an issue all the way to a pull request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/\" target=\"_blank\" rel=\"noopener\">Download WordPress Contributor Toolkit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/getting-started.html\" target=\"_blank\" rel=\"noopener\">Follow the Toolkit getting started guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.github.io\/contributor-toolkit\/guide\/gutenberg-issues.html\" target=\"_blank\" rel=\"noopener\">Working on a GitHub issue, in the Toolkit guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/contributor-toolkit\/releases\/tag\/v1.2.0\" target=\"_blank\" rel=\"noopener\">Read the v1.2 release notes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/handbook\/contribute\/\" target=\"_blank\" rel=\"noopener\">Learn how to contribute code to WordPress Core<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/gutenberg\/blob\/trunk\/CONTRIBUTING.md\" target=\"_blank\" rel=\"noopener\">Read the Gutenberg contributing guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/core.trac.wordpress.org\/tickets\/good-first-bugs\" target=\"_blank\" rel=\"noopener\">Browse good first bugs on Core Trac<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/WordPress\/gutenberg\/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+First+Issue%22\" target=\"_blank\" rel=\"noopener\">Browse good first issues on Gutenberg<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Props to <a href=\"https:\/\/profiles.wordpress.org\/greenshady\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>greenshady<\/a> and <a href=\"https:\/\/profiles.wordpress.org\/welcher\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>welcher<\/a> for review and feedback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/make.wordpress.org\/playground\/\">+make.wordpress.org\/playground\/<\/a> <a href=\"https:\/\/make.wordpress.org\/test\/\"><\/a><a href=\"https:\/\/make.wordpress.org\/test\/\"><\/a><a href=\"\/\/make.wordpress.org\/test\/\" class=\"po-xpost\"><\/a><a href=\"\/\/make.wordpress.org\/test\/\" class=\"po-xpost\">+make.wordpress.org\/test\/<\/a> <a href=\"https:\/\/make.wordpress.org\/community\/\"><\/a><a href=\"https:\/\/make.wordpress.org\/community\/\">+make.wordpress.org\/community\/<\/a><\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/contributor-day\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>contributor-day<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/playground\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>playground<\/a>, <a href=\"https:\/\/make.wordpress.org\/core\/tag\/wordcamp\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>wordcamp<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F09%2F25%2Fwordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>TL;DR: WordPress Contributor Toolkit v1.2.0 has been released providing full CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much [&hellip;]<\/p>\n","protected":false},"author":14555470,"featured_media":126267,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[1393,4977,311],"class_list":["post-126258","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","tag-contributor-day","tag-playground","tag-wordcamp","mentions-greenshady","mentions-welcher","author-juanmaguitar"],"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wQq","jetpack_featured_media_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-scaled.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14555470"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126258"}],"version-history":[{"count":18,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126258\/revisions"}],"predecessor-version":[{"id":126299,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126258\/revisions\/126299"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/126267"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=126258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=126258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=126258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]},"_embedded":{"author":[{"id":14555470,"name":"JuanMa Garrido","url":"https:\/\/github.com\/juanmaguitar","description":"","link":"https:\/\/profiles.wordpress.org\/juanmaguitar\/","slug":"juanmaguitar","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/0e8fe004d42b981872cb6fbc05963fa473d6a1917b514d0a415a1f04334093d0?s=24&d=mm&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/0e8fe004d42b981872cb6fbc05963fa473d6a1917b514d0a415a1f04334093d0?s=48&d=mm&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/0e8fe004d42b981872cb6fbc05963fa473d6a1917b514d0a415a1f04334093d0?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14555470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users"}]}}],"wp:featuredmedia":[{"id":126267,"date":"2026-09-25T15:28:37","slug":"image-128","type":"attachment","link":"https:\/\/make.wordpress.org\/core\/2026\/09\/25\/wordpress-contributor-toolkit-1-2-one-app-for-your-first-core-or-gutenberg-contribution\/image-128\/#main","title":{"rendered":"image"},"author":14555470,"featured_media":0,"revision_note":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/a2AvED-wQz","caption":{"rendered":"<p>Login to Reply<\/p>\n"},"alt_text":"","media_type":"image","mime_type":"image\/png","media_details":{"width":2560,"height":1281,"file":"2026\/09\/image-1-scaled.png","filesize":414991,"sizes":{"thumbnail":{"width":150,"height":150,"file":"image-1-150x150.png","filesize":13159,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-150x150.png"},"medium":{"width":300,"height":150,"file":"image-1-300x150.png","filesize":18768,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-300x150.png"},"medium_large":{"width":768,"height":384,"file":"image-1-768x384.png","filesize":76702,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-768x384.png"},"large":{"width":1024,"height":512,"file":"image-1-1024x512.png","filesize":113868,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1024x512.png"},"1536x1536":{"width":1536,"height":768,"file":"image-1-1536x768.png","filesize":198953,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-1536x768.png"},"2048x2048":{"width":2048,"height":1025,"file":"image-1-2048x1025.png","filesize":303534,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-2048x1025.png"},"full":{"file":"image-1-scaled.png","width":2560,"height":1281,"mime_type":"image\/png","source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-scaled.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"original_image":"image-1.png"},"source_url":"https:\/\/make.wordpress.org\/core\/files\/2026\/09\/image-1-scaled.png","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media\/126267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/attachment"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/14555470"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=126267"}],"wp:attached-to":[{"embeddable":true,"post_type":"post","id":126258,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/126258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],"wp:term":[[{"id":1175,"link":"https:\/\/make.wordpress.org\/core\/category\/general\/","name":"General","slug":"general","taxonomy":"category","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?categories=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}],[{"id":1393,"link":"https:\/\/make.wordpress.org\/core\/tag\/contributor-day\/","name":"contributor day","slug":"contributor-day","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/1393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=1393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":4977,"link":"https:\/\/make.wordpress.org\/core\/tag\/playground\/","name":"playground","slug":"playground","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/4977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=4977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":311,"link":"https:\/\/make.wordpress.org\/core\/tag\/wordcamp\/","name":"WordCamp","slug":"wordcamp","taxonomy":"post_tag","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags\/311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/taxonomies\/post_tag"}],"wp:post_type":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts?tags=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]]}}]