Bird
Raised Fist0
Wordpressframework~15 mins

Displaying custom field data in Wordpress - Mini Project: Build & Apply

Choose your learning style10 modes available
Displaying Custom Field Data in WordPress
📖 Scenario: You have a WordPress website where you want to show extra information about posts. This extra information is stored in custom fields. You want to learn how to get and show this custom field data inside your theme files.
🎯 Goal: Build a simple WordPress theme snippet that fetches and displays a custom field called subtitle for each post.
📋 What You'll Learn
Create a variable to get the custom field subtitle using get_post_meta()
Set a variable called show_subtitle to control if the subtitle should be shown
Use an if statement to check if show_subtitle is true and the subtitle is not empty
Echo the subtitle inside an HTML <h2> tag with a class post-subtitle
💡 Why This Matters
🌍 Real World
Displaying custom fields is common in WordPress sites to show extra info like subtitles, ratings, or author notes.
💼 Career
Knowing how to fetch and display custom fields is essential for WordPress theme and plugin development jobs.
Progress0 / 4 steps
1
Create a variable to get the custom field data
Create a variable called subtitle that uses get_post_meta() to get the custom field named subtitle for the current post ID get_the_ID(). Set the third parameter to true to get a single value.
Wordpress
Hint

Use get_post_meta(get_the_ID(), 'subtitle', true) to get the custom field value for the current post.

2
Add a configuration variable to control subtitle display
Add a variable called show_subtitle and set it to true to indicate that subtitles should be shown.
Wordpress
Hint

Set $show_subtitle = true; to enable subtitle display.

3
Use an if statement to check and display the subtitle
Write an if statement that checks if $show_subtitle is true and $subtitle is not empty. Inside the if, echo the subtitle wrapped in an <h2> tag with class post-subtitle.
Wordpress
Hint

Use if ($show_subtitle && !empty($subtitle)) to check conditions, then echo the subtitle safely with esc_html().

4
Complete the snippet with proper escaping and HTML structure
Ensure the subtitle is safely escaped using esc_html() inside the <h2> tag with class post-subtitle. This completes the snippet to display custom field data securely.
Wordpress
Hint

Use esc_html() to escape the subtitle text for safe HTML output.

Practice

(1/5)
1. What is the main function used in WordPress to retrieve custom field data for a post?
easy
A. get_post_meta()
B. get_custom_field()
C. fetch_post_data()
D. retrieve_meta()

Solution

  1. Step 1: Identify the WordPress function for custom fields

    The standard WordPress function to get custom field data is get_post_meta().
  2. Step 2: Confirm other options are not standard functions

    Functions like get_custom_field(), fetch_post_data(), and retrieve_meta() do not exist in WordPress core.
  3. Final Answer:

    get_post_meta() -> Option A
  4. Quick Check:

    Custom field retrieval = get_post_meta() [OK]
Hint: Remember: WordPress uses get_post_meta() for custom fields [OK]
Common Mistakes:
  • Confusing function names with non-existent ones
  • Using get_post_meta() without parameters
  • Trying to access custom fields like normal variables
2. Which of the following is the correct syntax to get a single custom field value with key 'color' for post ID 42?
easy
A. get_post_meta(42, 'color', true);
B. get_post_meta('color', 42, true);
C. get_post_meta(42, 'color');
D. get_post_meta('color', 42);

Solution

  1. Step 1: Understand get_post_meta() parameters order

    The function signature is get_post_meta($post_id, $key, $single). So the post ID comes first, then the key, then whether to return a single value.
  2. Step 2: Check which option matches this order

    get_post_meta(42, 'color', true); uses get_post_meta(42, 'color', true); which is correct. Others swap parameters or miss the third argument.
  3. Final Answer:

    get_post_meta(42, 'color', true); -> Option A
  4. Quick Check:

    Correct parameter order = post ID, key, single [OK]
Hint: Post ID is first, key second, true for single value [OK]
Common Mistakes:
  • Swapping post ID and key parameters
  • Omitting the third parameter for single value
  • Passing key as first argument
3. Given the code snippet:
$value = get_post_meta(10, 'price', true);
echo $value;

What will be the output if the custom field 'price' for post ID 10 is set to '25.99'?
medium
A. Error: Undefined variable
B. Array
C. NULL
D. 25.99

Solution

  1. Step 1: Understand get_post_meta() with single=true

    When the third parameter is true, get_post_meta() returns a single value as a string, not an array.
  2. Step 2: Check the stored value for 'price'

    The custom field 'price' for post ID 10 is '25.99', so echoing $value outputs '25.99'.
  3. Final Answer:

    25.99 -> Option D
  4. Quick Check:

    Single meta value output = 25.99 [OK]
Hint: Use true to get single value, not array [OK]
Common Mistakes:
  • Expecting an array instead of a string
  • Not setting the third parameter to true
  • Assuming NULL if value exists
4. Identify the error in this code snippet:
echo get_post_meta('price', 15, true);
medium
A. Function get_post_meta() does not exist
B. Missing third parameter
C. Parameters are in wrong order
D. Post ID must be a string

Solution

  1. Step 1: Check parameter order in get_post_meta()

    The correct order is get_post_meta($post_id, $key, $single). Here, 'price' (key) is first and 15 (post ID) second, which is wrong.
  2. Step 2: Confirm other options are incorrect

    The third parameter is present, the function exists, and post ID should be an integer, not string.
  3. Final Answer:

    Parameters are in wrong order -> Option C
  4. Quick Check:

    Post ID first, key second in get_post_meta() [OK]
Hint: Post ID always comes before key in get_post_meta() [OK]
Common Mistakes:
  • Swapping post ID and key parameters
  • Assuming post ID can be string
  • Omitting required parameters
5. You want to display a custom field 'rating' for the current post inside the Loop, but only if it exists and is not empty. Which code snippet correctly does this?
hard
A. echo get_post_meta('rating', get_the_ID(), true);
B. if ($rating = get_post_meta(get_the_ID(), 'rating', true)) { echo esc_html($rating); }
C. if (get_post_meta('rating')) { echo get_post_meta(get_the_ID(), 'rating'); }
D. echo get_post_meta(get_the_ID(), 'rating');

Solution

  1. Step 1: Retrieve 'rating' for current post with correct parameters

    Use get_post_meta(get_the_ID(), 'rating', true) to get a single value for the current post inside the Loop.
  2. Step 2: Check if value exists and sanitize before output

    Assign the value to a variable and check if it is truthy (not empty). Use esc_html() to safely display it.
  3. Step 3: Evaluate options

    if ($rating = get_post_meta(get_the_ID(), 'rating', true)) { echo esc_html($rating); } correctly does all steps. echo get_post_meta('rating', get_the_ID(), true); swaps parameters. if (get_post_meta('rating')) { echo get_post_meta(get_the_ID(), 'rating'); } uses wrong parameter order and no sanitization. echo get_post_meta(get_the_ID(), 'rating'); echoes without checking if value exists.
  4. Final Answer:

    if ($rating = get_post_meta(get_the_ID(), 'rating', true)) { echo esc_html($rating); } -> Option B
  5. Quick Check:

    Check existence + sanitize output = if ($rating = get_post_meta(get_the_ID(), 'rating', true)) { echo esc_html($rating); } [OK]
Hint: Assign and check value before echoing, sanitize output [OK]
Common Mistakes:
  • Swapping post ID and key parameters
  • Not checking if value exists before echo
  • Not sanitizing output before display
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