WordPress.org

Make WordPress Core

Ticket #16714: 16714.6.diff

File 16714.6.diff, 4.8 KB (added by ryan, 3 years ago)

Custom edit_posts should be used for create_posts if create_posts not specified

  • wp-includes/post.php

     
    14111411                'edit_others_posts'  => 'edit_others_'  . $plural_base, 
    14121412                'publish_posts'      => 'publish_'      . $plural_base, 
    14131413                'read_private_posts' => 'read_private_' . $plural_base, 
    1414                 // Post creation capability simply maps to edit_posts by default: 
    1415                 'create_posts'       => 'edit_'         . $plural_base, 
    14161414        ); 
    14171415 
    14181416        // Primitive capabilities used within map_meta_cap(): 
     
    14311429 
    14321430        $capabilities = array_merge( $default_capabilities, $args->capabilities ); 
    14331431 
     1432        // Post creation capability simply maps to edit_posts by default: 
     1433        if ( ! isset( $capabilities['create_posts'] ) ) 
     1434                $capabilities['create_posts'] = $capabilities['edit_posts']; 
     1435 
    14341436        // Remember meta capabilities for future reference. 
    14351437        if ( $args->map_meta_cap ) 
    14361438                _post_type_meta_capabilities( $capabilities ); 
  • wp-admin/post-new.php

     
    3636 
    3737$editing = true; 
    3838 
    39 if ( ! current_user_can( $post_type_object->cap->edit_posts ) ) 
     39if ( ! current_user_can( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->create_posts ) ) 
    4040        wp_die( __( 'Cheatin’ uh?' ) ); 
    4141 
    4242// Schedule auto-draft cleanup 
  • wp-admin/index.php

     
    7676        $help .= '<p>' . __('<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them.') . '</p>'; 
    7777if ( current_user_can( 'publish_posts' ) ) 
    7878        $help .= '<p>' . __('<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search.') . '</p>'; 
    79 if ( current_user_can( 'edit_posts' ) ) { 
     79if ( current_user_can( 'create_posts' ) ) { 
    8080        $help .= '<p>' . __('<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft.') . '</p>'; 
    8181        $help .= '<p>' . __('<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started.') . '</p>'; 
    8282} 
  • wp-admin/edit-form-advanced.php

     
    274274 
    275275<div class="wrap"> 
    276276<?php screen_icon(); ?> 
    277 <h2><?php echo esc_html( $title ); ?><?php if ( isset( $post_new_file ) ) : ?> <a href="<?php echo esc_url( $post_new_file ) ?>" class="add-new-h2"><?php echo esc_html($post_type_object->labels->add_new); ?></a><?php endif; ?></h2> 
     277<h2><?php 
     278echo esc_html( $title ); 
     279if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) ) 
     280        echo ' <a href="' . esc_url( $post_new_file ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>'; 
     281?></h2> 
    278282<?php if ( $notice ) : ?> 
    279283<div id="notice" class="error"><p><?php echo $notice ?></p></div> 
    280284<?php endif; ?> 
  • wp-admin/edit.php

     
    221221?> 
    222222<div class="wrap"> 
    223223<?php screen_icon(); ?> 
    224 <h2><?php echo esc_html( $post_type_object->labels->name ); ?> <a href="<?php echo $post_new_file ?>" class="add-new-h2"><?php echo esc_html($post_type_object->labels->add_new); ?></a> <?php 
     224<h2><?php 
     225echo esc_html( $post_type_object->labels->name ); 
     226if ( current_user_can( $post_type_object->cap->create_posts ) ) 
     227        echo ' <a href="' . esc_url( $post_new_file ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>'; 
    225228if ( ! empty( $_REQUEST['s'] ) ) 
    226         printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() ); ?> 
    227 </h2> 
     229        printf( ' <span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() ); 
     230?></h2> 
    228231 
    229232<?php if ( isset( $_REQUEST['locked'] ) || isset( $_REQUEST['updated'] ) || isset( $_REQUEST['deleted'] ) || isset( $_REQUEST['trashed'] ) || isset( $_REQUEST['untrashed'] ) ) { 
    230233        $messages = array(); 
  • wp-admin/press-this.php

     
    1313 
    1414header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); 
    1515 
    16 if ( ! current_user_can('edit_posts') ) 
     16if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( 'create_posts' ) ) 
    1717        wp_die( __( 'Cheatin&#8217; uh?' ) ); 
    1818 
    1919/**