get_metadata( string $meta_type, int $object_id, string $meta_key = '', bool $single = false )

Retrieves the value of a metadata field for the specified object type and ID.

Description Description

If the meta field exists, a single value is returned if $single is true, or an array of values if it’s false.

If the meta field does not exist, the result depends on get_metadata_default(). By default, an empty string is returned if $single is true, or an empty array if it’s false.

See also See also

Top ↑

Parameters Parameters


(string) (Required) Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user', or any other object type with an associated meta table.


(int) (Required) ID of the object metadata is for.


(string) (Optional) Metadata key. If not specified, retrieve all metadata for the specified object.

Default value: ''


(bool) (Optional) If true, return only the first value of the specified meta_key. This parameter has no effect if meta_key is not specified.

Default value: false

Top ↑

Return Return

(mixed) Single metadata value, or array of values. False if there's a problem with the parameters passed to the function.

Top ↑

Source Source

File: wp-includes/meta.php

function get_metadata( $meta_type, $object_id, $meta_key = '', $single = false ) {
	$value = get_metadata_raw( $meta_type, $object_id, $meta_key, $single );
	if ( ! is_null( $value ) ) {
		return $value;

	return get_metadata_default( $meta_type, $object_id, $meta_key, $single );

Top ↑

Changelog Changelog

Version Description
2.9.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 2 content

    Example of returned array for post metadatas :

    array (
      '_pingme' => array (
        0 => '1',
      '_encloseme' => array (
        0 => '1',
      'custom key 1' => array (
        0 => 'custom value 1',
        1 => 'custom value 2',
      'custom key 2' => array (
        0 => 'custom value 3',

You must log in before being able to contribute a note or feedback.