Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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
  • Loading branch information...
commit f8f60ac01b7fd37592bbcf22edb73f83945df6b8 1 parent b5853fc
Ryan Boren authored
View
2  wp-admin/menu.php
@@ -49,7 +49,7 @@
$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
8 wp-includes/capabilities.php
@@ -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
2  wp-includes/post.php
@@ -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():
Please sign in to comment.
Something went wrong with that request. Please try again.