Meta registration: Ensure `$args` is an array and simplify compat logic.

props ocean90, sc0ttkclark.
see #35658.

Built from https://develop.svn.wordpress.org/trunk@37933


git-svn-id: http://core.svn.wordpress.org/trunk@37874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Helen Hou-Sandí 2016-06-30 19:00:31 +00:00
parent 858fb83f57
commit 42854ca56f
2 changed files with 11 additions and 12 deletions

View File

@ -980,8 +980,6 @@ function sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype =
* @param string $object_subtype Object subtype.
*/
return apply_filters( "sanitize_{$object_type}_meta_{$meta_key}", $meta_value, $meta_key, $object_type, $object_subtype );
}
/**
@ -1003,13 +1001,13 @@ function sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype =
* @type string $auth_callback Optional. A function or method to call when performing edit_post_meta, add_post_meta, and delete_post_meta capability checks.
* @type bool $show_in_rest Whether data associated with this meta key can be considered public.
* }
* @param string|array $auth_callback Deprecated. Use `$args` instead.
* @param string|array $deprecated Deprecated. Use `$args` instead.
*
* @return bool True if the meta key was successfully registered in the global array, false if not.
* Registering a meta key with distinct sanitize and auth callbacks will fire those
* callbacks, but will not add to the global registry as it requires a subtype.
*/
function register_meta( $object_type, $meta_key, $args, $auth_callback = null ) {
function register_meta( $object_type, $meta_key, $args, $deprecated = null ) {
global $wp_meta_keys;
if ( ! is_array( $wp_meta_keys ) ) {
@ -1030,20 +1028,21 @@ function register_meta( $object_type, $meta_key, $args, $auth_callback = null )
'show_in_rest' => false,
);
$passed_args = array_slice( func_get_args(), 2 );
// There used to be individual args for sanitize and auth callbacks
$has_old_sanitize_cb = false;
if ( is_callable( $passed_args[0] ) ) {
$args['sanitize_callback'] = $passed_args[0];
if ( is_callable( $args ) ) {
$args = array(
'sanitize_callback' => $args,
);
$has_old_sanitize_cb = true;
} else {
$args = $passed_args[0];
$args = (array) $args;
}
if ( isset( $passed_args[1] ) && is_callable( $passed_args[1] ) ) {
$args['auth_callback'] = $passed_args[1];
if ( is_callable( $deprecated ) ) {
$args['auth_callback'] = $deprecated;
}
$args = wp_parse_args( $args, $defaults );

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.6-beta1-37932';
$wp_version = '4.6-beta1-37933';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.