Function and usage of get_metadata() in wordpress


Answers ( 1 )


    The get_metadata() function in WordPress is a powerful tool for retrieving metadata associated with various object types such as posts, comments, terms, and users. Here's a detailed explanation of its function, parameters, and return values:


    • Purpose: Retrieves the value of a metadata field for a specific object type and ID.


    • Behavior: If the specified metadata field exists for an object, the function returns its value. The nature of the return value depends on the $single parameter:
      • If $single is set to true, a single value is returned.
      • If $single is false, an array of values is returned.
    • Non-existent Field: If the meta field does not exist, the function's behavior is influenced by get_metadata_default(). Typically, it returns an empty string if $single is true, or an empty array if $single is false.
    • Related Functions: It's important to also consider get_metadata_raw() and get_metadata_default() for more advanced usage.


    1. $meta_type (string, required): Specifies the type of object the metadata is for. Acceptable values include 'post', 'comment', 'term', 'user', or any other object type with an associated meta table.
    2. $object_id (int, required): The ID of the object for which the metadata is being retrieved.
    3. $meta_key (string, optional): The specific metadata key to retrieve. If not specified, the function fetches all metadata for the specified object. Defaults to an empty string.
    4. $single (bool, optional): Determines the format of the return value:
      • true: Returns only the first value of the specified $meta_key.
      • false: Returns an array of values. This parameter has no effect if $meta_key is not specified. Defaults to false.

    Return Values:

    • Array or Single Value: Returns an array of values if $single is false, or the value of the meta field if $single is true.
    • False: Returns false for an invalid $object_id (non-numeric, zero, or negative value), or if $meta_type is not specified.
    • Empty String/Array: Returns an empty string for a valid but non-existing object ID, if $single is true, or an empty array if $single is false.

    Sample Usage:

    // Retrieve a single value of a specific meta key for a post
    $single_value = get_metadata('post', 123, 'my_meta_key', true);
    // Retrieve all values of a specific meta key for a user
    $all_values = get_metadata('user', 456, 'my_meta_key');
    // Retrieve all metadata for a term
    $all_metadata = get_metadata('term', 789);

    In these examples:

    • The first line retrieves a single value of 'my_meta_key' from a post with ID 123.
    • The second line fetches all values of 'my_meta_key' for a user with ID 456.
    • The third line gets all metadata associated with a term having ID 789.

Leave an answer