is meant for an actual thematic break in the content).
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:
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 hashing
The 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 of bcrypt strengthens password security by requiring significantly more computational power to crack password hashes.
If your plugin uses the wp_hash_password() or wp_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() and wp_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 warning
When you have SCRIPT_DEBUG enabled (as is common practice in development), WordPress will now output potential performance warnings in the console when useSelect 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-librarystylesheet 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.