From 3ccfb56e3c04ceef98fb3badf69b59c09591feec Mon Sep 17 00:00:00 2001 From: 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: http://svn.automattic.com/wordpress/trunk@16338 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- 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);