From 812c44072ac6f3f967f2fa6fa8ad70703ca69ac9 Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Sat, 13 Nov 2010 08:40:38 +0000 Subject: [PATCH] Set map_meta_cap to true when capability_type = post and no custom caps are specified. see #14122. git-svn-id: https://develop.svn.wordpress.org/trunk@16338 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/post.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wp-includes/post.php b/wp-includes/post.php index 5f8fa06b0a..367faf716a 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -883,7 +883,7 @@ function register_post_type($post_type, $args = array()) { // Args prefixed with an underscore are reserved for internal use. $defaults = array( 'labels' => array(), 'description' => '', 'publicly_queryable' => null, 'exclude_from_search' => null, - 'capability_type' => 'post', 'capabilities' => array(), 'map_meta_cap' => false, + 'capability_type' => 'post', 'capabilities' => array(), 'map_meta_cap' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'has_archive' => false, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, @@ -916,6 +916,13 @@ function register_post_type($post_type, $args = array()) { if ( null === $args->exclude_from_search ) $args->exclude_from_search = !$args->public; + // Back compat with quirky handling in version 3.0. #14122 + if ( 'post' == $args->capability_type && null === $args->map_meta_cap && empty( $args->capabilities ) ) + $args->map_meta_cap = true; + + if ( null === $args->map_meta_cap ) + $args->map_meta_cap = false; + $args->cap = get_post_type_capabilities( $args ); unset($args->capabilities);