metadata_exists( string $meta_type, int $object_id, string $meta_key )

Determine if a meta key is set for a given object


Description Description


Parameters Parameters

$meta_type

(string) (Required) Type of object metadata is for (e.g., comment, post, or user)

$object_id

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

$meta_key

(string) (Required) Metadata key.


Top ↑

Return Return

(bool) True of the key is set, false if not.


Top ↑

Source Source

File: wp-includes/meta.php

function metadata_exists( $meta_type, $object_id, $meta_key ) {
	if ( ! $meta_type || ! is_numeric( $object_id ) ) {
		return false;
	}

	$object_id = absint( $object_id );
	if ( ! $object_id ) {
		return false;
	}

	/** This filter is documented in wp-includes/meta.php */
	$check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, true );
	if ( null !== $check )
		return (bool) $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 ( isset( $meta_cache[ $meta_key ] ) )
		return true;

	return false;
}

Top ↑

Changelog Changelog

Changelog
Version Description
3.3.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by vutuan.sw
    // Check and get a term meta
    
    if ( metadata_exists( 'term', $term_id, '_meta_key' ) ) {
    	$meta_value = get_term_meta( $term_id, '_meta_key', true );
    }
    
    // Check and get a post meta
    
    if ( metadata_exists( 'post', $post_id, '_meta_key' ) ) {
    	$meta_value = get_post_meta( $post_id, '_meta_key', true );
    }
    
    // Check and get a user meta
    
    if ( metadata_exists( 'user', $user_id, '_meta_key' ) ) {
    	$meta_value = get_user_meta( $user_id, '_meta_key', true );
    }
    

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