Call for Testing – Pattern editing and content-only interactivity in WordPress 7.0

This is a follow up post to Help Test WordPress 7.0 with specific details about a new way to edit patterns in the BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Editor.

Pattern Editing and content-only Interactivity is a significant change to how patterns behave in the WordPress editor, arriving in WordPress 7.0. 

Unsynced patterns and template parts inserted into the editor now default to content-only mode, prioritizing the editing of text and media without exposing the deeper block structure or style controls.

If you have a few minutes or more, we’d love to hear your feedback on the feature in the coming week to allow time for fixes before the release candidate phases.

Table of contents:

What is content-only mode?

Content-only mode is the default experience when clicking into an unsynced pattern or template part in WordPress 7.0. Here’s what it means in practice:

What you can edit:

  • Text in Paragraph, Heading, and other text blocks
  • Images (swapping the image source, updating alt text and caption)
  • Links and button labels
  • Any block attribute that a block author has explicitly marked with "role": "content" in their block definition
  • New Paragraph, List item, Button and other “list” type blocks can be inserted directly into content areas without unlocking the full pattern

What is protected:

  • Block structure (you can’t add, remove, or reorder structural blocks like Groups and Columns)
  • Spacing, colors, typography, and other style settings
  • Any block attribute not marked as content

In the editor, protected blocks are visible but non-selectable — you can see the layout, but clicking on a structural wrapper won’t open its controls.

Why content-only by default?

In WordPress versions previous to 7.0, clicking into a pattern immediately exposed every inner block for editing, including structural and container blocks, all block styles and block attributes. 

This default editing mode is convenient for theme builders and developers who create patterns. For users who only want to update a heading or swap an image however, it presents an overwhelming and error-prone experience. Small misclicks can accidentally restructure a layout or remove a block entirely.The goal of content-only mode is to separate what content a user edits from how a pattern is structured. With this change, patterns behave more like intentional design components: users can update the content they’re supposed to update, and the underlying structure stays protected unless explicitly opened for editing.

More features

Adding new content inside a pattern

You can insert new Paragraph blocks (and other content-type blocks like list items and buttons) directly into designated content areas of a pattern without entering the full structural editor.

This means a pattern with a text area behaves more like a writing surface — you can append or insert new paragraphs within the allowed zone without needing to “unlock” the pattern first.

List View

Image

Non-active blocks are hidden in List View when editing a pattern gives you context while keeping the focus clear.

Support for complex blocks

Buttons, List, Gallery, and Social Icons blocks have a list view in the block inspector sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. in content-only mode, so child blocks can be selected and edited without exposing full block controls.

Image

An opt-out for developers

A new disableContentOnlyForUnsyncedPatterns editor setting lets theme and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. developers disable content-only mode for unsynced patterns when needed. For example, during theme development when you want unrestricted access. This can be set via the block_editor_settings_all PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.:

add_filter( 'block_editor_settings_all', function( $settings ) {
    $settings['disableContentOnlyForUnsyncedPatterns'] = true;
    return $settings;
} );

Or via JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.:

wp.data.dispatch( 'core/block-editor' ).updateSettings( {
    disableContentOnlyForUnsyncedPatterns: true,
} );

Editing pattern design

Making design and structural changes to a pattern works differently depending on the type of pattern you’re editing.

Unsynced patterns

Clicking the ‘Edit pattern’ button or double-clicking the body of a pattern temporarily “unlocks” the pattern, exposing its inner blocks and full editing capabilities.

Synced (synced patterns / template parts)

Clicking the ‘Edit original’ button takes you to an isolated editor when you can make any changes to the underlying pattern. The editor headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. provides navigation back to the originating document. Changes to synced patterns apply globally.

How to Test

Testing Environment

The Help Test WordPress 7.0 post sums up how to test WordPress Beta, including instructions on how to test on local site on your computer.

The quickest way to test is with WordPress Playground.

What to Test

You don’t need to test everything — pick what matches your use case.

Scenario 1: Editing content inside a pattern as a user

Try this if you: Want to experience the feature from an end-user perspective.

Steps:

  1. In the site editor or post editor, insert an unsynced pattern that contains paragraph text and an image (most patterns from the pattern inserter will work or you can create your own).
  2. Open the List View CTRL + OPTION + O. Only the pattern’s content blocks should be visible.
  3. Edit the paragraph and/or replace the image. In the paragraph block, hitting “Enter” should create a new paragraph.
  4. Now select the pattern and click the “Edit pattern” button in the toolbar or block inspector sidebar.
  5. You should be able to modify the content block’s styles, or delete the block entirely.
  6. Try clicking on (or inserting) a block you wouldn’t normally want a user to edit (e.g., a Group block used for layout).

What we’d love feedback on:

  • Is it clear which content you can and can’t edit?
  • Is the overall experience less confusing than before?
  • Did you accidentally break anything?

Scenario 2: Opening a synced pattern or template part for structural editing

Try this if you: Want to test the isolated editor and navigation flowFlow Flow is the path of screens and interactions taken to accomplish a task. It’s an experience vector. Flow is also a feeling. It’s being unselfconscious and in the zone. Flow is what happens when difficulties are removed and you are freed to pursue an activity without forming intentions. You just do it..

Steps:

  1. Open up a template that has a template part (e.g., Blog homepage that contains the Footer template part). 
  2. Open the List View CTRL + OPTION + O. Only the template part’s content blocks should be visible. 
  3. Click “Edit original” on the pattern or template part.
  4. Verify the isolated editor opens with a breadcrumb showing your location.
  5. Make a structural change (add or remove a block).
  6. Use the “Back” button and confirm you return to the originating document.

What we’d love feedback on:

  • Is the navigation between the document and the pattern editor clear?
  • Does “Back” return you to the right place?
  • Are breadcrumbs helpful?

Scenario 3: Testing with custom blocks or patterns

Try this if you: Build themes, plugins, or custom blocks.

Steps:

  1. Register a custom block with attributes that should be user-editable. Test whether adding "role": "content" to those attributes makes them accessible in content-only mode.
  2. Register a custom unsynced pattern and insert it in the editor. Confirm it enters content-only mode by default.
  3. Try the disableContentOnlyForUnsyncedPatterns opt-out via the PHP filter and confirm unrestricted editing is restored for unsynced patterns.
  4. Check that template parts and synced pattern views remain unchanged  regardless of the opt-out setting.
Test block with role (you can paste this block into the browser console when in the editor)
wp.blocks.registerBlockType( 'test/visibility-with-role', {
	apiVersion: 3,
	title: 'Test Block (with role)',
	category: 'text',
	attributes: {
		message: { type: 'string', default: 'Edit me (with role)', role: 'content' },
	},
	edit: ( { attributes, setAttributes } ) => {
		return wp.element.createElement(
			wp.blockEditor.RichText,
			{
				tagName: 'p',
				value: attributes.message,
				onChange: ( val ) => setAttributes( { message: val } ),
			}
		);
	},
	save: ( { attributes } ) => {
		return wp.element.createElement(
			wp.blockEditor.RichText.Content,
			{ tagName: 'p', value: attributes.message }
		);
	},
} );

What we’d love feedback on:

  • Does “role”: “content” behave as expected for your block’s attributes?
  • Are there blocks that should be editable in content-only mode but aren’t?
  • Does the opt-out work reliably?

Scenario 4: Edge cases and multi-block patterns

Try this if you: Want to help find bugs.

Ideas to test:

  • Insert a pattern containing Buttons, List, Gallery or Social Icons and verify individual items can be selected and edited in content-only mode.
  • Test with nested patterns (a pattern inside a pattern).
  • Try undoing and redoing edits made inside content-only mode.
  • Test with multi-selecting blocks that span inside and outside a pattern.

What we’d love feedback on:

  • Does anything break or behave unexpectedly?
  • Are there patterns in the pattern library that are unusable in content-only mode?

How to Share Feedback

Comment on this post with your findings, or file GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ issues in the WordPress/gutenberg repository and link to them here.

Helpful to include:

  • Browser, OS, and WordPress version
  • Screenshots or recordings
  • Steps to reproduce any issue
  • Severity assessment

Example:

Clicking a Button block inside a pattern opens full block controls instead of content-only mode

Steps to reproduce:

1. Insert the "Call to Action" pattern
2. Click the Button block inside it

Expected: Only button text is editable
Actual: Full toolbar and sidebar controls appear

Severity: Medium

WordPress: 7 Beta
Browser: Chrome 145.0.7632.110, MacOS
Theme: Twenty Twenty-Five

Resources


Thank you for making it this far and for testing!

Your feedback will directly shape how this feature lands in WordPress 7.0 and what gets improved in future releases.

Props to @ankit-k-gupta, @andrewserong and @talldanwp for helping to write this post.

#patterns, #wordpress-7-0