get_metadata( string $meta_type, int $object_id, string $meta_key = '', bool $single = false )
Retrieve metadata for the specified object.
Description Description
Parameters Parameters
- $meta_type
-
(string) (Required) Type of object metadata is for (e.g., comment, post, term, or user).
- $object_id
-
(int) (Required) ID of the object metadata is for
- $meta_key
-
(string) (Optional) Metadata key. If not specified, retrieve all metadata for the specified object.
Default value: ''
- $single
-
(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
Return Return
(mixed) Single metadata value, or array of values
Source Source
File: wp-includes/meta.php
function get_metadata( $meta_type, $object_id, $meta_key = '', $single = false ) { if ( ! $meta_type || ! is_numeric( $object_id ) ) { return false; } $object_id = absint( $object_id ); if ( ! $object_id ) { return false; } /** * Filters whether to retrieve metadata of a specific type. * * The dynamic portion of the hook, `$meta_type`, refers to the meta * object type (comment, post, term, or user). Returning a non-null value * will effectively short-circuit the function. * * @since 3.1.0 * * @param null|array|string $value The value get_metadata() should return - a single metadata value, * or an array of values. * @param int $object_id Object ID. * @param string $meta_key Meta key. * @param bool $single Whether to return only the first value of the specified $meta_key. */ $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single ); if ( null !== $check ) { if ( $single && is_array( $check ) ) { return $check[0]; } else { return $check; } } $meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' ); if ( ! $meta_cache ) { $meta_cache = update_meta_cache( $meta_type, array( $object_id ) ); if ( isset( $meta_cache[ $object_id ] ) ) { $meta_cache = $meta_cache[ $object_id ]; } else { $meta_cache = null; } } if ( ! $meta_key ) { return $meta_cache; } if ( isset( $meta_cache[ $meta_key ] ) ) { if ( $single ) { return maybe_unserialize( $meta_cache[ $meta_key ][0] ); } else { return array_map( 'maybe_unserialize', $meta_cache[ $meta_key ] ); } } if ( $single ) { return ''; } else { return array(); } }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.9.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
If the meta value does not exist and
true == $single
the function will return an empty string (''
). Iffalse == $single
an empty array is returned.If
! is_numeric( $user_id )
or! absint( $user_id )
, booleanfalse
is returned.Example of returned array for post metadatas :
Expand full source codeCollapse full source code