Function and usage of get_post_custom() in wordpress


Answers ( 1 )


    The get_post_custom() function in WordPress is used to retrieve all custom fields (also known as post meta fields) associated with a specific post, identified by its post ID. This function is a part of WordPress's extensive functions for handling custom fields, which are key-value pairs associated with posts.

    Function Overview

    • Function Name: get_post_custom()
    • Purpose: To retrieve all custom fields (post meta) for a specific post.
    • Return Type: mixed (array, false, or empty string)


    get_post_custom() is designed to fetch the custom fields of a post efficiently. These custom fields are additional information added to posts, typically through the WordPress admin area or programmatically. The function is optimized for performance, as it retrieves these fields from the cache where possible. This optimization is particularly beneficial when the function needs to be called multiple times within a script.


    1. $post_id (int, optional): The ID of the post for which custom fields are to be retrieved.
      • Default Value: If not provided, the function uses the ID of the global $post.
      • Note: The post ID should be a positive integer. Non-numeric, zero, or negative values will lead to erroneous returns.

    Return Values

    • Array: If the post exists and has custom fields, it returns an associative array where each key is a custom field name, and its value is an array of values for that field.
    • False: Returns false if the $post_id is invalid (i.e., non-numeric, zero, or negative).
    • Empty String: Returns an empty string ("") if the $post_id is valid but the post does not exist or has no custom fields.

    Sample Usage

    Here's an example of how get_post_custom() can be used in a WordPress template or plugin:

    $post_id = 123; // Replace with a valid post ID
    $custom_fields = get_post_custom($post_id);
    if ($custom_fields) {
        foreach ($custom_fields as $key => $values) {
            echo "<b>$key</b>: ";
            foreach ($values as $value) {
                echo $value . ', ';
            echo "<br>";
    } else {
        echo "No custom fields found for post ID: $post_id";

    In this example, the function fetches all custom fields for the specified post ID and iterates through them. For each custom field, it prints the field name and its values. If no custom fields are found, it outputs a message indicating so.

Leave an answer