0
0
Wordpressframework~20 mins

Block attributes and controls in Wordpress - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Block Attributes Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
How does the attribute default value affect block rendering?
Consider a WordPress block with an attribute defined as color: { type: 'string', default: 'blue' }. What will be the rendered color if the user does not change this attribute?
AThe block will render with no color because default values are ignored until explicitly set.
BThe block will render with the color 'blue' because the default is used when no user input is given.
CThe block will throw an error because the attribute is not initialized by the user.
DThe block will render with a random color since no user input is provided.
Attempts:
2 left
💡 Hint
Think about what 'default' means for block attributes in WordPress.
📝 Syntax
intermediate
1:30remaining
Identify the correct attribute declaration syntax
Which of the following is the correct way to declare a block attribute for a string named 'title' with no default value?
Atitle: 'string'
Btitle = 'string'
Ctitle: { type: 'string' }
Dtitle: { default: 'string' }
Attempts:
2 left
💡 Hint
Attributes are objects with type and optionally default properties.
state_output
advanced
2:00remaining
What is the output when a block control updates an attribute?
Given a block with an attribute count: { type: 'number', default: 0 } and a control that increments count on button click, what will be the value of count after clicking the button three times starting from initial render?
Wordpress
const { useState } = wp.element;
function MyBlock({ attributes, setAttributes }) {
  const { count } = attributes;
  return (
    <button onClick={() => setAttributes({ count: count + 1 })}>
      Count: {count}
    </button>
  );
}
A1
Bundefined
C0
D3
Attempts:
2 left
💡 Hint
Each click increases the count by 1 starting from the default.
🔧 Debug
advanced
2:30remaining
Why does this block attribute not update correctly?
A block attribute text: { type: 'string', default: '' } is controlled by a text input. The input's onChange handler calls setAttributes({ text: event.target.value }). However, the block does not update when typing. What is the likely cause?
Wordpress
function MyBlock({ attributes, setAttributes }) {
  const { text } = attributes;
  return (
    <input
      type="text"
      value={text}
      onChange={(event) => setAttributes({ text: event.target.value })}
    />
  );
}
AThe attribute 'text' is not declared in the block's attributes object.
BThe input should use defaultValue instead of value.
CThe onChange handler is missing parentheses around event.target.value.
DThe setAttributes function is asynchronous and needs await.
Attempts:
2 left
💡 Hint
Check if the attribute is properly declared in the block registration.
🧠 Conceptual
expert
3:00remaining
How do block controls and attributes interact to maintain state?
In WordPress block development, which statement best describes the relationship between block attributes and controls?
AControls provide the user interface to update attributes, which store the block's state and affect rendering.
BAttributes automatically update controls without any code needed.
CControls store the block's state and attributes only define default values.
DAttributes and controls are unrelated; controls only affect editor UI.
Attempts:
2 left
💡 Hint
Think about how user input changes block data and how that data affects the block.