Bird
Raised Fist0
Wordpressframework~20 mins

Gutenberg block editor basics in Wordpress - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Gutenberg Block Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What happens when you add a paragraph block in Gutenberg?
You add a paragraph block in the Gutenberg editor and start typing. What is the expected behavior?
AThe block does not allow typing until you save the post first.
BThe block automatically converts text into a heading without user input.
CThe block only accepts HTML code and shows raw tags instead of formatted text.
DThe block accepts text input and displays it immediately inside the editor.
Attempts:
2 left
💡 Hint
Think about how a paragraph block works in a normal text editor.
📝 Syntax
intermediate
2:00remaining
Which code snippet correctly registers a custom block in Gutenberg?
You want to register a custom block using JavaScript in Gutenberg. Which snippet is correct?
Awp.blocks.newBlock('my-plugin/my-block', { title: 'My Block', save: () => 'Save' });
Bwp.blocks.registerBlockType('my-plugin/my-block', { title: 'My Block', edit: () => 'Edit', save: () => 'Save' });
Cwp.blocks.addBlockType('my-plugin/my-block', { title: 'My Block', edit: () => 'Edit' });
Dwp.blocks.createBlock('my-plugin/my-block', { title: 'My Block' });
Attempts:
2 left
💡 Hint
Look for the official function to register blocks in the Gutenberg API.
state_output
advanced
2:00remaining
What is the output when a block's save function returns null?
In a custom Gutenberg block, the save function returns null. What will be the result in the post content?
AThe block will not save any content and will not appear on the front end.
BThe block will save an empty paragraph tag <p></p> in the post content.
CThe block will cause a syntax error and prevent saving the post.
DThe block will save the edit function's output instead.
Attempts:
2 left
💡 Hint
Think about what returning null means for saved content in Gutenberg.
🔧 Debug
advanced
2:00remaining
Why does this block fail to appear in the editor?
You registered a block but it does not show up in the Gutenberg editor. The code is: wp.blocks.registerBlockType('my-plugin/sample-block', { title: 'Sample Block', edit() { return wp.element.createElement('p', null, 'Hello'); } }); What is the likely cause?
Wordpress
wp.blocks.registerBlockType('my-plugin/sample-block', {
  title: 'Sample Block',
  edit() {
    return wp.element.createElement('p', null, 'Hello');
  }
});
AThe block name 'my-plugin/sample-block' is invalid because it lacks a namespace.
BThe block is missing a save function, so it won't appear in the editor.
CThe block is missing the save function, which is required for registration.
DThe edit function uses createElement incorrectly and causes a runtime error.
Attempts:
2 left
💡 Hint
Check if all required properties are present in the block registration.
🧠 Conceptual
expert
3:00remaining
How does the Gutenberg editor handle block serialization?
Which statement best describes how Gutenberg saves block content in the post?
AGutenberg saves blocks as HTML comments wrapping the block's saved HTML output in the post content.
BGutenberg saves blocks as JSON objects inside the post content for easy parsing.
CGutenberg saves blocks as separate files linked from the post content.
DGutenberg saves blocks only in the database metadata, not in the post content.
Attempts:
2 left
💡 Hint
Think about how Gutenberg keeps block boundaries in the post content.

Practice

(1/5)
1. What is the main purpose of Gutenberg blocks in WordPress?
easy
A. To build content visually by stacking pieces called blocks
B. To write PHP code for themes
C. To manage user roles and permissions
D. To create database tables

Solution

  1. Step 1: Understand Gutenberg blocks concept

    Gutenberg blocks allow users to build content visually by stacking blocks instead of writing code.
  2. Step 2: Compare options with this concept

    Options A, B, and D relate to other WordPress functions, not content building with blocks.
  3. Final Answer:

    To build content visually by stacking pieces called blocks -> Option A
  4. Quick Check:

    Gutenberg blocks = Visual content building [OK]
Hint: Blocks stack visually to build content, not code or settings [OK]
Common Mistakes:
  • Confusing blocks with coding PHP
  • Thinking blocks manage users or database
  • Mixing blocks with theme development
2. Which of the following is the correct way to define the edit function in a custom Gutenberg block?
easy
A. function edit() {

Hello Block

; }
B. def edit(): return '

Hello Block

'
C. edit = function() { echo 'Hello Block'; }
D. const edit = () => { return

Hello Block

; };

Solution

  1. Step 1: Identify JavaScript syntax for Gutenberg blocks

    Gutenberg blocks use modern JavaScript with arrow functions for edit.
  2. 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.
  3. Final Answer:

    const edit = () => { return <p>Hello Block</p>; }; -> Option D
  4. Quick Check:

    Gutenberg edit uses JS arrow functions [OK]
Hint: Gutenberg edit uses JavaScript arrow functions returning JSX [OK]
Common Mistakes:
  • Using PHP or Python syntax instead of JavaScript
  • Not returning JSX properly
  • Using old function syntax without React import
3. Given this simple block edit function, what will be rendered in the editor?
const edit = () => {
return <p>Welcome to Gutenberg!</p>;
};
medium
A. A paragraph with text 'Welcome to Gutenberg!'
B. An empty block with no content
C. A syntax error preventing rendering
D. A button labeled 'Welcome to Gutenberg!'

Solution

  1. Step 1: Analyze the edit function return value

    The function returns a paragraph element with the text 'Welcome to Gutenberg!'.
  2. Step 2: Understand editor rendering behavior

    The editor shows the returned JSX content, so a paragraph with that text appears.
  3. Final Answer:

    A paragraph with text 'Welcome to Gutenberg!' -> Option A
  4. Quick Check:

    JSX return = paragraph text shown [OK]
Hint: JSX returned in edit shows as block content in editor [OK]
Common Mistakes:
  • Thinking it renders a button
  • Assuming syntax error without checking code
  • Expecting empty content when JSX is returned
4. What is wrong with this Gutenberg block save function?
const save = () => {
<div>Saved content</div>;
};
medium
A. save function should be async
B. Using <div> instead of <p> tag
C. Missing return statement in the save function
D. save function cannot use JSX

Solution

  1. Step 1: Check function syntax for returning JSX

    The save function has JSX but no return statement, so it returns undefined.
  2. Step 2: Understand save function requirements

    Save must return JSX to render saved content; missing return causes no output.
  3. Final Answer:

    Missing return statement in the save function -> Option C
  4. Quick Check:

    JSX must be returned in save function [OK]
Hint: Always return JSX in save function to render content [OK]
Common Mistakes:
  • Forgetting return keyword
  • Thinking tag choice causes error
  • Assuming save must be async
5. You want to create a custom Gutenberg block that shows a user-editable heading and paragraph. Which two functions must you define to make this block work properly?
hard
A. registerBlockType and enqueueScripts only
B. edit and save functions to handle editing and saving content
C. PHP render callback and CSS styles only
D. enqueueScripts and enqueueStyles only

Solution

  1. Step 1: Identify core Gutenberg block functions

    Every block needs an edit function to show editing UI and a save function to define saved content.
  2. Step 2: Compare options with required functions

    edit and save functions to handle editing and saving content correctly lists edit and save. Other options mention scripts or PHP but miss these core functions.
  3. Final Answer:

    edit and save functions to handle editing and saving content -> Option B
  4. Quick Check:

    Blocks need edit + save functions [OK]
Hint: Blocks always need edit and save functions [OK]
Common Mistakes:
  • Thinking only scripts or PHP are enough
  • Forgetting save function
  • Confusing enqueueing scripts with block logic