get_registered_metadata

The timeline below displays how wordpress function get_registered_metadata has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.4

/**
 * Retrieves registered metadata for a specified object.
 *
 * The results include both meta that is registered specifically for the
 * object's subtype and meta that is registered for the entire object type.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
 *                            or any other object type with an associated meta table.
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not. False if a given $meta_key is not registered.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    $object_subtype = get_object_subtype($object_type, $object_id);
    if (!empty($meta_key)) {
        if (!empty($object_subtype) && !registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            $object_subtype = '';
        }
        if (!registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type, $object_subtype);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    if (!$data) {
        return array();
    }
    $meta_keys = get_registered_meta_keys($object_type);
    if (!empty($object_subtype)) {
        $meta_keys = array_merge($meta_keys, get_registered_meta_keys($object_type, $object_subtype));
    }
    return array_intersect_key($data, $meta_keys);
}

WordPress Version: 9.8

/**
 * Retrieves registered metadata for a specified object.
 *
 * The results include both meta that is registered specifically for the
 * object's subtype and meta that is registered for the entire object type.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not. False if a given $meta_key is not registered.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    $object_subtype = get_object_subtype($object_type, $object_id);
    if (!empty($meta_key)) {
        if (!empty($object_subtype) && !registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            $object_subtype = '';
        }
        if (!registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type, $object_subtype);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    if (!$data) {
        return array();
    }
    $meta_keys = get_registered_meta_keys($object_type);
    if (!empty($object_subtype)) {
        $meta_keys = array_merge($meta_keys, get_registered_meta_keys($object_type, $object_subtype));
    }
    return array_intersect_key($data, $meta_keys);
}

WordPress Version: 9.3

/**
 * Retrieves registered metadata for a specified object.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    if (!empty($meta_key)) {
        if (!registered_meta_key_exists($object_type, $meta_key)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    $meta_keys = get_registered_meta_keys($object_type);
    $registered_data = array();
    // Someday, array_filter()
    foreach ($meta_keys as $k => $v) {
        if (isset($data[$k])) {
            $registered_data[$k] = $data[$k];
        }
    }
    return $registered_data;
}

WordPress Version: .20

/**
 * Retrieves registered metadata for a specified object.
 *
 * The results include both meta that is registered specifically for the
 * object's subtype and meta that is registered for the entire object type.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not. False if a given $meta_key is not registered.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    $object_subtype = get_object_subtype($object_type, $object_id);
    if (!empty($meta_key)) {
        if (!empty($object_subtype) && !registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            $object_subtype = '';
        }
        if (!registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type, $object_subtype);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    if (!$data) {
        return array();
    }
    $meta_keys = get_registered_meta_keys($object_type);
    if (!empty($object_subtype)) {
        $meta_keys = array_merge($meta_keys, get_registered_meta_keys($object_type, $object_subtype));
    }
    return array_intersect_key($data, $meta_keys);
}

WordPress Version: 9.2

/**
 * Retrieves registered metadata for a specified object.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    if (!empty($meta_key)) {
        if (!registered_meta_key_exists($object_type, $meta_key)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    $meta_keys = get_registered_meta_keys($object_type);
    $registered_data = array();
    // Someday, array_filter()
    foreach ($meta_keys as $k => $v) {
        if (isset($data[$k])) {
            $registered_data[$k] = $data[$k];
        }
    }
    return $registered_data;
}

WordPress Version: .10

/**
 * Retrieves registered metadata for a specified object.
 *
 * The results include both meta that is registered specifically for the
 * object's subtype and meta that is registered for the entire object type.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not. False if a given $meta_key is not registered.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    $object_subtype = get_object_subtype($object_type, $object_id);
    if (!empty($meta_key)) {
        if (!empty($object_subtype) && !registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            $object_subtype = '';
        }
        if (!registered_meta_key_exists($object_type, $meta_key, $object_subtype)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type, $object_subtype);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    if (!$data) {
        return array();
    }
    $meta_keys = get_registered_meta_keys($object_type);
    if (!empty($object_subtype)) {
        $meta_keys = array_merge($meta_keys, get_registered_meta_keys($object_type, $object_subtype));
    }
    return array_intersect_key($data, $meta_keys);
}

WordPress Version: 4.6

/**
 * Retrieves registered metadata for a specified object.
 *
 * @since 4.6.0
 *
 * @param string $object_type Type of object to request metadata for. (e.g. comment, post, term, user)
 * @param int    $object_id   ID of the object the metadata is for.
 * @param string $meta_key    Optional. Registered metadata key. If not specified, retrieve all registered
 *                            metadata for the specified object.
 * @return mixed A single value or array of values for a key if specified. An array of all registered keys
 *               and values for an object ID if not.
 */
function get_registered_metadata($object_type, $object_id, $meta_key = '')
{
    if (!empty($meta_key)) {
        if (!registered_meta_key_exists($object_type, $meta_key)) {
            return false;
        }
        $meta_keys = get_registered_meta_keys($object_type);
        $meta_key_data = $meta_keys[$meta_key];
        $data = get_metadata($object_type, $object_id, $meta_key, $meta_key_data['single']);
        return $data;
    }
    $data = get_metadata($object_type, $object_id);
    $meta_keys = get_registered_meta_keys($object_type);
    $registered_data = array();
    // Someday, array_filter()
    foreach ($meta_keys as $k => $v) {
        if (isset($data[$k])) {
            $registered_data[$k] = $data[$k];
        }
    }
    return $registered_data;
}