The Gutenberg block editor helps you build content by stacking blocks like text, images, and buttons. It makes editing easier and more visual.
Gutenberg block editor basics in Wordpress
Start learning this pattern below
Jump into concepts and practice - no test required
registerBlockType('namespace/block-name', { title: 'Block Title', icon: 'smiley', category: 'common', edit: () => { return <p>Hello from the block editor!</p>; }, save: () => { return <p>Hello saved content!</p>; }, });
registerBlockType defines a new block with a unique name.
The edit function shows what you see while editing.
registerBlockType('myplugin/simple-text', { title: 'Simple Text', icon: 'text', category: 'text', edit: () => <p>Type your text here.</p>, save: () => <p>Type your text here.</p>, });
registerBlockType('myplugin/image-block', { title: 'Image Block', icon: 'format-image', category: 'media', edit: () => <img src="https://example.com/image.jpg" alt="Example" />, save: () => <img src="https://example.com/image.jpg" alt="Example" />, });
This block shows a friendly message in the editor and on the published page. It uses useBlockProps for proper styling and accessibility.
import { registerBlockType } from '@wordpress/blocks'; import { useBlockProps } from '@wordpress/block-editor'; registerBlockType('myplugin/hello-block', { title: 'Hello Block', icon: 'smiley', category: 'widgets', edit: () => { const blockProps = useBlockProps(); return <p {...blockProps}>Hello from the Gutenberg editor!</p>; }, save: () => { const blockProps = useBlockProps.save(); return <p {...blockProps}>Hello from the saved content!</p>; }, });
Always use unique names for blocks to avoid conflicts.
Use useBlockProps to add necessary HTML attributes for accessibility and styling.
The edit function runs in the editor, while save defines what appears on the live site.
Gutenberg blocks let you build content visually by stacking pieces called blocks.
Each block has an edit view for editing and a save view for the final content.
Using blocks makes content creation easier and more flexible without coding HTML.
Practice
Solution
Step 1: Understand Gutenberg blocks concept
Gutenberg blocks allow users to build content visually by stacking blocks instead of writing code.Step 2: Compare options with this concept
Options A, B, and D relate to other WordPress functions, not content building with blocks.Final Answer:
To build content visually by stacking pieces called blocks -> Option AQuick Check:
Gutenberg blocks = Visual content building [OK]
- Confusing blocks with coding PHP
- Thinking blocks manage users or database
- Mixing blocks with theme development
edit function in a custom Gutenberg block?Solution
Step 1: Identify JavaScript syntax for Gutenberg blocks
Gutenberg blocks use modern JavaScript with arrow functions foredit.Step 2: Check each option's syntax
const edit = () => { return <p>Hello Block</p>; }; uses arrow function returning JSX, which is correct. function edit() { <p>Hello Block</p>; } does not return the JSX element. edit = function() { echo 'Hello Block'; } uses PHP syntax, and B uses Python syntax, both invalid here.Final Answer:
const edit = () => { return <p>Hello Block</p>; }; -> Option DQuick Check:
Gutenberg edit uses JS arrow functions [OK]
- Using PHP or Python syntax instead of JavaScript
- Not returning JSX properly
- Using old function syntax without React import
const edit = () => {
return <p>Welcome to Gutenberg!</p>;
};Solution
Step 1: Analyze the edit function return value
The function returns a paragraph element with the text 'Welcome to Gutenberg!'.Step 2: Understand editor rendering behavior
The editor shows the returned JSX content, so a paragraph with that text appears.Final Answer:
A paragraph with text 'Welcome to Gutenberg!' -> Option AQuick Check:
JSX return = paragraph text shown [OK]
- Thinking it renders a button
- Assuming syntax error without checking code
- Expecting empty content when JSX is returned
const save = () => {
<div>Saved content</div>;
};Solution
Step 1: Check function syntax for returning JSX
The save function has JSX but no return statement, so it returns undefined.Step 2: Understand save function requirements
Save must return JSX to render saved content; missing return causes no output.Final Answer:
Missing return statement in the save function -> Option CQuick Check:
JSX must be returned in save function [OK]
- Forgetting return keyword
- Thinking tag choice causes error
- Assuming save must be async
Solution
Step 1: Identify core Gutenberg block functions
Every block needs aneditfunction to show editing UI and asavefunction to define saved content.Step 2: Compare options with required functions
edit and save functions to handle editing and saving content correctly listseditandsave. Other options mention scripts or PHP but miss these core functions.Final Answer:
edit and save functions to handle editing and saving content -> Option BQuick Check:
Blocks need edit + save functions [OK]
- Thinking only scripts or PHP are enough
- Forgetting save function
- Confusing enqueueing scripts with block logic
