Type something to search...
How to Use Synced Patterns (Reusable Blocks) in WordPress?

How to Use Synced Patterns (Reusable Blocks) in WordPress?

A company changes its support phone number. The number appears in a contact box at the bottom of forty blog posts, a dozen service pages, and three landing pages. If each of those boxes was typed in separately, someone now spends an afternoon hunting through the site, and they will miss a few. If the box was a synced pattern, they edit it once and every page updates instantly.

Synced patterns, known as reusable blocks before WordPress 6.3, are the block editor's answer to content that must stay identical everywhere it appears. They are simple to create, but there are a few details that catch people out: what happens when you edit one, how to make a one-off change without breaking the link, where they are stored, and how to use them outside the editor.

This article covers what synced patterns are and when to use them, creating, inserting, editing, and detaching them, managing your pattern library, pattern overrides for per-page text and images, moving patterns between sites, and working with synced patterns in PHP and WP-CLI.

What Is a Synced Pattern?

A synced pattern is a group of blocks saved once and inserted by reference. Every place it appears points to the same source, so a change to the source shows up everywhere.

Synced patternUnsynced (regular) patternTemplate part
Edit once, update everywhereYesNoYes
Can be placed inside post contentYesYesNo, used in templates
Created byUsers in the editorUsers, themes, pluginsThemes and the Site Editor
Stored aswp_block postwp_block post or codewp_template_part post or file
Survives a theme switchYesUser ones yes, theme ones noNo

Use a synced pattern for content blocks that must be identical: a newsletter signup, an affiliate disclosure, a contact box, a promotional banner, or a standard author note. Use a regular pattern when you want a layout starting point that each page then customizes. Regular patterns are covered in what block patterns are and how to create your own.

Reusable Blocks Became Synced Patterns

WordPress 6.3 merged reusable blocks into the patterns system. Old reusable blocks became synced patterns automatically, with no migration needed. The underlying storage did not change: both are posts of type wp_block. If you read older tutorials that mention reusable blocks, the concepts map directly.

Creating a Synced Pattern

  1. Build the content in any post or page. Wrap multiple blocks in a Group block so they move as one unit.
  2. Select the Group (or select several blocks).
  3. Click the Options button (three dots) in the block toolbar and choose Create pattern.
  4. Give it a clear name, such as "Contact Box - Support".
  5. Choose a category if you want it easier to find.
  6. Leave the Synced toggle on.
  7. Click Add.

The selected blocks are replaced by the synced pattern. You will notice the block now shows a purple outline and icon in the editor, which is how WordPress signals that the content is shared.

Inserting a Synced Pattern

  1. Click the + Block Inserter.
  2. Open the Patterns tab and choose My patterns, or search by name.
  3. Click the pattern to insert it.

You can also type / followed by the pattern name in an empty paragraph. Synced patterns show a sync icon in the inserter to distinguish them from regular patterns.

Editing a Synced Pattern

Because edits affect every instance, WordPress does not let you change a synced pattern's content casually inline. To edit it:

  1. Select the pattern in any post.
  2. Click Edit original in the block toolbar.
  3. WordPress opens the pattern in its own editor, isolated from the page.
  4. Make your changes and click Save.
  5. Use the back button to return to the page you were on.

Every post and page that uses the pattern now shows the new content. There is no need to re-save those pages, because they store only a reference to the pattern, not its content.

That is worth stressing to clients: editing the original is a site-wide change. If a page needs something slightly different, detach the pattern or use overrides instead.

Detaching a Synced Pattern

Sometimes one page needs a modified version. Detaching converts that single instance back into regular blocks:

  1. Select the pattern.
  2. Open the Options menu.
  3. Choose Detach.

The blocks are copied into the page and the link is broken. Future edits to the original no longer affect this page, and edits on this page no longer affect the original. Detaching is only for that one instance, and the pattern itself is unchanged.

Pattern Overrides: Different Text, Same Layout

Detaching is a blunt tool. If you want the same design everywhere but different text per page, such as a call-to-action box with a page-specific heading, use pattern overrides, available since WordPress 6.6.

With overrides, the pattern's layout and styling stay synced, while chosen blocks inside it can hold page-specific content.

  1. Edit the original synced pattern (Edit original).
  2. Select a block inside it that should be editable per page, such as the Heading.
  3. In the block sidebar, open Advanced.
  4. Click Enable overrides and give the block a name, such as "CTA heading".
  5. Repeat for other blocks, such as a Paragraph, a Button, or an Image.
  6. Save the pattern.

Now when the pattern is used on a page, editors can change the text in those named blocks, and only there. Everything else stays locked to the original. Overrides currently work with the Paragraph, Heading, Image, and Button blocks.

If an editor wants to undo their changes on a page, they select the pattern and choose Reset in the toolbar, which restores the original content for that instance.

Managing Your Synced Patterns

Where you find the full list depends on your theme.

On block themes:

  1. Go to Dashboard > Appearance > Editor.
  2. Click Patterns.
  3. Filter by My patterns or by category. Synced patterns are marked with a sync icon.

On classic themes:

  1. Go to Dashboard > Appearance > Patterns, or open the editor's options menu and choose Manage patterns.
  2. The list shows each pattern with its sync status.

From the list you can rename, edit, duplicate, export, and delete patterns. Duplicating is a safe way to create a variation without affecting the original.

What Happens When You Delete a Synced Pattern?

Deleting a synced pattern removes its content from every page that uses it. The pages keep a reference to a pattern that no longer exists, and the editor shows a notice that the block has been deleted or is unavailable. Before deleting, check where it is used, or detach it on the pages that should keep the content.

Moving Synced Patterns Between Sites

Patterns are stored in the database, so they do not travel with a theme. To copy them to another site:

  1. In the patterns list, open the pattern's actions menu and choose Export as JSON.
  2. On the other site, open the patterns list and choose Import from JSON, then upload the file.

The imported pattern keeps its content and sync status but gets a new ID on the destination site. WordPress's full content export under Dashboard > Tools > Export also includes patterns, as the post type is exported along with everything else. See how to import and export content between WordPress sites for that route.

How Synced Patterns Are Stored

Under the hood, every user-created pattern is a post of type wp_block. The block markup is in post_content, and the title is the pattern name. A post meta key, wp_pattern_sync_status, is set to unsynced for regular user patterns. Synced patterns have no value for that key.

When you insert a synced pattern, the page stores only a reference block:

<!-- Post content that uses a synced pattern -->
<!-- wp:block {"ref":482} /-->

With overrides, the reference also carries the per-page values:

<!-- Post content with pattern overrides -->
<!-- wp:block {"ref":482,"content":{"CTA heading":{"content":"Book a free audit"}}} /-->

At render time, WordPress loads post 482 and outputs its blocks, substituting any override values.

Working with Synced Patterns in Code

Listing Patterns with WP-CLI

# Terminal
wp post list --post_type=wp_block --fields=ID,post_title,post_status

Finding Where a Pattern Is Used

There is no built-in "used on" view, but you can search post content for the reference. Replace 482 with your pattern ID:

# Terminal
wp post list --post_type=post,page --s='"ref":482' --fields=ID,post_title,post_type

WordPress's search matches the string inside post_content, which is enough to find pages that embed the pattern. For a stricter search, query the database directly:

# Terminal
wp db query "SELECT ID, post_title FROM $(wp db prefix)posts WHERE post_status = 'publish' AND post_content LIKE '%wp:block {\"ref\":482%'"

Rendering a Synced Pattern in a PHP Template

On classic themes, you might want a synced pattern in footer.php or a sidebar, so editors can change it without touching code. Render the reference block with do_blocks():

<?php
// wp-content/themes/my-classic-theme/footer.php (excerpt)
$sitewide_cta_id = 482; // ID of the synced pattern.

if ( 'publish' === get_post_status( $sitewide_cta_id ) ) {
echo do_blocks( '<!-- wp:block {"ref":' . absint( $sitewide_cta_id ) . '} /-->' );
}

Hard-coding an ID is fragile across environments, because IDs differ between local, staging, and production. A more robust approach is to look the pattern up by its slug:

<?php
// wp-content/themes/my-classic-theme/functions.php
function mytheme_render_synced_pattern( $slug ) {
$pattern = get_page_by_path( $slug, OBJECT, 'wp_block' );

if ( ! $pattern || 'publish' !== $pattern->post_status ) {
return '';
}

return do_blocks( '<!-- wp:block {"ref":' . absint( $pattern->ID ) . '} /-->' );
}

Then call it from a template:

<?php
// wp-content/themes/my-classic-theme/footer.php (excerpt)
echo mytheme_render_synced_pattern( 'contact-box-support' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

The output is block HTML rendered by WordPress itself, so it is not escaped again. On block themes, you do not need PHP: insert the synced pattern directly into a template or template part in the Site Editor.

Controlling Who Can Edit Synced Patterns

Synced patterns follow standard post capabilities. Editors and administrators can edit any pattern, while authors can edit only their own. If you want only administrators to change site-wide content, map the wp_block capabilities with the map_meta_cap filter, or use a role management plugin. See how to set up and manage user roles in WordPress for background on capabilities.

Best Practices

  • Name patterns by purpose and location, such as "Footer CTA - Newsletter" or "Disclosure - Affiliate", so editors pick the right one.
  • Wrap content in a Group before converting, so spacing and background apply to the whole unit.
  • Use theme presets for colors and spacing so synced patterns adapt to style changes.
  • Prefer overrides to detaching when only the text differs. Detached copies drift apart over time.
  • Document site-wide patterns for clients, explaining that editing the original changes every page.
  • Back up before mass edits. A mistaken edit to a heavily used pattern goes live on every page at once.

Common Problems and Fixes

  • "Block has been deleted or is unavailable." The synced pattern was deleted or moved to trash. Restore it from the trash, or remove the reference block from the page.
  • Editing the pattern on one page changed it everywhere. That is how synced patterns work. Detach that instance, or enable overrides for the blocks that need page-specific content.
  • Cannot type into the pattern on a page. Synced content is locked inline. Click Edit original, or ask the pattern author to enable overrides.
  • Imported pattern does not appear on pages. Imported patterns get new IDs, so references from the old site do not match. Insert the imported pattern again on the destination site.
  • Overrides option is missing. The block type does not support overrides, or the site is older than WordPress 6.6. Use a supported block or update WordPress.

Synced Patterns FAQ

Yes. WordPress 6.3 renamed reusable blocks to synced patterns and merged them into the patterns interface. Existing reusable blocks became synced patterns automatically, and they are still stored as wp_block posts.

No. Pages store a reference to the pattern, not a copy of its content. When you save the original, every page that references it shows the new version immediately, although a page cache may need to be cleared.

Not noticeably. Rendering a synced pattern loads one extra post from the database. Page and object caching remove most of that cost, and the convenience usually outweighs it.

Not directly from a toggle on an existing pattern in all versions. The reliable approach is to insert it, detach it, and save the detached blocks as a new pattern with the Synced toggle turned off.

Yes. On block themes, you can insert synced patterns into templates and template parts in the Site Editor. On classic themes, render them in PHP templates with do_blocks and a reference block.

Conclusion

Synced patterns are the simplest way to keep repeated content consistent across a WordPress site. Create them from any group of blocks, insert them wherever they are needed, and edit the original once to update every page. Detach an instance when a page truly needs its own version, and use pattern overrides when the layout should stay shared but the text or image should change.

Manage them from the patterns screen, export them as JSON to reuse on other sites, and, when you need them outside post content, render them in PHP with a reference block. Used for the right content, synced patterns turn a site-wide edit from an afternoon of searching into a single save.

Here are some useful references for going deeper on synced patterns:

  1. WordPress Documentation: Patterns — creating, syncing, and managing patterns in the editor.
  2. WordPress Documentation: Reusable Blocks — background on the feature that became synced patterns.
  3. Make WordPress Core: WordPress 6.6 Field Guide — the release that introduced pattern overrides.
  4. Developer Reference: do_blocks() — rendering block markup in PHP.
  5. WP-CLI: wp post list — listing and filtering posts, including wp_block.
Tags :
Share :

Related Posts

WordPress optimization with specific recommended approach

WordPress optimization with specific recommended approach

Whether you run a high traffic WordPress installation or a small blog on a low cost shared host, you should optimize WordPress and your server to run

Continue Reading
Creating and Customizing WordPress Child Themes

Creating and Customizing WordPress Child Themes

Creating a child theme in WordPress is a best practice for making modifications to a theme. By using a child theme, you can update the parent theme w

Continue Reading
Understanding the Distinction Categories vs. Tags in WordPress

Understanding the Distinction Categories vs. Tags in WordPress

WordPress, a powerful content management system, offers a plethora of features to organize content effectively. Among these features, categories and

Continue Reading