The Developer’s Guide to WordPress 6.8
WordPress 6.8 introduces powerful updates for plugin and theme developers—dive into the latest APIs, design tools, and performance features.

WordPress 6.8, codenamed “Cecil,” includes loads of goodies for developers to tinker with. As usual, I’m like an overwhelmed toddler in a toy shop, just trying to figure out which toy I want to take for a test spin first.
The 6.8 update touched many areas of the WordPress Core code, including everything from the block library to performance to patterns. Plus, there are plenty of other quality-of-life improvements in 6.8 for anyone building plugins and themes.
Without further ado, let’s jump straight into them.
For detailed information on each development change, check out the official WordPress 6.8 Field Guide on the Make WordPress Core blog.
- More performant block type registration
- Style Book sections and more
- Block Library updates
- Design tools extended to more blocks
- Organizing patterns
- API updates
- Security: switched to bcrypt for password hashing
- Performance improvements
- What will you build with WordPress 6.8?
More performant block type registration
WordPress 6.8 eliminates the need to manually register block types thanks to its new wp_register_block_types_from_metadata_collection()
function. It is a wrapper for the blocks-manifest.php
file and the wp_register_block_metadata_collection()
function introduced in WordPress 6.7.
Because all of the block data is stored as PHP in blocks-manifest.php
, you can register all of your plugin’s block types without reading individual JSON files. Overall, it’s just a more efficient way to register block types—and yes, you can use it for registering single block types, too!
In WordPress 6.8, you can register all of your block types with this call:
wp_register_block_types_from_metadata_collection(
__DIR__ . '/build',
__DIR__ . '/build/blocks-manifest.php'
);
Read the developer note on the Make WordPress Core blog for more information or to find out how to use this in a backward-compatible way when supporting older versions of WordPress.
Style Book sections and more

One of the biggest improvements in 6.8 is the interface update to the Style Book, which separates your style settings into sections. Shown in the screenshot above, you can see how selecting a typeset makes it easier to test and preview your site’s typography.
There are also a couple of other notable upgrades to the Style Book. It now has its own route, which lets you link directly to it. The new URL path is /wp-admin/site-editor.php?p=%2Fstyles&preview=stylebook
. Additionally, Style Book support was added for classic themes.
Block Library updates
Between new blocks and additional ways to use existing blocks, WordPress 6.8 brings useful enhancements to the Block Library that expand what you can build and how you build it.
New block: Query Total

WordPress 6.8 ships a new block for sharing information to visitors about the current posts query: Query Total. It should be used inside an existing Query Loop block and has two display options:
- Total results, which displays the total number of query results found.
- Range display, which shows the current results you’re looking at in the total results range.
Gallery lightbox

WordPress 6.8 brings the lightbox effect to the Gallery block. The feature is the same as it already works for individual Image blocks. You set the lightbox effect at the Gallery level by clicking on the Link button in the toolbar and selecting the Enlarge on click option.
It’s worth noting that this feature does not create a lightbox slideshow where you can scroll through all images for the Gallery; it merely applies the existing lightbox feature to the individual Image blocks.
Details block

You can now group multiple Details blocks together via the name
HTML attribute. When multiple
elements share the same name
, browsers will automatically close an open element when another is opened, creating an accordion effect. You can set the name
attribute under Advanced → Name Attribute in the block inspector sidebar.
The Details block also gained HTML anchor support in WordPress 6.8. It is located under Advanced → HTML Anchor.
Nice-to-have feature additions
WordPress 6.8 boasts smaller feature additions to several other blocks, including:
- The Navigation Link block now allows any non-interactive RichText format within the link content.
- The Separator block can now be set to a element for decorative-only use cases (the default
is meant for an actual thematic break in the content).- The File block now supports content-only editing so you can use it for locked patterns while allowing the user to still edit it.
- The Cover block can now be set to a specific image resolution (also possible when using the featured image).
- The Social Link block now has a Discord block variation and an associated icon.
- The Query Loop block gained a couple of nice additions:
- You can sort pages by menu order in either ascending or descending order.
- You can also ignore sticky posts for custom queries.
Notable block CSS changes
WordPress 6.8 includes a couple of CSS-related changes that are unlikely to break theme designs, but they are worth noting as general improvements:
- The Buttons block now has
box-sizing: border-box
applied, which brings consistency with other blocks. - The Image block’s overlay styles are now handled via a
data-wp-bind--style
directive rather than an inlinetag.
Design tools extended to more blocks
Many Core blocks received much-needed design tool updates, improving consistency in block styling options.
In this context, design tool support means that the supported options appear for these blocks in the editor UI. Even if a block doesn’t support the tool, you can still configure the associated styles via
theme.json
.The Archives, Category, Content, and Page List blocks now support more color tools. Many blocks also gained border support:
- Archives
- Comments
- Comments Link
- Comments Count
- Content
- Latest Posts
- Page List
- Query Total
- RSS
The Content, Page List, and RSS blocks also now support spacing design tools.
For a full list of design tools support, check out the roster of design tools per block (WordPress 6.8 edition).
Organizing patterns
Developers can now organize patterns in more intuitive, straightforward ways.
Add patterns to subfolders
If you ship a lot of patterns with your theme, you may have been frustrated with a seemingly endless, unorganized list under your
/patterns
folder.With WordPress 6.8, you can organize your custom patterns in subfolders under
/patterns
, making navigation more straightforward.For example, you may separate header and footer patterns in your theme folder like so:
/patterns /header centered.php default.php /footer default.php links.php
Starter patterns category
In the UI, patterns that have been assigned to the
core/post-content
block type (the method for registering a starter pattern) appear under the Starter Content category. This goes hand-in-hand with another update that lists all patterns in the inserter.Content creators who want to prevent the Starter Content modal from appearing for every new page can disable it with a toggle switch on the bottom of the modal or via the Editor → 3-dot-menu → Preferences screen.
With the new version, theme developers can add starter content patterns for all post types: posts, pages, and any registered custom post types.
API updates
WordPress 6.8 introduces several API-level improvements aimed at making development more robust and extensible. These changes enhance how developers interact with data, insert blocks, and work with patterns.
Interactivity
The
wp-each
directive has been improved to better handle data by first checking if a property is iterable instead of attempting to call its.map
method directly. This will avoid errors when non-iterable values are used.You can find a best-practices guide for the 6.8 release on the Make WordPress Core blog. Following these best practices will help keep your code up to date with the latest standards and set you up better for future iterations of the API.
Block Hooks
The Block Hooks API received two major updates. The first extends the Block Hooks mechanism to post content, allowing you to dynamically insert hooked blocks directly into posts and pages. The second update lets Block Hooks work with synced patterns.
Security: switched to
bcrypt
for password hashingThe algorithm that WordPress uses to hash and store user passwords in the database changed in WordPress 6.8 to
bcrypt
.It previously used
phpass
, but the adoption ofbcrypt
strengthens password security by requiring significantly more computational power to crack password hashes.If your plugin uses the
wp_hash_password()
orwp_check_password()
functions, it should continue working as expected. However, if you were directly handling phpass hashes, you would need to update your code.Read the developer note on the update for more details. The post also provides details on the new
wp_fast_hash()
andwp_verify_fast_hash()
functions for hashing a randomly generated string with sufficient entropy.Performance improvements
Finally, WordPress 6.8 brings some helpful performance improvements to all sites.
Speculative loading
WordPress 6.8 introduces speculative loading, which lets supporting browsers prefetch or prerender URLs. It can lead to almost instant page load times since they are loaded before the user navigates to them.
This feature was initially released in April 2024 as the Speculative Loading plugin. Since then, contributors have refined the code until it was ready for inclusion in WordPress Core.
The new feature comes with several filter hooks for you to modify how speculative loading works:
wp_speculation_rules_href_exclude_paths
: For excluding URL patterns from speculative loading.wp_speculation_rules_configuration
: For modifying the speculative loading configuration.wp_load_speculation_rules
: For including additional speculative loading rules.
useSelect
performance warningWhen you have
SCRIPT_DEBUG
enabled (as is common practice in development), WordPress will now output potential performance warnings in the console whenuseSelect
is used to unnecessarily re-render. This change will benefit anyone extending the block editor and help them write more performant code.Filter hook for loading block assets on demand
Before WordPress 6.8, the
should_load_separate_block_assets
filter hook had two responsibilities:- To load separate stylesheets for Core blocks instead of always loading the combined
wp-block-library
stylesheet containing all block CSS - To load scripts and styles on demand based on whether they are used on a particular page
In 6.8, a new filter hook named
should_load_block_assets_on_demand
exists for the second purpose of determining when to load assets. The original hook will work as before, but it’s recommended to filter it only to override whether stylesheets should be separated.What will you build with WordPress 6.8?
WordPress 6.8 continues to move the WordPress software forward with cleaner APIs, improved performance, and better tools for site building. Whether you’re shipping themes, maintaining a plugin, or just exploring what’s possible with the block editor, this release will make your workflows more efficient and your code easier to maintain.
If you’re building on WordPress.com, all of this is available to you automatically—no version management required. You get the latest features, developer tools like SSH and GitHub deployments, and a fully managed environment that stays out of your way so you can focus on shipping.