Bird
Raised Fist0
Wordpressframework~5 mins

Post meta basics in Wordpress

Choose your learning style10 modes available
Introduction

Post meta lets you store extra information about a post in WordPress. It helps you add custom details beyond the main content.

You want to save an author's nickname separately from the main author field.
You need to store a product price on a product post.
You want to add a custom date or location to an event post.
You want to save user ratings or votes on a post.
You want to keep track of a post's special status or flag.
Syntax
Wordpress
add_post_meta($post_id, $meta_key, $meta_value, $unique = false);

get_post_meta($post_id, $meta_key, $single = false);

update_post_meta($post_id, $meta_key, $meta_value, $prev_value = '');

delete_post_meta($post_id, $meta_key, $meta_value = '');

$post_id is the ID of the post you want to add or get meta for.

$meta_key is the name of the meta field, like 'price' or 'rating'.

Examples
Adds a meta field named 'color' with value 'blue' to post ID 123.
Wordpress
add_post_meta(123, 'color', 'blue');
Gets the single value of 'color' meta for post 123.
Wordpress
$color = get_post_meta(123, 'color', true);
Changes the 'color' meta value to 'red' for post 123.
Wordpress
update_post_meta(123, 'color', 'red');
Removes the 'color' meta field from post 123.
Wordpress
delete_post_meta(123, 'color');
Sample Program

This example shows how to add, get, update, and optionally delete a post meta field called 'rating' for post ID 10. It prints the original, current, and updated rating values.

Wordpress
<?php
// Add a custom meta field 'rating' with value 5 to post ID 10
add_post_meta(10, 'rating', 5, true);

// Get the 'rating' meta value
$rating = get_post_meta(10, 'rating', true);

// Update the 'rating' to 8
update_post_meta(10, 'rating', 8);

// Get the updated 'rating'
$updated_rating = get_post_meta(10, 'rating', true);

// Delete the 'rating' meta
// delete_post_meta(10, 'rating');

// Output the values
echo "Original rating: 5\n";
echo "Current rating: $rating\n";
echo "Updated rating: $updated_rating\n";
OutputSuccess
Important Notes

Use add_post_meta with $unique = true to avoid duplicate meta keys.

get_post_meta returns an array if $single is false, or a single value if true.

Always sanitize and validate meta values before saving for security.

Summary

Post meta stores extra info about posts in WordPress.

Use add_post_meta, get_post_meta, update_post_meta, and delete_post_meta to manage meta.

Meta keys are like labels, and meta values hold the data.

Practice

(1/5)
1. What is the main purpose of post meta in WordPress?
easy
A. To change the post title
B. To store extra information about posts
C. To delete posts permanently
D. To create new post categories

Solution

  1. Step 1: Understand what post meta stores

    Post meta is used to save additional data related to posts beyond the main content.
  2. Step 2: Identify the correct purpose

    Since post meta holds extra info, it does not change titles, delete posts, or create categories.
  3. Final Answer:

    To store extra information about posts -> Option B
  4. Quick Check:

    Post meta = extra post info [OK]
Hint: Post meta = extra data about posts [OK]
Common Mistakes:
  • Confusing post meta with post content
  • Thinking post meta changes post titles
  • Mixing post meta with categories
2. Which function is used to add a new meta value to a post in WordPress?
easy
A. get_post_meta()
B. update_post_meta()
C. delete_post_meta()
D. add_post_meta()

Solution

  1. Step 1: Recall functions for post meta

    Adding new meta uses add_post_meta(), getting uses get_post_meta().
  2. Step 2: Match function to action

    Since the question asks about adding, add_post_meta() is correct.
  3. Final Answer:

    add_post_meta() -> Option D
  4. Quick Check:

    Add meta = add_post_meta() [OK]
Hint: Add meta = add_post_meta() function [OK]
Common Mistakes:
  • Using get_post_meta() to add data
  • Confusing update_post_meta() with add_post_meta()
  • Trying to delete meta with add_post_meta()
3. What will the following code output?
echo get_post_meta(42, 'color', true);

Assuming post ID 42 has a meta key 'color' with value 'blue'.
medium
A. color
B. 42
C. blue
D. true

Solution

  1. Step 1: Understand get_post_meta parameters

    The function gets meta value for post ID 42, key 'color', with single value (true).
  2. Step 2: Identify stored meta value

    Since 'color' meta is 'blue', the function returns 'blue'.
  3. Final Answer:

    blue -> Option C
  4. Quick Check:

    get_post_meta returns stored meta value [OK]
Hint: get_post_meta returns meta value for key [OK]
Common Mistakes:
  • Confusing meta key with meta value
  • Expecting post ID as output
  • Misunderstanding the third parameter's effect
4. Identify the error in this code snippet:
update_post_meta( 'color', 42, 'red' );
medium
A. The post ID and meta key are swapped
B. The meta value is missing
C. Function name is incorrect
D. No error, code is correct

Solution

  1. Step 1: Check parameter order for update_post_meta

    The correct order is (post_id, meta_key, meta_value).
  2. Step 2: Compare with given code

    The code uses ('color', 42, 'red'), swapping post ID and meta key.
  3. Final Answer:

    The post ID and meta key are swapped -> Option A
  4. Quick Check:

    Parameter order matters in update_post_meta [OK]
Hint: Remember: post_id first, then meta_key, then meta_value [OK]
Common Mistakes:
  • Swapping post ID and meta key
  • Forgetting meta value parameter
  • Using wrong function name
5. You want to update a post meta key 'views' to increase its count by 1 for post ID 10. Which code snippet correctly does this?
hard
A. update_post_meta(10, 'views', get_post_meta(10, 'views', true) + 1);
B. add_post_meta(10, 'views', 1);
C. get_post_meta(10, 'views', true) + 1;
D. delete_post_meta(10, 'views'); update_post_meta(10, 'views', 1);

Solution

  1. Step 1: Retrieve current 'views' meta value

    Use get_post_meta(10, 'views', true) to get current count.
  2. Step 2: Add 1 and update meta

    Increase count by 1 and update with update_post_meta(10, 'views', new_value).
  3. Final Answer:

    update_post_meta(10, 'views', get_post_meta(10, 'views', true) + 1); -> Option A
  4. Quick Check:

    Increment meta by get + 1 then update [OK]
Hint: Get current value, add 1, then update meta [OK]
Common Mistakes:
  • Using add_post_meta instead of update_post_meta
  • Not retrieving current meta value before increment
  • Deleting meta unnecessarily
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