Introduce create_posts meta capability. Props scribu, nacin, casben79. see #16714

git-svn-id: http://core.svn.wordpress.org/trunk@22060 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Ryan Boren 2012-09-27 15:33:19 +00:00
parent b5853fcd19
commit f8f60ac01b
3 changed files with 11 additions and 1 deletions

View File

@ -49,7 +49,7 @@ $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
$menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu-top menu-icon-post', 'menu-posts', 'none' );
$submenu['edit.php'][5] = array( __('All Posts'), 'edit_posts', 'edit.php' );
/* translators: add new post */
$submenu['edit.php'][10] = array( _x('Add New', 'post'), 'edit_posts', 'post-new.php' );
$submenu['edit.php'][10] = array( _x('Add New', 'post'), 'create_posts', 'post-new.php' );
$i = 15;
foreach ( get_taxonomies( array(), 'objects' ) as $tax ) {

View File

@ -1046,6 +1046,14 @@ function map_meta_cap( $cap, $user_id ) {
$caps[] = $post_type->cap->delete_private_posts;
}
break;
// current_user_can( 'create_posts', $post_type )
case 'create_posts':
$post_type = isset( $args[0] ) ? $args[0] : 'post';
$post_type_object = get_post_type_object( $post_type );
$caps[] = $post_type_object->cap->create_posts;
break;
// edit_post breaks down to edit_posts, edit_published_posts, or
// edit_others_posts
case 'edit_post':

View File

@ -1296,6 +1296,8 @@ function get_post_type_capabilities( $args ) {
'edit_others_posts' => 'edit_others_' . $plural_base,
'publish_posts' => 'publish_' . $plural_base,
'read_private_posts' => 'read_private_' . $plural_base,
// Post creation capability simply maps to edit_posts by default:
'create_posts' => 'edit_' . $plural_base,
);
// Primitive capabilities used within map_meta_cap():