📖 Scenario: You are building a WordPress site and want to create a shortcode that shows a greeting message. The message should change based on a name you provide as a parameter.
🎯 Goal: Create a WordPress shortcode called [greet] that accepts a name parameter and displays a greeting like "Hello, [name]!".
📋 What You'll Learn
Create a function called greet_shortcode that accepts attributes.
Use shortcode_atts to set a default name parameter to "Guest".
Return a greeting string using the name parameter.
Register the shortcode greet with the greet_shortcode function.
💡 Why This Matters
🌍 Real World
Shortcodes let WordPress users add dynamic content easily inside posts or pages without coding each time.
💼 Career
Knowing how to create and customize shortcodes is useful for WordPress developers and site builders to extend site functionality.
Progress0 / 4 steps
1
Create the shortcode function
Create a function called greet_shortcode that accepts one parameter called $atts.
Wordpress
Hint
Start by defining a function named greet_shortcode that takes $atts as input.
2
Set default parameter with shortcode_atts
Inside the greet_shortcode function, use shortcode_atts to create a variable called $atts with a default name set to "Guest".
Wordpress
Hint
Use shortcode_atts with an array setting 'name' => 'Guest' and pass $atts as the second argument.
3
Return the greeting message
In the greet_shortcode function, return a string that says "Hello, " followed by the name parameter from $atts, and then an exclamation mark.
Wordpress
Hint
Use string concatenation to build the greeting using $atts['name'].
4
Register the shortcode
After the greet_shortcode function, add a line to register the shortcode greet with the greet_shortcode function using add_shortcode.
Wordpress
Hint
Use add_shortcode with the shortcode name 'greet' and the function name 'greet_shortcode'.
Practice
(1/5)
1. What is the main purpose of using parameters in WordPress shortcodes?
easy
A. To customize the output of the shortcode dynamically
B. To add CSS styles directly inside the shortcode
C. To create new WordPress posts automatically
D. To disable the shortcode temporarily
Solution
Step 1: Understand shortcode parameters
Parameters allow passing extra information to shortcodes to change their behavior or output.
Step 2: Identify the purpose of parameters
They let you customize what the shortcode shows without changing the code itself.
Final Answer:
To customize the output of the shortcode dynamically -> Option A
Quick Check:
Parameters customize shortcode output [OK]
Hint: Parameters change shortcode output without code edits [OK]
Common Mistakes:
Thinking parameters add styles directly
Confusing parameters with creating posts
Believing parameters disable shortcodes
2. Which of the following is the correct syntax to define a shortcode with a parameter named color in WordPress PHP?
easy
A. function my_shortcode($atts) { return $atts['color']; }
B. function my_shortcode($color) { return $color; }
C. function my_shortcode() { return $color; }
D. function my_shortcode($atts) { $atts = shortcode_atts(['color' => 'blue'], $atts); return $atts['color']; }
Solution
Step 1: Recognize correct use of shortcode_atts()
The function shortcode_atts() safely sets default values and merges user parameters.
Step 2: Check parameter handling
function my_shortcode($atts) { $atts = shortcode_atts(['color' => 'blue'], $atts); return $atts['color']; } uses shortcode_atts() with default 'color' and returns the value correctly.
Final Answer:
function my_shortcode($atts) { $atts = shortcode_atts(['color' => 'blue'], $atts); return $atts['color']; } -> Option D
Quick Check:
Use shortcode_atts() to handle parameters [OK]
Hint: Always use shortcode_atts() to set defaults [OK]
What will be the output of [greet name="Alice"] in a post?
medium
A. Hello, Guest!
B. Hello, name!
C. Hello, Alice!
D. Hello, !
Solution
Step 1: Understand shortcode_atts default and override
The default name is 'Guest', but if 'name' is passed, it overrides the default.
Step 2: Check the passed parameter
The shortcode passes name="Alice", so $atts['name'] becomes 'Alice'.
Final Answer:
Hello, Alice! -> Option C
Quick Check:
Parameter overrides default value [OK]
Hint: Passed parameters override defaults in shortcode_atts() [OK]
Common Mistakes:
Ignoring passed parameters and using defaults
Misreading the parameter key
Expecting output without parameter value
4. What is wrong with this shortcode handler code?
function example_shortcode($atts) {
return "Color is " . $atts['color'];
}
Used as [example color="red"]
medium
A. It will always return 'Color is ' without the color value
B. It will cause an undefined index error if 'color' is not passed
C. It will not register the shortcode properly
D. It will output the color but ignore other parameters
Solution
Step 1: Check parameter handling without defaults
The code accesses $atts['color'] directly without setting defaults or checking if it exists.
Step 2: Identify error risk
If the shortcode is used without 'color', PHP will throw an undefined index notice or error.
Final Answer:
It will cause an undefined index error if 'color' is not passed -> Option B
Quick Check:
Always use shortcode_atts() to avoid undefined indexes [OK]
Hint: Use shortcode_atts() to prevent undefined index errors [OK]
Common Mistakes:
Accessing parameters without defaults
Assuming parameters always exist
Ignoring PHP notices or warnings
5. You want to create a shortcode [box color="green" size="large"] that outputs a colored box with size text. Which PHP function correctly handles both parameters with defaults and returns a string like <div class='box large' style='background:green;'>Box</div>?
hard
A. function box_shortcode($atts) {
$atts = shortcode_atts(['color' => 'blue', 'size' => 'medium'], $atts);
return "
Box
";
}
B. function box_shortcode($color, $size) {
return "
Box
";
}
C. function box_shortcode() {
return "
Box
";
}
D. function box_shortcode($atts) {
return "
Box
";
}
Solution
Step 1: Use shortcode_atts() to set defaults for 'color' and 'size'