WordPress 6.4 Source of Truth ![rw-book-cover](https://annezazu.files.wordpress.com/2023/10/wordpress-6.4-source-of-truth-featured-image.png?w=1200) ## Metadata - Author: [[agm]] - Full Title: WordPress 6.4 Source of Truth - Category: #articles - Document Note: --- tags: - #WordPress - #Release - #OpenSource - #Gutenberg - #BlockEditor - #ThemeDevelopment - #PluginDevelopment - #Accessibility - #Performance - #DeveloperExperience Author: Courtney Robertson (compiled “Source of Truth” by agm/nomad.blog) Source: WordPress.org News; nomad.blog Reference: https://nomad.blog/2023/10/09/wordpress-6-4-source-of-truth/ • https://wordpress.org/news/ date created: 2025-08-23 00:00 --- # Title: WordPress 6.4 Source of Truth — Release Overview and Deep Notes ## Table of Contents: - [🧭 Overview](#-overview) - [🏁 Priority Items](#-priority-items) - [✍️ Writing Flow Improvements](#-writing-flow-improvements) - [🎨 Design Tools](#-design-tools) - [🧩 Patterns & Command Palette](#-patterns--command-palette) - [🧱 Block Hooks (API)](#-block-hooks-api) - [🗂️ Site Editor & Navigation](#-site-editor--navigation) - [🖼️ Media & Lightbox](#-media--lightbox) - [⚙️ Developer Enhancements](#-developer-enhancements) - [🚀 Performance](#-performance) - [🧪 New Blocks](#-new-blocks) - [📝 Notes](#-notes) - [📚 References](#-references) - [🗣️ Paraphrase](#-paraphrase) - [📰 Newsletter](#-newsletter) - [✅ Action Items (Advocacy/OSPO Alignment)](#-action-items-advocacyospo-alignment) - [🧪 Hypotheses](#-hypotheses) - [📊 Methodology](#-methodology) - [❓ Questions](#-questions) - [🔮 Future Research](#-future-research) - [💡 Implications](#-implications) - [🧠 Learning Styles Assessment](#-learning-styles-assessment) - [📊 Accessibility Assessment](#-accessibility-assessment) - [🌍 DEIB Assessment](#-deib-assessment) - [✅ Logical validity](#-logical-validity) - [🔍 SEO Evaluation](#-seo-evaluation) - [🎯 Conclusion](#-conclusion) ### References: - WordPress 6.4 Source of Truth (nomad.blog) - WordPress.org News and Make/Core posts (release dev notes, field guide) - Gutenberg GitHub issues referenced by IDs within the article ## 📝 Summary: WordPress 6.4, launched November 7, 2023, focuses on smoother writing, robust pattern management, expanded design tools, and developer APIs that increase extensibility. Headliners include the Twenty Twenty‑Four default theme, image lightbox support, Block Hooks for auto‑inserting blocks, improved Command Palette, pattern categories with import/export as JSON, and numerous performance gains. It further advances typography (fluid controls, vertical writing), layout curation (per‑block layout toggles), and site-building polish (buttons in Navigation, background images for Groups, preserved alignment in synced patterns). ## 📖 Main Content: WordPress 6.4 is a quality-of-life release for creators and developers: - Creators get faster flows: better List View, deselect with Escape, improved paste, refined toolbars for List/Quote/Navigation, thumbnails in List View, image lightbox, and buttons inside navigation. - Designers gain control: Group background images, Image placeholder aspect ratios, section-scoped styling for Buttons/Headings, fluid typography boundaries, vertical text orientation, and preserved alignment in synced patterns. - Developers get power tools: Block Hooks (auto-insert blocks around/inside anchors), useBlockEditingMode() to restrict block UI, new ProgressBar component, per‑block layout control policies via theme.json, client-side pagination in Query Loop (Interactivity API), and PHP 8 compatibility continuity. - Site performance improves via async/defer script strategies, autoload optimization, image loading attributes, and numerous core-level micro-optimizations. ### 🗒️ Notes - 🧭 Overview - Release date: Nov 7, 2023; led by an underrepresented gender squad. - Shorter cycle; five Gutenberg versions included. - Emphasis on writing flow, patterns, design tools, dev APIs. - 🏁 Priority Items - Twenty Twenty‑Four: multi‑use default theme with rich patterns/templates. - Lightbox for images: global or per‑image opt‑in. - Rename Group blocks: better organization via List View labels. - List View thumbnails: quick skim for Image/Gallery blocks. - Command Palette: refreshed UI, block-specific commands, contextuality. - Pattern categories + pagination: better discovery; unified synced/unsynced. - Pattern import/export as JSON: portability, compatibility with Reusable blocks. - Block Hooks: auto-insert blocks before/after/child positions with respect for user modifications. - ✍️ Writing Flow Improvements - Escape to deselect blocks; improved paste reliability. - Safari flow fixes; smoother list merging. - Toolbars captured at parent for List/Quote/Navigation to reduce clutter. - 🎨 Design Tools - Image placeholder aspect ratio control. - Section-scoped styling for Buttons/Headings inside Group/Columns. - Group background images; preserved alignment in synced patterns. - Vertical text orientation (theme opt‑in via theme.json). - 🗂️ Site Editor & Navigation - Buttons allowed in Navigation (no custom CSS needed). - Pattern browsing: sticky header, pagination; template switching in page context. - ⚙️ Developer Enhancements - Per-block layout controls via theme.json (allow/disable). - Query Loop client-side pagination; set page numbers count; prefetching. - New ProgressBar component; public useBlockEditingMode() API. - Link rel="nofollow" option in link UI. - 🚀 Performance - Async/defer script strategies across core/themes. - Options APIs (prime_options, wp_set_option_autoload_values) and caching tweaks. - Image loading optimization attributes and filters. - Various editor, query, taxonomy, theme folder performance improvements. - 🧪 New Blocks - Table of Contents: auto-generates from headings; convertible to static list. - Time to Read: surfaces editor’s reading time to frontend. - Font Library (staged): manage local fonts; extensions planned. - 🧩 Compatibility - PHP 8.0/8.1 compatibility (beta label removed in 6.3; continues in 6.4). ## 📖 References: - WordPress 6.4 Source of Truth: https://nomad.blog/2023/10/09/wordpress-6-4-source-of-truth/ - WordPress.org News: https://wordpress.org/news/ - Make/Core Field Guide and Dev Notes (during 6.4 cycle) - Gutenberg GitHub issues cited within the article (e.g., 51132, 53305, 53987, 54293, etc.) ## 🗣️ Paraphrase: - On Block Hooks: - Original idea: An API enables dynamic blocks to hook into other blocks’ rendering, inserting themselves before/after or as first/last child. Auto-insert respects user modifications and only targets theme files and non-user-generated patterns/parts. - Paraphrase: Block Hooks let a developer declare where a block should appear relative to another block—above, below, or at the edges of its children—while honoring any changes a site owner has made. This ensures extensibility for block themes without overwriting user-edited content, since it applies to theme-provided templates, parts, and patterns only. - On Writing Flow: - Original idea: A collection of small improvements—Escape to deselect blocks, better pasting, smoother list behavior, and consolidated parent toolbars—aims to keep editing intuitive and unobtrusive. - Paraphrase: A series of targeted refinements makes everyday writing feel lighter: you can quickly drop selection with Escape, paste content more reliably, manage lists without awkward merges, and interact with cleaner toolbars that live on the parent block, keeping the canvas visible and distractions down. ## 📰 Newsletter: Feeling crafty with your content? WordPress 6.4 just landed, and it’s a treat for both writers and builders. Highlights: a versatile Twenty Twenty‑Four default theme, image lightboxes with a single toggle, and a smarter Command Palette that finally reads the room. Pattern pros get categories, pagination, and import/export as JSON—hello, portable design systems. Designers: enjoy aspect ratio placeholders, section‑scoped Button/Heading styles, Group background images, and vertical text orientation. Devs, don’t miss Block Hooks for auto-inserting blocks (without trampling user edits), client‑side Query Loop pagination, per‑block layout control via theme.json, a public useBlockEditingMode(), and a shiny ProgressBar component. Plus, performance buffs everywhere: async/defer scripts, optimized autoload options, and better image loading att - Summary: WordPress 6.4 introduces new features and upgrades across the platform, from writing new posts to managing patterns across the site. New features include lightbox functionality, a new default theme, aspect ratio controls for image blocks, and support for vertical text orientation. The release also includes technical upgrades such as Block Hooks, fluid typography controls, and per-block layout control options. Other improvements include adding background images to Group blocks, buttons to the Navigation block, and preserving alignment settings when creating synced patterns. - URL: https://nomad.blog/2023/10/09/wordpress-6-4-source-of-truth/ Building off of both the [public 6.2 Source of Truth](https://nomad.blog/2023/03/01/wordpress-6-2-source-of-truth/) and [6.3 Source of Truth](https://nomad.blog/2023/07/17/wordpress-6-3-source-of-truth/), I’m offering up the next edition for WordPress 6.4, set to launch November 7th, 2023. **This is an early look — come back on October 24th, 2023 if you want a confirmed finalized version.** I like to share early and often both to find areas of improvement, get feedback, and put power in the hands of those involved in helping get the wider WordPress community up to speed on what’s coming. In particular, I’d recommend staying up to date on the [dev notes](https://github.com/WordPress/performance/issues/840) as those will soon be coming out in line with RC1. Feedback is welcomed for improvements for future versions as I consider how best to share this information. Keep in mind that this is not meant to replace dev notes or the release specific field guides which serve important roles and are separate efforts. Big thank you to everyone who helped, whether through writing detailed PR descriptions or creating release related assets. **Important Note/Guidelines** *This is a more public document so please be mindful of the fact that a wider audience than you might think can participate in what’s shared here 🙂* **Please do not copy and paste what is in this document** since this will be shared with many people. This should be used to inspire your own content and to ensure that you have the best information about this release. If you do copy and paste, keep in mind that others might do the same, opening the door for some awkwardness around duplicated content out on the web. * The document is shared with various WordPress.org community members and folks I work with at Automattic so be mindful of what you comment with. * You will have Comment access but not edit access. This is intentional – please comment if you have any questions/concerns/feedback and I’ll follow up. * If there are drastic changes, this document will be updated and you will be alerted. * Each item has been tagged using best guesses with different high level labels so that you can more readily see at a glance who is likely to be most impacted. * Each item has a high level description, visuals (if relevant), adoption strategy (if relevant), and key resources if you want to learn more. #### **Overview** WordPress 6.4 is set to be released on November 7, 2023 and is being led by an [underrepresented gender release squad](https://make.wordpress.org/core/2023/06/05/wordpress-6-4-development-cycle/). This release brings a sharp focus to enhancing items across the WordPress experience, from the details of writing a new post to managing patterns across your site. Amongst these efforts, new features have been added, namely lightbox functionality and a new default theme, along with gaps filled in current functionality with more design tools and workflow upgrades. Alongside these more visual changes, various more technical upgrades are also something to look forward to with the introduction of Block Hooks, the ability to configure your own fluid typography controls, and the option to turn off layout controls on a per block basis. **Table of Contents** Of note, compared to more recent releases, this was a much shorter release cycle with only five Gutenberg versions making it into 6.4 compared to the usual 9-10. ##### Important links: As the release cycle continues, please keep in mind that various dev notes will be shared on Make Core along with an overall Field Guide as is standard across each release cycle. These items are not yet ready at the time of initially publishing this in line with beta 1 but will be updated over time. ##### 6.4 assets: To view all assets in this document, [please review this drive folder](https://drive.google.com/drive/u/1/folders/1n337UB8A6zaRmvx8ZJg1pHS_inpDOdx-). #### **Tags** To make this document easier to navigate based on specific audiences, the following tags are used liberally: [end user]: end user focus. [theme author]: block or classic theme author. [plugin author]: plugin author, whether block or otherwise. [site admin]: this includes a “builder” type. **If no tags are listed, it’s because the impact is broad enough to impact everyone equally.** #### **Priority Items for 6.4** ##### Twenty Twenty-Four default theme Quoting the introduction post: > “The idea behind Twenty Twenty-Four is to make a default theme that can be used on any type of site, with any topic. Because of that, and contrary to past years, it has no single topic. Instead, three use cases were explored: one more tailored for entrepreneurs and small businesses, one tailored for photographers and artists and one specifically tailored for writers and bloggers. In essence, it’s a collection of templates and patterns which, all combined, make up a theme. These patterns include different Home templates for different use cases such as an About page, project overviews, RSVPs, and landing pages.” > > **Visuals:** [quick view of TT4 homepage and adding pattern demo](https://drive.google.com/file/d/1IIMsPSaE3vFT0yzgHivEwKS2a3D3V7Kl/view?usp=drive_link), [swapping page templates including sidebar and no title](https://drive.google.com/file/d/1puX6Xx8PNjrMSow5h0MHRbyhf30MUc-j/view?usp=drive_link) demo. **Adoption approach:** opt in by activating it. **Key Make Posts/GitHub/Trac Issue(s):** [Introducing Twenty Twenty-Four post](https://make.wordpress.org/core/2023/08/24/introducing-twenty-twenty-four/) ##### Enable lightbox functionality for your images With a simple setting turned on, your images can now have added lightbox functionality, meaning when clicked on, they take over the full screen for easier and more immersive viewing. Currently, this can be enabled both globally for all images and on an image-by-image basis. **Visuals:** [demo](https://drive.google.com/file/d/1_1IppFo43nlJYvFKFU4-0SvkJAAszThy/view?usp=drive_link) of enabling globally and then changing the option for individual images. **Adoption approach:** opt-in via turning the option on individually or globally for Images. **Key Make Posts/GitHub/Trac Issue(s):** tracking issue for adding this functionality ([51132](https://github.com/WordPress/gutenberg/issues/51132)) ##### Upgraded tooling for smoother workflows ###### Rename Group blocks for improved organization [site admin] [end user] As the Site Editor and what’s possible within continues to evolve, the tooling to organize and supercharge the experience needs to keep pace. The ability to rename Group blocks, a commonplace block in the site editing experience, is an effort to do exactly that. When renamed, the new name will appear in List View, allowing you to easily distinguish between different parts of your content. Rename (or don’t) as you’d like and as you see fit. Of note, this can be especially helpful with patterns that might use Group blocks! **Visuals:** [demo](https://drive.google.com/file/d/1mzjkXwtPyuGDCbfeurhSyDGP5DP747rD/view?usp=drive_link) showing renaming and reverting rename. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Rename Group blocks in the Editor via Modal ([53735](https://github.com/WordPress/gutenberg/pull/53735)). ###### See image and gallery thumbnails in List View for quick skimming When working with images in your content, whether in a new post or a template, it’s now easy to see at a glance where each image is directly in List View. The previews are shown for both Galleries and Image blocks, with [plans for future releases to add additional previews to other image related blocks](https://github.com/WordPress/gutenberg/issues/53684). **Visuals:** [demo](https://drive.google.com/file/d/1K_NSh2PAZ-PMG2FNdvPcYtaUKHor5JZJ/view?usp=drive_link) showing both galleries and individual images. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** [List View: Add media previews to list view for gallery and image blocks](https://github.com/WordPress/gutenberg/pull/53381#top) ###### Advancing the Command Palette The Command Palette has evolved in a few ways since its initial release in WordPress 6.3: * Refreshed design. * New commands, including block-specific actions. [See a full list here](https://make.wordpress.org/core/2023/09/12/core-editor-improvement-commanding-the-command-palette/). * Better contextuality when invoking the Command Palette. For example, with the recent updates, you can take block-specific actions, like grouping and ungrouping, and trust that what’s visible as an option [matches the actions available](https://github.com/WordPress/gutenberg/issues/53921#issuecomment-1695630329). Further, for the various reset, delete, and edit commands related to templates, [the name of the template has been added](https://github.com/WordPress/gutenberg/pull/52989) to ensure you’re taking the actions you want on the exact item you want. **Visuals:** [before and after design visual](https://drive.google.com/file/d/1uG2vsda_wPE1JbRfOGLcnGKJBzfMONH1/view?usp=drive_link), [demo of new commands](https://drive.google.com/file/d/1LlVdbXsolSz7_cLJZ6qqAe5zr3LklP_j/view?usp=drive_link). **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** [Core Editor Improvement: Commanding the Command Palette](https://make.wordpress.org/core/2023/09/12/core-editor-improvement-commanding-the-command-palette/) ###### Add categories to Patterns and add them anywhere with ease Patterns can now be organized with categories as part of the creation flow. Those categories are then available to sort by both in the overall Patterns section and the Insertion flow, simplifying the process of finding and adding patterns. In the Inserter specifically, a more advanced filtering option is available to better accommodate the more contained searching experience allowing you to sort by theme created vs user created patterns along with synced vs unsynced. If you need to edit any categories, you can do so in the sidebar settings when editing an individual pattern. To provide a more unified experience, all patterns, whether synced or unsynced, are listed in the same pattern section rather than having synced patterns separated out into their own tab. Finally, to ensure solid performance, pagination has been added when viewing patterns both in the Inserter and Patterns section of the Site Editor. **Visuals:** [create new pattern and add category demo](https://drive.google.com/file/d/1KG1AJJu8CEq3MpK027pyqxcY1Fkcc8vx/view?usp=drive_link), [import > filter > inserter pattern demo](https://drive.google.com/file/d/1qgp1Z0N3jlhUb_J5zMxCAJP6-Pato-8j/view?usp=drive_link). **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** * Patterns: add categories to user created patterns ([53164](https://github.com/WordPress/gutenberg/issues/53164)). * Add synced patterns to the Patterns tab in the Inserter and add pagination ([54007](https://github.com/WordPress/gutenberg/pull/54007)). * Patterns: Add editing of pattern categories to site editor ([54640](https://github.com/WordPress/gutenberg/pull/54640#top)). * Patterns: Add My patterns back to post editor inserter categories ([54767](https://github.com/WordPress/gutenberg/pull/54767)). * De-emphasize pattern filters in Inserter ([54681](https://github.com/WordPress/gutenberg/pull/54681)). ###### Import/export patterns as JSON files To ensure prior compatibility with Reusable blocks, patterns can now be imported and exported as JSON files, allowing an easy pathway to move custom patterns across sites. **Visuals:** [demo](https://drive.google.com/file/d/10gHUINBmg5XrZOi6J78O9pv8E2s_-5Af/view?usp=drive_link) showing an export and import process. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Patterns: allow import/export as JSON files ([54337](https://github.com/WordPress/gutenberg/pull/54337)) ##### Introducing Block Hooks [plugin author] At the simplest level, Block Hooks is an API that allows a dynamic block to hook into the rendering of another block, enabling a block to render its content before or after another block. It’s also possible to hook into the rendering of a parent block and prepend or append the block to the list of child blocks. The key is the name of the block to hook into, and the value is the position to hook into. Block Hooks, while a developer-centric tool, enables a better experience for the end user by automatically inserting a block into the specific location of a developer’s choosing and allowing for further customization. Ultimately, this feature aims to improve the extensibility of block themes through plugins. Note that the block that’s using this API will only be auto-inserted as long as the targeted template or template part has no modifications by the user. This is designed to ensure a user’s choice to discard an auto-inserted block is respected. This API can only apply to block patterns (not generated by the user), template parts, and templates loaded from the block theme files. Overall, this feature never changes the content created/modified by a user on a website. **Visuals:** [Adding a mini cart and like button demo](https://drive.google.com/file/d/1Pq6rbMKsa_wz35KxpdIxGDzdk61fVm89/view?usp=drive_link). **Adoption approach:** opt in via \_\_BlockHooks in the block.json file of your chosen dynamic block. You must specify the “anchor” block and the relative position (before, after, firstChild, or lastChild) for auto-insertion. Here’s an example: “blockHooks”: { “core/comment-template”: “lastChild” For more information, [here are the block editor handbook instructions](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/#block-hooks-optional). **Key Make Posts/GitHub/Trac Issue(s):** * Include Block Hooks in WordPress 6.4 ([53987](https://github.com/WordPress/gutenberg/issues/53987)). * Block API: Stabilize Block Hooks feature ([54293](https://github.com/WordPress/gutenberg/pull/54293)). * [A developer news article](https://github.com/WordPress/developer-blog-content/issues/168) is planned for during the 6.4 release cycle to provide up to date documentation. ##### Writing flow improvements Writing in WordPress, whether the latest post or new page, needs to be seamless and enjoyable–the tooling should aid creativity rather than get in the way. Blocks with all of their variations, design tools, and transforms should make you feel empowered. To make sure of that, some extra effort was put into making the simple act of writing better with new keyboard shortcuts, improved pasting reliability, smoother list merging, and more: * [List View: Allow Escape key to deselect blocks if blocks are selected](https://github.com/WordPress/gutenberg/pull/48708#top) to make it easier to purely preview your content without any block selection. * [Link Control: Add “Open in new tab” control into the link preview](https://github.com/WordPress/gutenberg/pull/53566), making it easier to turn on and off that option. * Fix broken flows on Safari, including ArrowUp functionality in an empty paragraph ([53341](https://github.com/WordPress/gutenberg/pull/53341)) and multi-selection upon shift plus click ([53440](https://github.com/WordPress/gutenberg/pull/53440)). * [Avoid merging paragraphs into a Columns block](https://github.com/WordPress/gutenberg/pull/53508) when trying to delete a paragraph that’s preceded by a Columns block. * [Verse: enable the ability to exit the block](https://github.com/WordPress/gutenberg/pull/53332) upon hitting enter three times. Outside of these individual changes, there’s a new toolbar experience for the Navigation, List, and Quote blocks. Each of these blocks have built-in child blocks and rather than having the toolbars for each child block visible, they are now seamlessly attached to the overall parent blocks. This both helps prevent toolbars from blocking other pieces of content, like a different list item than the one selected and provides a more organized editing experience where you always know where your tooling options are. **Visuals:** * [Demo](https://drive.google.com/file/d/1kRERK33mHdJ8Y5R6-YI0fSMRw9l9H6iS/view?usp=drive_link) of captured toolbars with list, quote, and navigation blocks. * [Demo](https://drive.google.com/file/d/1M_dfwUjWjWjPZpHtMdwCRA4LTnekwRis/view?usp=drive_link) of merging lists, duplicating blocks, and deselecting blocks. * [Captured toolbars screenshot](https://drive.google.com/file/d/1UAH3AHBCjGCOz9n9gvCPMArJMx_lIBpB/view?usp=drive_link). **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** * Tracking issue for writing experience improvements ([53305](https://github.com/WordPress/gutenberg/issues/53305)). * Captured toolbars for Navigation, List, and Quote blocks. ([#53699](https://github.com/WordPress/gutenberg/pull/53699), [#53697](https://github.com/WordPress/gutenberg/pull/53697)). ##### Design tools ###### Add aspect ratio to the Image block’s placeholder [theme author] After adding aspect ratio controls to the Featured Image block in WordPress 6.3, these same controls have been added to the Image block’s placeholder, providing more control for wireframe style patterns that provide a layout for folks to then fill in. **Visuals:** [demo](https://drive.google.com/file/d/1akFEaIBsb2xc2Ufzu45hznCSw12jtwSl/view?usp=drive_link) of both setting an aspect ratio on the placeholder and using it within a wireframe pattern. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Add aspect ratio to image placeholder ([54216](https://github.com/WordPress/gutenberg/pull/54216)) ###### Set specific styling for Button and Headings in Group and Columns blocks [theme author] [site admin] As part of a broader effort to have section specific theme.json, allowing for more fine tuned control over styling settings on a more granular level, Button and Heading element support has been added to both Group and Columns block. This starts down the path of larger section specific controlled styling by allowing you to define the styling for Buttons and Headings added within a Group or Columns block. **Visuals:** setting button styling for Group block [demo](https://drive.google.com/file/d/1apdep8AtIwTmidLzOIgvMK3uZ4cWe05h/view?usp=drive_link). **Adoption approach:** N/A tools are baked in. **Key Make Posts/GitHub/Trac Issue(s):** Design Tools: Add block instance elements support for buttons and headings ([53667](https://github.com/WordPress/gutenberg/pull/53667)), Columns: Adopt button and heading element colors ([54104](https://github.com/WordPress/gutenberg/pull/54104)) ###### Add background images to Group blocks Images are a powerful tool on any website for added flare and design optionality. To further how images can be used, background image support has been added to Group blocks, making this already powerful block even more so. **Visuals:** [demo](https://drive.google.com/file/d/1uMBVp8CiCpZ3o7RYFetr6EkJQ7eKKyJ_/view?usp=drive_link) of adding a grouping, a Heading block, and adding a background image **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Add background image support to Group block ([53934](https://github.com/WordPress/gutenberg/pull/53934)) ###### Keep alignment settings when creating synced patterns An important bug has been addressed–when creating a synced pattern with wide, full, left, or right-aligned blocks, those layout and alignment settings will now be preserved. Previously, upon conversion to a Pattern, a full-width pattern would suddenly lose its width setting. This helps provide smooth editing and pattern creation. **Visuals:** [demo](https://drive.google.com/file/d/1sTinCmIZSL7btz4rwYWmc_1l-gp3hibR/view?usp=drive_link) of a synced pattern creation with full-width preserved **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s)**: Patterns: Apply layout and alignment to synced patterns in the editor ([54416](https://github.com/WordPress/gutenberg/pull/54416)) ###### Add vertical text orientation support [end user] [theme author] Themes can now opt into a Text Orientation feature (available via a block’s Typography settings panel) that allows text to be written vertically. [This new feature is part of a larger effort](https://github.com/WordPress/gutenberg/issues/50319) to add full support of both vertically written languages and to add more decorative design options. **Visuals:** [image](https://drive.google.com/file/d/1P8owR6or_8DtomNr8k7hizyoN6CiiqwK/view?usp=drive_link). **Adoption approach:** must opt in with a theme using theme.json by adding in theme.json under settings > typography writingMode: true.From there, you need to add support for specific blocks. For example, to add support for the Paragraph block, you would go to Styles > Blocks > and add the following: “core/paragraph”: { “typography”: { “writingMode”: “vertical-rl” **Key Make Posts/GitHub/Trac Issue(s):** Add Typography: text orientation ([50822](https://github.com/WordPress/gutenberg/pull/50822)), ###### Add buttons to the Navigation block The common design pattern of having buttons in one’s navigation is now possible without any custom CSS or other workarounds, as buttons are now listed as part of allowed blocks in the Navigation block. This helps address some long standing limitations of the navigation block, particularly when it comes to more complex menus or mega menus. **Visuals:** [demo](https://drive.google.com/file/d/1VnCyVCAXhetNSzIiXuOf6TEQHb-HAzEr/view?usp=drive_link) of adding a button to a menu. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Navigation block: add buttons to list of allowed blocks ([53966](https://github.com/WordPress/gutenberg/pull/53966)) #### **Additional Items for 6.4** ##### General improvements and polish Improvements across the WordPress experience continue to land in each release. While each of the items below aren’t enough to highlight alone, taken together they represent a step forward in the overall refinement of blocks, the Site Editor, and Block Editor as a whole: Blocks: * Preformatted: add margin and padding support. ([45196](https://github.com/WordPress/gutenberg/pull/45196)) * Social Links: add Threads Icon. ([52685](https://github.com/WordPress/gutenberg/pull/52685)) * Social links: add X icon ([54092](https://github.com/WordPress/gutenberg/pull/54092)). * Verse: enable line breaks. ([52928](https://github.com/WordPress/gutenberg/pull/52928)) * Details: add block gap support. ([53282](https://github.com/WordPress/gutenberg/pull/53282)) * File: add margin and padding support. ([45107](https://github.com/WordPress/gutenberg/pull/45107)) * Column: add stretch alignment ([53325](https://github.com/WordPress/gutenberg/pull/53325#top)). * Image: keep image size upon replacing an image ([49982](https://github.com/WordPress/gutenberg/pull/49982#top)). * Buttons: allow using a button element for button blocks ([54206](https://github.com/WordPress/gutenberg/pull/54206#top)) . * Post Content: add block gap support ([54282](https://github.com/WordPress/gutenberg/pull/54282)). * Post Content: add color control support [(51326](https://github.com/WordPress/gutenberg/pull/51326)). * Footnotes: Add link, background, and text color support ([52897](https://github.com/WordPress/gutenberg/pull/52897)). * Footnotes: Add typography, dimensions, and border block supports ([53044](https://github.com/WordPress/gutenberg/pull/53044)). Site Editor focused: * Patterns: add a sticky header and pagination to make browsing patterns more user friendly ([52663](https://github.com/WordPress/gutenberg/pull/52663#top)). * Site Editor: add ability to switch templates when working on a page ([51477](https://github.com/WordPress/gutenberg/pull/51477)). * Template parts: add more details to the template part panel ([52476](https://github.com/WordPress/gutenberg/pull/52476#top)). * Remove “post” from block titles, simplifying each block name ([53492](https://github.com/WordPress/gutenberg/pull/53492#top)). * Global Styles: Introduced a reset to default global styles revision ([52965](https://github.com/WordPress/gutenberg/pull/52965)) and reduced the visibility check from two to one revision ([53281](https://github.com/WordPress/gutenberg/pull/53281)). * Update the confirmation notice when applying a style revision over unsaved changes for consistency with other confirmation notices ([52972](https://github.com/WordPress/gutenberg/pull/52972#top)). * Global Styles: Update Block specific CSS label to include additional instructions ([49626](https://github.com/WordPress/gutenberg/pull/49626#top)). * Theme Previews: Make the back button customizable. ([54242](https://github.com/WordPress/gutenberg/pull/54242)) * Top Toolbar/Post Editor: Make order of pinned items consistent with the Site Editor ([53908](https://github.com/WordPress/gutenberg/pull/53908#top)). Media: Add a MIME type exception for .docx generated by Google Docs (trac [57898](https://core.trac.wordpress.org/ticket/57898)). **Visuals:** [sticky header and pagination for patterns video](https://drive.google.com/file/d/12TDyKQLFrxJyWGh4BOkDJAnPgTRof8zN/view?usp=drive_link), **Adoption approach:** **Key Make Posts/GitHub/Trac Issue(s):** Add Typography: text orientation ([50822](https://github.com/WordPress/gutenberg/pull/50822)) ##### Turn off layout controls on a per block basis via theme.json [block theme] [site admin] Layout controls can now be disabled on a per block basis as part of [additional efforts to curate the editing experience.](https://developer.wordpress.org/block-editor/how-to-guides/curating-the-editor-experience/) To disable from theme.json the required property is allowEditing: false. This property can be added in settings.layout to disable the controls for all blocks, or in settings.blocks.[block name] to disable for specific blocks. **Visuals:** N/A **Adoption approach:** opt out via theme.json. For example with the Buttons block: “settings”: { “blocks”: { “core/buttons”: { “layout”: false **Key Make Posts/GitHub/Trac Issue(s):** Allow layout controls to be disabled per block from theme.json. ([53378](https://github.com/WordPress/gutenberg/pull/53378)) ##### Query loop block: enhanced pagination with extra control [site admin] [end user] Gone are the days of needing a page refresh when switching between different pages in a Query Loop block thanks to a new option you can toggle on/off as you’d like. This enhanced pagination is powered by a private version of the Interactivity API and provides a slick browsing experience. For added control, the ability to set the number of pages in the Query Page Numbers block has been added as well. **Visuals:** [YouTube video explaining improved pagination feature](https://youtu.be/y7YHFncLvD4). **Adoption approach:** **Key Make Posts/GitHub/Trac Issue(s):** Query block: Client-side pagination ([53812](https://github.com/WordPress/gutenberg/pull/53812)), make mid size parameter settable for Query Pagination block. ([#51216](https://github.com/WordPress/gutenberg/pull/51216)), Query block: Start prefetching on first click to next/previous. ([54781](https://github.com/WordPress/gutenberg/pull/54781)) ##### New Progress Bar Component [plugin author] [A new, horizontal ProgressBar component](https://wordpress.github.io/gutenberg/?path=/story/components-experimental-progressbar--default) is available for use and can be seen when loading the Site Editor. **Adoption approach:** opt in **Key Make Posts/GitHub/Trac Issue(s):** Use progress bar in the Site Editor ([53032](https://github.com/WordPress/gutenberg/pull/53032)), Components: introduce a basic ProgressBar component ([53030](https://github.com/WordPress/gutenberg/pull/53030)). ##### Configure your own fluid typography min and max viewport width [theme author] After fluid typography was introduced in WordPress 6.1, extenders expressed wanting more control over the inner workings of this feature. To provide that, you can now set your own min and max viewport width values to the typography.fluid theme.json schema. For context, the min and max viewport widths define the boundaries for when font size clamp values will stop being “fluid”. For example, consider the following theme.json settings: “typography”: { “fluid”: { “maxViewportWidth”: “800px”, “minViewportWidth”: “600px” In this example, between the browser widths of 600px and 800px a font size will be fluid. If the browser width is narrower or wider, the font size will no longer shrink or grow. **Adoption approach:** opt in by setting your own default sizes. **Key Make Posts/GitHub/Trac Issue(s):** Fluid Typography: Added ability for theme developers to configure their own default min and max viewport widths for calculating fluid font sizes ([53081](https://github.com/WordPress/gutenberg/pull/53081)) ##### Add ability to prevent editing blocks using useBlockEditingMode() [plugin author] A previously private API used to power the page editing experience in the Site Editor is now public after requests for use from extenders. At the simplest, this new API lets you restrict the editing UI of a block and its children, including letting you disable the entire editor except for certain blocks. A new hook is available called useBlockEditingMode( clientId, mode ): A block can call this in its edit function with the mode set to one of the three options: * ‘disabled’ – This prevents editing the block entirely. The block cannot be selected or interacted with. It uses the same pointer-events: disabled mechanism that is used when templateLock is set to ‘contentOnly’. * ‘contentOnly’ – This allows editing the block but removes most UI shown in the block toolbar so that only content related buttons (e.g. formatting) are shown. The block cannot be moved, deleted, etc. It’s similar to the treatment received by a content block when templateLock is set to ‘contentOnly’. * ‘default’ – Default. Block is fully editable, moveable, removable, etc. **Adoption approach:** opt in via using useBlockEditingMode() **Key Make Posts/GitHub/Trac Issue(s):** make useBlockEditingMode() public ([52094](https://github.com/WordPress/gutenberg/pull/52094)) ##### Use the ‘nofollow’ setting when adding links The ability to set a link as “nofollow” has been added to the available link control options for built in support of a standard practice for more advanced SEO efforts that’s [recommended by major search providers as a way of qualifying outbound links](https://developers.google.com/search/docs/crawling-indexing/qualify-outbound-links). **Visuals:** [screenshot](https://drive.google.com/file/d/1-A-RqGd9vTQQN419c5odsV1C5AxXBXbh/view?usp=drive_link) of the new option. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** add ‘nofollow’ setting to inline links ([53945](https://github.com/WordPress/gutenberg/pull/53945)) ##### Performance improvements Overall, 6.4 includes various performance-related updates across a wide range of focuses, some big and some small. Noteworthy call outs include: [improvements to template loading performance](https://core.trac.wordpress.org/query?focuses=~performance&component=Themes&milestone=6.4) for Block Themes and Classic Themes, [usage of the new script loading strategies “defer” and “async”](https://core.trac.wordpress.org/query?focuses=~javascript+performance&milestone=6.4) in core, blocks, and themes, additional enhancements to [optimize image loading performance](https://core.trac.wordpress.org/query?focuses=~performance&component=Media&milestone=6.4&order=priority), and new functions to optimize the use of [autoloaded options](https://core.trac.wordpress.org/query?focuses=~performance&component=Options%2C+Meta+APIs&component=Database&milestone=6.4). Here are a few more to dig into: * Bundled Theme: Implement the\_header\_image\_tag function for enhanced compatibility for older core themes ([58675](https://core.trac.wordpress.org/ticket/58675)) * Bundled Theme: Add missing dimension attributes to images in Twenty Twenty-Two patterns ([59256](https://core.trac.wordpress.org/ticket/59256)). * Bundled Theme: Incorporate script loading strategies in bundled themes ([59316](https://core.trac.wordpress.org/ticket/59316)). * Comments: Delay loading comment-reply script with async loading strategy ([58870](https://core.trac.wordpress.org/ticket/58870)). * Editor: Introduce get\_block\_asset\_url Utility Function ([58525](https://core.trac.wordpress.org/ticket/58525)). * General: Update wp\_register\_script() calls in core to use new function signature ([58634](https://core.trac.wordpress.org/ticket/58634)). * Media: Enhance wp\_get\_loading\_optimization\_attributes() to support arbitrary context values ([58894](https://core.trac.wordpress.org/ticket/58894)). * Media: Introduce filters to customize the results from wp\_get\_loading\_optimization\_attributes() ([58893](https://core.trac.wordpress.org/ticket/58893)). * Options, Meta APIs: Introduce prime\_options() to load multiple options with a single database request ([58962](https://core.trac.wordpress.org/ticket/58962)). * Options, Meta APIs: Introduce wp\_set\_option\_autoload\_values() ([58964](https://core.trac.wordpress.org/ticket/58964)). * Options, Meta APIs: Optimize get\_option by relocating notoptions cache lookup ([58277](https://core.trac.wordpress.org/ticket/58277)). * Plugins: Move the load of `array\_keys` to a different level in the `WP\_Hook` class ([58458](https://core.trac.wordpress.org/ticket/58458)). * Posts, Post Types: Avoid unnecessarily parsing blocks twice in wp\_trim\_excerpt(). ([58682](https://core.trac.wordpress.org/ticket/58682)). * Query: Use split queries in WP\_Query if persistent object caching is enabled ([57296](https://core.trac.wordpress.org/ticket/57296)). * REST API: Avoid unnecessarily preparing item links REST API index ([57902](https://core.trac.wordpress.org/ticket/57902)). * Taxonomy: Introduce ‘cache\_results’ parameter to WP\_Term\_Query for bypassing query caching ([52710](https://core.trac.wordpress.org/ticket/52710)). * Themes: Remove unnecessary check if file exists in the theme functions ([59279](https://core.trac.wordpress.org/ticket/59279)). * Themes: Improve performance of get\_block\_theme\_folders function ([58319](https://core.trac.wordpress.org/ticket/58319)) For a full list from trac, [please view this trac query.](https://core.trac.wordpress.org/query?status=closed&focuses=~performance&milestone=6.4&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority) ##### Technical note on PHP 8 Compatibility This is a more technical note and intentional call out that WordPress 6.3 was compatible with exceptions with PHP 8.0 and 8.1, meaning the “beta support” label is removed. As a result, the same applies for WordPress 6.4. For more information, please review the [Server Environment recommendations](https://make.wordpress.org/hosting/handbook/server-environment/#php) from the Hosting handbook. #### **Pushed to 6.5** These are the items that didn’t make it in the 6.4 release but that folks might have seen originally slated for inclusion. ##### Introducing the Table of Contents block As the name suggests, the Table of Contents block automatically creates a table of contents generated based on headings on your post or page with an option to convert it to a static list. **Adoption approach:** N/A **Key Make Posts/GitHub/Trac Issue(s):** Stabilize the table of contents block ([42229](https://github.com/WordPress/gutenberg/issues/42229)) ##### Bring post formats to block themes **Key Make Posts/GitHub/Trac Issue(s):** bring post formats to block themes ([53049](https://github.com/WordPress/gutenberg/issues/53049)) ##### Public Interactivity API [Create @wordpress/interactivity with the Interactivity API](https://github.com/WordPress/gutenberg/pull/50906) was merged ahead of 6.3 but is not available for broader public use for 6.4. ##### Introducing the Time to Read block A simple new block that takes the time to read metric already available in the editor interface and allows you to add it to your content, showing visitors how long a post will take to read. **Key Make Posts/GitHub/Trac Issue(s):** Add post time to read block ([43403](https://github.com/WordPress/gutenberg/pull/43403)) ##### Introducing the Scrolling Marquee Block **Key Make Posts/GitHub/Trac Issue(s):** Add scrolling marquee block ([41730](https://github.com/WordPress/gutenberg/issues/41730)) ##### Revisions for templates and template parts **Key Make Posts/GitHub/Trac Issue(s):** <https://core.trac.wordpress.org/ticket/57704> ##### Rollbacks (for failures) during automatic updates **Key Make Posts/GitHub/Trac Issue(s):** <https://core.trac.wordpress.org/ticket/58281#comment:23> ##### Improved pattern experience in non-block themes**Adoption approach:** N/A. **Key Make Posts/GitHub/Trac Issue(s):** Expose the Patterns menu to the Classic theme ([5201](https://github.com/WordPress/wordpress-develop/pull/5201)) and trac ticket #[58827](https://core.trac.wordpress.org/ticket/58827). ##### Manage fonts with the Font Library & add your own collection **Key Make Posts/GitHub/Trac Issue(s):** [Font Library. Stage 1: Manage fonts and Local fonts upload](https://github.com/WordPress/gutenberg/issues/52698), [Font Library. Stage 2: Fonts Library extensions](https://github.com/WordPress/gutenberg/issues/53307), [Font Library](https://github.com/WordPress/gutenberg/issues/54169)., WordPress 6.4 Source of Truth, agm, 01hcd4rwy1yzhqw8t81behbd9g.