metadata_exists

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

WordPress Version: 5.7

/**
 * Determines if a meta field with the given key exists for the given object ID.
 *
 * @since 3.3.0
 *
 * @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.
 * @param int    $object_id ID of the object metadata is for.
 * @param string $meta_key  Metadata key.
 * @return bool Whether a meta field with the given key exists.
 */
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, $meta_type);
    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;
}

WordPress Version: 5.5

/**
 * Determines if a meta field with the given key exists for the given object ID.
 *
 * @since 3.3.0
 *
 * @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.
 * @param int    $object_id ID of the object metadata is for.
 * @param string $meta_key  Metadata key.
 * @return bool Whether a meta field with the given key exists.
 */
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;
}

WordPress Version: 5.4

/**
 * Determines if a meta key is set for a given object.
 *
 * @since 3.3.0
 *
 * @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.
 * @param int    $object_id ID of the object metadata is for.
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: 9.9

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, term, or user).
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: 9.3

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: .20

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, term, or user).
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: 9.2

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: .10

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, term, or user).
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: 4.3

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int    $object_id ID of the object metadata is for
 * @param string $meta_key  Metadata key.
 * @return bool True of the key is set, false if not.
 */
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;
}

WordPress Version: 4.0

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int $object_id ID of the object metadata is for
 * @param string $meta_key Metadata key.
 * @return boolean true of the key is set, false if not.
 */
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;
}

WordPress Version: 3.9

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int $object_id ID of the object metadata is for
 * @param string $meta_key Metadata key.
 * @return boolean true of the key is set, false if not.
 */
function metadata_exists($meta_type, $object_id, $meta_key)
{
    if (!$meta_type) {
        return false;
    }
    if (!$object_id = absint($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;
}

WordPress Version: 3.7

/**
 * Determine if a meta key is set for a given object
 *
 * @since 3.3.0
 *
 * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
 * @param int $object_id ID of the object metadata is for
 * @param string $meta_key Metadata key.
 * @return boolean true of the key is set, false if not.
 */
function metadata_exists($meta_type, $object_id, $meta_key)
{
    if (!$meta_type) {
        return false;
    }
    if (!$object_id = absint($object_id)) {
        return false;
    }
    $check = apply_filters("get_{$meta_type}_metadata", null, $object_id, $meta_key, true);
    if (null !== $check) {
        return true;
    }
    $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;
}