WordPress.org

Make WordPress Core

Ticket #43941: meta_default.diff

File meta_default.diff, 1.8 KB (added by spacedmonkey, 17 months ago)
  • src/wp-includes/meta.php

     
    529529                }
    530530        }
    531531
    532         if ( $single ) {
    533                 return '';
    534         } else {
    535                 return array();
    536         }
     532        return get_metadata_default( $meta_type, $meta_key, $single );
    537533}
    538534
    539535/**
     
    10331029                'sanitize_callback' => null,
    10341030                'auth_callback'     => null,
    10351031                'show_in_rest'      => false,
     1032                'default_value'     => false,
    10361033        );
    10371034
    10381035        // There used to be individual args for sanitize and auth callbacks
     
    10961093}
    10971094
    10981095/**
     1096 * @param $meta_type
     1097 * @param $meta_key
     1098 * @param bool $single
     1099 *
     1100 * @return array|bool
     1101 */
     1102function get_metadata_default( $meta_type, $meta_key, $single = false ) {
     1103        global $wp_meta_keys;
     1104
     1105        if ( ! is_array( $wp_meta_keys ) ) {
     1106                $wp_meta_keys = array();
     1107        }
     1108
     1109        if ( $single ) {
     1110                $default_value = '';
     1111        } else {
     1112                $default_value =  array();
     1113        }
     1114
     1115        if ( isset( $wp_meta_keys[ $meta_type ][ $meta_key ]['default_value'] ) && false !== $wp_meta_keys[ $meta_type ][ $meta_key ]['default_value'] ) {
     1116                $default_value = $wp_meta_keys[ $meta_type ][ $meta_key ]['default_value'];
     1117        }
     1118
     1119        /**
     1120         *
     1121         * @since 5.0.0
     1122         *
     1123         * @param null|array|string $default_value     The default value of get_metadata() should return - a single metadata value,
     1124         *                                     or an array of values.
     1125         * @param string            $meta_key  Meta key.
     1126         * @param bool              $single    Whether to return only the first value of the specified $meta_key.
     1127         */
     1128        $default_value = apply_filters( "get_{$meta_type}_metadata_default", $default_value, $meta_key, $single );
     1129
     1130        if ( ! $single ) {
     1131                $default_value = (array) $default_value;
     1132        }
     1133
     1134        return $default_value;
     1135}
     1136
     1137/**
    10991138 * Checks if a meta key is registered.
    11001139 *
    11011140 * @since 4.6.0