get_metadata_raw() WordPress Function

The get_metadata_raw() function is used to retrieve metadata for a specific object. This function can be used to retrieve metadata for posts, pages, attachments, and revisions.

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

Retrieves raw metadata value for the specified object.


Parameters

$meta_type

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

$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


Top ↑

Return

(mixed) An array of values if $single is false. The value of the meta field if $single is true. False for an invalid $object_id (non-numeric, zero, or negative value), or if $meta_type is not specified. Null if the value does not exist.


Top ↑

Source

File: wp-includes/meta.php

597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
function get_metadata_raw( $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;
    }
 
    /**
     * Short-circuits the return value of a meta field.
     *
     * The dynamic portion of the hook name, `$meta_type`, refers to the meta object type
     * (post, comment, term, user, or any other type with an associated meta table).
     * Returning a non-null value will effectively short-circuit the function.
     *
     * Possible filter names include:
     *
     *  - `get_post_metadata`
     *  - `get_comment_metadata`
     *  - `get_term_metadata`
     *  - `get_user_metadata`
     *
     * @since 3.1.0
     * @since 5.5.0 Added the `$meta_type` parameter.
     *
     * @param mixed  $value     The value to return, either a single metadata value or an array
     *                          of values depending on the value of `$single`. Default null.
     * @param int    $object_id ID of the object metadata is for.
     * @param string $meta_key  Metadata key.
     * @param bool   $single    Whether to return only the first value of the specified `$meta_key`.
     * @param string $meta_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
     *                          or any other object type with an associated meta table.
     */
    $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single, $meta_type );
    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 ] );
        }
    }
 
    return null;
}


Top ↑

Changelog

Changelog
VersionDescription
5.5.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by the Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.