get_metadata
Retrieve metadata for the specified object.
Description
get_metadata( (string) $meta_type, (int) $object_id, (string) $meta_key = '', (constant) $single = false );
Parameters (4)
- 0. $meta_type (string)
- Type of object metadata is for (e.g., comment, post, or user)
- 1. $object_id (int)
- ID of the object metadata is for
- 2. $meta_key — Optional. (string) =>
''
- Metadata key. If not specified, retrieve all metadata for the specified object.
- 3. $single — Optional. (constant) =>
false
- Optional, default is false. If true, return only the first value of the specified meta_key. This parameter has no effect if meta_key is not specified.
Usage
if ( !function_exists( 'get_metadata' ) ) { require_once ABSPATH . WPINC . '/meta.php'; } // Type of object metadata is for (e.g., comment, post, or user) $meta_type = ''; // ID of the object metadata is for $object_id = -1; // Optional. Metadata key. If not specified, retrieve all metadata for // the specified object. $meta_key = ''; $single = false; // NOTICE! Understand what this does before running. $result = get_metadata($meta_type, $object_id, $meta_key, $single);
Defined (1)
The function is defined in the following location(s).
- /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, 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 ) );
- $meta_cache = $meta_cache[$object_id];
- }
- 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();
- }