
How to create reusable blocks (synced patterns) in WordPress?
To create a reusable block in WordPress, select the block (or group of blocks) you want to reuse in the editor, click the three-dot Options menu in the toolbar, choose Create pattern, give it a name, keep the Synced toggle switched on, and click Add. Since WordPress 6.3, reusable blocks are called synced patterns, but they work the same way: edit the pattern once, and every place it appears updates automatically.
If you find yourself pasting the same call-to-action box, author bio, disclaimer, or newsletter signup into post after post, synced patterns will save you a lot of time. This guide explains what synced patterns are, how they differ from regular (unsynced) patterns, how to create, insert, edit, and manage them, and how developers can work with them in code.
What Are Reusable Blocks (Synced Patterns)?
A synced pattern is a saved block or group of blocks that you can insert anywhere on your site, with a single shared source of content. When you change the pattern, the change appears everywhere it's used.
Reusable blocks were introduced alongside the block editor in WordPress 5.0. In WordPress 6.3, the feature was merged into the broader Patterns system and renamed:
- Synced patterns: The new name for reusable blocks. Content is shared, so editing one instance updates all of them.
- Unsynced patterns: Saved starting layouts. When you insert one, you get an independent copy that you can change freely without affecting other posts.
Behind the scenes, synced patterns are still stored as a post type called wp_block, and each instance in your content is a reference to that post. That's why a single edit can update hundreds of pages at once.
Common Uses for Synced Patterns
- Calls-to-action, such as "Book a free consultation" boxes
- Newsletter signup sections
- Author bios or "About this site" boxes
- Affiliate or legal disclaimers
- Contact details, opening hours, or addresses
- Promotional banners for a current sale or event
- Social follow sections
Anything that should look and read identically everywhere is a good candidate.
Synced vs. Unsynced Patterns: Which Should You Use?
Choosing the right type saves you headaches later.
- Use a synced pattern when content must stay identical everywhere, and you want to update it in one place. Example: a disclaimer that legal might change.
- Use an unsynced pattern when you want a reusable layout that each post customizes. Example: a "recipe card" layout where each recipe has different ingredients.
A quick test: if you'd be annoyed that an edit in one post changed every other post, you want an unsynced pattern.
How to Create a Synced Pattern From Existing Blocks
This is the most common method.
- Build the content: In any post or page, create the blocks you want to reuse. For multiple blocks, it's best to wrap them in a Group block first so they stay together. Select the blocks, then choose Group from the toolbar options.
- Select the block: Click the block or group so its toolbar appears.
- Open the options menu: Click the three vertical dots (Options) in the block toolbar.
- Choose Create pattern: In older 6.x versions this may read Create pattern/reusable block.
- Name the pattern: Enter a clear, descriptive name, such as "CTA: Free Consultation". Good names make patterns easy to find later.
- Pick a category (optional): Assign one or more pattern categories to keep your library organized.
- Keep Synced on: Make sure the Synced toggle is enabled.
- Click Add: The pattern is saved, and the block in your post becomes an instance of it.
You'll know it worked because the block is now outlined in purple and labeled with the pattern's name when selected.
How to Create a Synced Pattern From the Patterns Screen
You can also create patterns from scratch without starting in a post.
- Block themes: Go to Appearance > Editor > Patterns, click the + (Add New) button, and choose Add new pattern.
- Classic themes: Go to Appearance > Patterns (available in recent versions) or visit
/wp-admin/edit.php?post_type=wp_blockdirectly.
Give the pattern a name, choose Synced, and build its content in the editor that opens. Save when you're done.
How to Insert a Synced Pattern
Once saved, inserting a pattern takes seconds.
- Open the block inserter: Click the + (Toggle block inserter) button at the top left of the editor.
- Switch to the Patterns tab: Click Patterns.
- Find your pattern: Choose My patterns from the category list, or type the name in the search box.
- Click to insert: The pattern appears in your content at the cursor position.
A faster option: type a forward slash / in an empty paragraph followed by the pattern name, and choose it from the suggestions.
How to Edit a Synced Pattern
Remember, editing a synced pattern changes it everywhere.
- Select the pattern in any post where it's used.
- Click Edit original in the toolbar. This opens the pattern in its own editor.
- Make your changes and click Save.
- Return to your post, using the back link at the top of the editor.
Every post and page that contains the pattern now shows the updated content.
Overriding Content in Individual Instances
WordPress 6.6 added pattern overrides, which let you keep the design synced while allowing specific blocks inside to have different content per instance. For example, you might keep a testimonial card's layout identical across the site but let each instance have its own quote and name.
To enable overrides:
- Open the synced pattern with Edit original.
- Select a supported block inside it (such as a Paragraph, Heading, Image, or Button).
- In the block settings sidebar, open the Advanced panel and click Enable overrides.
- Give the block a name when prompted and save the pattern.
In each instance, those blocks can now be edited individually, while everything else stays synced. Support for which blocks can be overridden has been expanding over successive releases, so check the options available in your version.
How to Detach a Synced Pattern
Sometimes you want one instance to become independent, such as when a single page needs a slightly different call-to-action.
- Select the pattern instance.
- Click the three-dot Options menu.
- Choose Detach.
The blocks are converted into normal, editable blocks in that post only. The original pattern and all other instances are unaffected.
How to Manage Your Pattern Library
As your library grows, a bit of housekeeping keeps it useful.
Renaming and Deleting
In Appearance > Editor > Patterns (or the classic Patterns screen), hover over a pattern to rename, duplicate, or delete it.
Be careful with deletion. If you delete a synced pattern that's still used in posts, those instances will show a notice that the block has been deleted or is unavailable. Detach it in important posts first, or replace it with another pattern.
Organizing With Categories
Pattern categories group related patterns in the inserter. You can assign categories when you create a pattern or edit them later. Consider categories such as "Calls to Action", "Legal", and "Marketing".
Exporting and Importing Patterns
You can move patterns between sites:
- In the pattern library, open the pattern's actions menu and choose Export as JSON.
- On the other site, go to the Patterns screen and choose Import from JSON from the add-new menu.
This is handy for agencies or anyone maintaining several related sites.
Working With Synced Patterns in Code
Developers sometimes need to output a synced pattern in a template, or create one programmatically. Add any PHP below to your child theme's functions.php or a small custom plugin.
Display a Synced Pattern in a Block Theme Template
In a block theme, reference a synced pattern by its post ID using the Pattern (core/block) block markup:
<!-- wp:block {"ref":123} /-->
Replace 123 with the ID of the pattern. You can find the ID in the URL when editing the pattern (post=123).
Display a Synced Pattern in PHP
In a classic theme template, you can render the same block through do_blocks():
<?php
echo do_blocks( '<!-- wp:block {"ref":123} /-->' );
?>
Create a Shortcode for a Synced Pattern
If you need to place a synced pattern somewhere that only accepts shortcodes, such as an older widget area or a page builder, you can register a simple shortcode:
function sajjad_synced_pattern_shortcode( $atts ) {
$atts = shortcode_atts(
array( 'id' => 0 ),
$atts,
'synced_pattern'
);
$pattern_id = absint( $atts['id'] );
if ( ! $pattern_id ) {
return '';
}
$pattern = get_post( $pattern_id );
if ( ! $pattern || 'wp_block' !== $pattern->post_type || 'publish' !== $pattern->post_status ) {
return '';
}
return do_blocks( '<!-- wp:block {"ref":' . $pattern_id . '} /-->' );
}
add_shortcode( 'synced_pattern', 'sajjad_synced_pattern_shortcode' );
Usage: [synced_pattern id="123"].
Register an Unsynced Pattern for Your Theme
Theme and plugin developers usually register unsynced patterns in code, which then appear in the inserter for every user. In a block theme, the simplest method is a PHP file in the theme's /patterns folder, which WordPress loads automatically:
<?php
/**
* Title: Call to Action Box
* Slug: mytheme/cta-box
* Categories: call-to-action
* Description: A centered call-to-action with a heading and button.
*/
?>
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group">
<!-- wp:heading {"textAlign":"center"} -->
<h2 class="wp-block-heading has-text-align-center"><?php echo esc_html__( 'Ready to get started?', 'mytheme' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons">
<!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="/contact/"><?php echo esc_html__( 'Contact us', 'mytheme' ); ?></a></div>
<!-- /wp:button -->
</div>
<!-- /wp:buttons -->
</div>
<!-- /wp:group -->
Save it as patterns/cta-box.php in your theme. Patterns registered this way are templates, not synced content. If you need true synced content across a site, create it through the editor so it's stored as a wp_block post.
Query Synced Patterns
To list synced patterns, for instance in an admin tool, query the wp_block post type:
$sajjad_patterns = get_posts(
array(
'post_type' => 'wp_block',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
)
);
foreach ( $sajjad_patterns as $pattern ) {
echo esc_html( $pattern->ID . ': ' . $pattern->post_title ) . '<br>';
}
WordPress stores whether a pattern is synced in the wp_pattern_sync_status post meta. Unsynced patterns have this set to unsynced, while synced patterns typically have no value.
Best Practices for Synced Patterns
- Name patterns clearly: Prefix names by purpose, like "CTA:", "Legal:", or "Promo:".
- Group multiple blocks: Wrap related blocks in a Group before creating the pattern so spacing and backgrounds stay consistent.
- Keep them focused: A pattern that does one job is easier to reuse than a giant section with many parts.
- Think before editing: Check where a pattern is used before making big changes, since edits are global.
- Use overrides for variations: If you keep detaching a pattern to change one line, pattern overrides are probably a better fit.
- Audit occasionally: Remove patterns no one uses, and update time-sensitive promotions.
Troubleshooting Common Issues
The Create pattern option is missing: Make sure your user role can create patterns (Editors and Administrators can by default), and that you've selected a block rather than text inside it.
Changes aren't showing on the front end: Clear your caching plugin and any server or CDN cache after editing a synced pattern.
A pattern shows as "Block has been deleted or is unavailable": The underlying wp_block post was deleted or moved to the trash. Restore it from the trash, or remove the broken instance.
I edited one post and everything changed: That's how synced patterns work. Use Detach for one-off changes, or convert the pattern to unsynced for future use.
FAQ: Reusable Blocks and Synced Patterns
Yes. Since WordPress 6.3, reusable blocks are called synced patterns. They work the same way, and existing reusable blocks were automatically converted.
Synced patterns share one source of content, so editing one instance updates all of them. Unsynced patterns insert an independent copy that you can change without affecting anything else.
In block themes, go to Appearance > Editor > Patterns. In classic themes, use Appearance > Patterns. In the editor, open the block inserter, choose the Patterns tab, and select My patterns.
Yes. Select the pattern and choose Detach from the Options menu to turn it into regular blocks in that post only. Alternatively, enable pattern overrides for specific blocks inside the pattern.
Any posts still using it will show a notice that the block is unavailable. Restore the pattern from the trash or replace those instances before deleting it permanently.
Yes. Export the pattern as a JSON file from the pattern library, then import it on the other site from its Patterns screen.
No meaningful impact for normal use. WordPress loads the referenced content when rendering the page, which is lightweight, and caching handles the rest.
Conclusion
Synced patterns, formerly known as reusable blocks, are one of the easiest ways to work faster in WordPress. Build a block or group once, save it with Create pattern while keeping Synced switched on, and you can insert it anywhere and update every copy with a single edit. Unsynced patterns fill the other role: reusable layouts that each post can customize.
Start by turning two or three things you repeat most often, such as a call-to-action or disclaimer, into synced patterns. Name them clearly, organize them with categories, and use pattern overrides or detaching when you need variation. With a small, well-maintained pattern library, keeping your site consistent becomes almost effortless.


