Make WordPress Core

Changeset 35704


Ignore:
Timestamp:
11/19/2015 04:24:35 PM (11 years ago)
Author:
johnbillion
Message:

Move the show_ui logic into the get_edit_post_link() and get_edit_term_link() functions to facilitate post types and terms which specify show_ui as false but provide a custom editing UI via the get_edit_post_link and get_edit_term_link filters.

Fixes #33763
Fixes #33938

Location:
trunk/src/wp-includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/admin-bar.php

    r35157 r35704  
    594594                        && ( $post_type_object = get_post_type_object( $current_object->post_type ) )
    595595                        && current_user_can( 'edit_post', $current_object->ID )
    596                         && $post_type_object->show_ui && $post_type_object->show_in_admin_bar
     596                        && $post_type_object->show_in_admin_bar
    597597                        && $edit_post_link = get_edit_post_link( $current_object->ID ) )
    598598                {
    … …  
    605605                        && ( $tax = get_taxonomy( $current_object->taxonomy ) )
    606606                        && current_user_can( $tax->cap->edit_terms )
    607                         && $tax->show_ui
    608607                        && $edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy ) )
    609608                {
  • trunk/src/wp-includes/link-template.php

    r35274 r35704  
    938938        }
    939939
    940         $location = add_query_arg( $args, admin_url( 'edit-tags.php' ) );
     940        if ( $tax->show_ui ) {
     941                $location = add_query_arg( $args, admin_url( 'edit-tags.php' ) );
     942        } else {
     943                $location = '';
     944        }
    941945
    942946        /**
    … …  
    12551259                return;
    12561260
    1257         $allowed = array_merge( array(
    1258                 'revision',
    1259         ), get_post_types( array(
    1260                 'show_ui' => true,
    1261         ) ) );
    1262 
    1263         if ( ! in_array( $post->post_type, $allowed ) ) {
    1264                 return;
     1261        if ( $post_type_object->_edit_link ) {
     1262                $link = admin_url( sprintf( $post_type_object->_edit_link . $action, $post->ID ) );
     1263        } else {
     1264                $link = '';
    12651265        }
    12661266
    … …  
    12751275         *                        are encoded.
    12761276         */
    1277         return apply_filters( 'get_edit_post_link', admin_url( sprintf( $post_type_object->_edit_link . $action, $post->ID ) ), $post->ID, $context );
     1277        return apply_filters( 'get_edit_post_link', $link, $post->ID, $context );
    12781278}
    12791279
  • trunk/src/wp-includes/post-functions.php

    r35623 r35704  
    10131013        $args = apply_filters( 'register_post_type_args', $args, $post_type );
    10141014
     1015        $has_edit_link = ! empty( $args['_edit_link'] );
     1016
    10151017        // Args prefixed with an underscore are reserved for internal use.
    10161018        $defaults = array(
    … …  
    10821084        if ( null === $args->map_meta_cap )
    10831085                $args->map_meta_cap = false;
     1086
     1087        // If there's no specified edit link and no UI, remove the edit link.
     1088        if ( ! $args->show_ui && ! $has_edit_link ) {
     1089                $args->_edit_link = '';
     1090        }
    10841091
    10851092        $args->cap = get_post_type_capabilities( $args );
Note: See TracChangeset for help on using the changeset viewer.