get_metadata_default

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

WordPress Version: 5.9

/**
 * Retrieves default metadata value for the specified meta key and object.
 *
 * By default, an empty string is returned if `$single` is true, or an empty array
 * if it's false.
 *
 * @since 5.5.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.
 * @param bool   $single    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 false.
 * @return mixed An array of default values if `$single` is false.
 *               The default value of the meta field if `$single` is true.
 */
function get_metadata_default($meta_type, $object_id, $meta_key, $single = false)
{
    if ($single) {
        $value = '';
    } else {
        $value = array();
    }
    /**
     * Filters the default metadata value for a specified meta key and object.
     *
     * 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).
     *
     * Possible filter names include:
     *
     *  - `default_post_metadata`
     *  - `default_comment_metadata`
     *  - `default_term_metadata`
     *  - `default_user_metadata`
     *
     * @since 5.5.0
     *
     * @param mixed  $value     The value to return, either a single metadata value or an array
     *                          of values depending on the value of `$single`.
     * @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.
     */
    $value = apply_filters("default_{$meta_type}_metadata", $value, $object_id, $meta_key, $single, $meta_type);
    if (!$single && !wp_is_numeric_array($value)) {
        $value = array($value);
    }
    return $value;
}

WordPress Version: 5.8

/**
 * Retrieves default metadata value for the specified meta key and object.
 *
 * By default, an empty string is returned if `$single` is true, or an empty array
 * if it's false.
 *
 * @since 5.5.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.
 * @param bool   $single    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 false.
 * @return mixed An array of default values if `$single` is false.
 *               The default value of the meta field if `$single` is true.
 */
function get_metadata_default($meta_type, $object_id, $meta_key, $single = false)
{
    if ($single) {
        $value = '';
    } else {
        $value = array();
    }
    /**
     * Filters the default metadata value for a specified meta key and object.
     *
     * The dynamic portion of the hook, `$meta_type`, refers to the meta object type
     * (post, comment, term, user, or any other type with an associated meta table).
     *
     * Possible filter names include:
     *
     *  - `default_post_metadata`
     *  - `default_comment_metadata`
     *  - `default_term_metadata`
     *  - `default_user_metadata`
     *
     * @since 5.5.0
     *
     * @param mixed  $value     The value to return, either a single metadata value or an array
     *                          of values depending on the value of `$single`.
     * @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.
     */
    $value = apply_filters("default_{$meta_type}_metadata", $value, $object_id, $meta_key, $single, $meta_type);
    if (!$single && !wp_is_numeric_array($value)) {
        $value = array($value);
    }
    return $value;
}

WordPress Version: 5.5

/**
 * Retrieves default metadata value for the specified meta key and object.
 *
 * By default, an empty string is returned if `$single` is true, or an empty array
 * if it's false.
 *
 * @since 5.5.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.
 * @param bool   $single    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 false.
 * @return mixed Single metadata value, or array of values.
 */
function get_metadata_default($meta_type, $object_id, $meta_key, $single = false)
{
    if ($single) {
        $value = '';
    } else {
        $value = array();
    }
    /**
     * Filters the default metadata value for a specified meta key and object.
     *
     * The dynamic portion of the hook, `$meta_type`, refers to the meta object type
     * (post, comment, term, user, or any other type with an associated meta table).
     *
     * Possible filter names include:
     *
     *  - `default_post_metadata`
     *  - `default_comment_metadata`
     *  - `default_term_metadata`
     *  - `default_user_metadata`
     *
     * @since 5.5.0
     *
     * @param mixed  $value     The value to return, either a single metadata value or an array
     *                          of values depending on the value of `$single`.
     * @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.
     */
    $value = apply_filters("default_{$meta_type}_metadata", $value, $object_id, $meta_key, $single, $meta_type);
    if (!$single && !wp_is_numeric_array($value)) {
        $value = array($value);
    }
    return $value;
}