Bird
Raised Fist0
Wordpressframework~30 mins

Enclosing shortcodes in Wordpress - Mini Project: Build & Apply

Choose your learning style10 modes available
Creating and Using Enclosing Shortcodes in WordPress
📖 Scenario: You are building a WordPress site and want to create a custom shortcode that wraps content inside a styled box. This box will highlight the enclosed text with a border and background color.
🎯 Goal: Build a WordPress enclosing shortcode called highlight_box that wraps any content placed between its opening and closing tags inside a styled <div>. The box should have a border and background color to make the content stand out.
📋 What You'll Learn
Create a function called highlight_box_shortcode that accepts $atts and $content parameters
Add a shortcode tag called highlight_box linked to the function
Use shortcode_atts to set a default background color attribute bg_color with value #ffffcc
Return the $content wrapped inside a <div> with inline styles for border and background color
Ensure the shortcode is enclosing, so it processes content between [highlight_box] and [/highlight_box]
💡 Why This Matters
🌍 Real World
Enclosing shortcodes are useful for wrapping content blocks with special styles or behaviors in WordPress posts and pages without editing theme files.
💼 Career
Knowing how to create and register enclosing shortcodes is a common task for WordPress developers customizing sites and plugins.
Progress0 / 4 steps
1
Create the shortcode function
Create a function called highlight_box_shortcode that accepts two parameters: $atts and $content. Inside the function, return the $content wrapped inside a <div> with a border style 1px solid #ccc and background color #ffffcc. Use do_shortcode on $content to allow nested shortcodes.
Wordpress
Hint

Remember to use do_shortcode on the $content so that any shortcodes inside the content also work.

2
Register the shortcode tag
Add a line to register the shortcode tag highlight_box using add_shortcode and link it to the function highlight_box_shortcode.
Wordpress
Hint

Use add_shortcode with the tag name and the function name as parameters.

3
Add background color attribute support
Inside the highlight_box_shortcode function, use shortcode_atts to set a default attribute bg_color with value #ffffcc. Replace the hardcoded background color in the <div> style with the value from $atts['bg_color'].
Wordpress
Hint

Use shortcode_atts to merge default attributes with user-provided ones.

4
Complete the enclosing shortcode setup
Ensure the function parameter $content has a default value null and that the function returns the content wrapped in the styled <div>. Confirm the shortcode tag highlight_box is registered with add_shortcode. This completes the enclosing shortcode setup.
Wordpress
Hint

Check that the function and shortcode registration are complete and correct.

Practice

(1/5)
1. What is the main purpose of enclosing shortcodes in WordPress?
easy
A. To wrap content between opening and closing tags for styling or features
B. To insert images directly without any content
C. To create standalone buttons without content
D. To add metadata to posts without visible output

Solution

  1. Step 1: Understand shortcode types

    Enclosing shortcodes wrap content between opening and closing tags, unlike self-closing shortcodes.
  2. Step 2: Identify purpose of enclosing shortcodes

    They add styles or features around the wrapped content, enhancing appearance or functionality.
  3. Final Answer:

    To wrap content between opening and closing tags for styling or features -> Option A
  4. Quick Check:

    Enclosing shortcodes wrap content = D [OK]
Hint: Enclosing shortcodes always have opening and closing tags [OK]
Common Mistakes:
  • Confusing enclosing with self-closing shortcodes
  • Thinking shortcodes only insert images or buttons
  • Ignoring the content wrapped inside shortcodes
2. Which of the following is the correct syntax for an enclosing shortcode named box with content inside?
easy
A. [box]Content here[/box]
B. [box /]
C. [box]Content here
D. box[Content here]box

Solution

  1. Step 1: Recall enclosing shortcode syntax

    Enclosing shortcodes use opening and closing tags with square brackets, e.g., [box]...[/box].
  2. Step 2: Match syntax with options

    [box]Content here[/box] correctly shows [box]Content here[/box]. Other options are either self-closing or invalid.
  3. Final Answer:

    [box]Content here[/box] -> Option A
  4. Quick Check:

    Enclosing shortcode syntax = A [OK]
Hint: Enclosing shortcodes always have matching opening and closing tags [OK]
Common Mistakes:
  • Using self-closing syntax for enclosing shortcodes
  • Omitting closing tag
  • Incorrect bracket placement
3. Given the shortcode [highlight color="yellow"]Important text[/highlight], what will be the expected behavior?
medium
A. The text will be bold but not colored
B. The shortcode will display as plain text on the page
C. The text 'Important text' will be highlighted in yellow
D. An error will occur because attributes are not allowed

Solution

  1. Step 1: Analyze shortcode with attribute

    The shortcode uses an attribute color="yellow" to customize appearance.
  2. Step 2: Understand enclosing shortcode effect

    The content inside is wrapped and styled according to the attribute, so text is highlighted yellow.
  3. Final Answer:

    The text 'Important text' will be highlighted in yellow -> Option C
  4. Quick Check:

    Attributes customize enclosing shortcode output = C [OK]
Hint: Attributes inside shortcodes customize their behavior [OK]
Common Mistakes:
  • Assuming attributes cause errors
  • Thinking shortcode outputs raw text
  • Ignoring the effect of attributes on content
4. Identify the error in this shortcode usage: [frame]Content here[frame]
medium
A. Attributes are missing in the shortcode
B. Missing closing tag should be [/frame]
C. Shortcode name should be capitalized
D. Content cannot be inside enclosing shortcodes

Solution

  1. Step 1: Check shortcode closing tag

    The closing tag must have a slash: [/frame], not [frame].
  2. Step 2: Confirm correct syntax

    Without the slash, WordPress treats it as an opening tag, causing errors or unexpected output.
  3. Final Answer:

    Missing closing tag should be [/frame] -> Option B
  4. Quick Check:

    Closing tag requires slash = B [OK]
Hint: Closing shortcode tags always start with a slash [/tag] [OK]
Common Mistakes:
  • Omitting the slash in closing tag
  • Thinking attributes are mandatory
  • Assuming shortcode names must be capitalized
5. You want to create a shortcode [alert type="error"] that wraps content and shows it with a red background. Which is the best way to write the enclosing shortcode usage?
hard
A. [alert type="error"]Warning!
B. [alert type="error" /]Warning!
C. [alert]Warning![/alert type="error"]
D. [alert type="error"]Warning![/alert]

Solution

  1. Step 1: Confirm enclosing shortcode syntax with attributes

    The opening tag includes attributes inside square brackets, e.g., [alert type="error"].
  2. Step 2: Verify matching closing tag

    The closing tag must be [/alert] exactly, no attributes allowed there.
  3. Step 3: Evaluate options

    [alert type="error"]Warning![/alert] correctly uses [alert type="error"]Warning![/alert]. [alert type="error" /]Warning! is self-closing and incorrect for enclosing content. [alert]Warning![/alert type="error"] misplaces attribute in closing tag. [alert type="error"]Warning! has incorrect closing tag syntax.
  4. Final Answer:

    [alert type="error"]Warning![/alert] -> Option D
  5. Quick Check:

    Attributes in opening tag, proper closing tag = A [OK]
Hint: Attributes go in opening tag; closing tag has no attributes [OK]
Common Mistakes:
  • Using self-closing syntax for enclosing shortcodes
  • Placing attributes in closing tag
  • Incorrect closing tag format
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard