WordPress.org

Make WordPress Core

Ticket #13876: 13876.2.diff

File 13876.2.diff, 2.9 KB (added by ryan, 5 years ago)
  • wp-admin/includes/template.php

     
    33163316 * @since unknown 
    33173317 */ 
    33183318function favorite_actions( $screen = null ) { 
    3319         global $post_type_object; 
    3320  
    33213319        $default_action = false; 
    33223320 
    33233321        if ( is_string($screen) ) 
    33243322                $screen = convert_to_screen($screen); 
    33253323 
    3326         if ( isset($post_type_object) ) { 
    3327                 switch ( $screen->id ) { 
    3328                         case $post_type_object->name: 
    3329                                 $default_action = array('edit.php?post_type=' . $post_type_object->name => array($post_type_object->labels->edit_item, $post_type_object->cap->edit_posts)); 
    3330                                 break; 
    3331                         case "edit-{$post_type_object->name}": 
    3332                                 $default_action = array('post-new.php?post_type=' . $post_type_object->name => array($post_type_object->labels->new_item, $post_type_object->cap->edit_posts)); 
    3333                                 break; 
    3334                 } 
     3324        if ( isset($screen->post_type) ) { 
     3325                $post_type_object = get_post_type_object($screen->post_type); 
     3326                if ( 'add' != $screen->action ) 
     3327                        $default_action = array('post-new.php?post_type=' . $post_type_object->name => array($post_type_object->labels->new_item, $post_type_object->cap->edit_posts)); 
     3328                else 
     3329                        $default_action = array('edit.php?post_type=' . $post_type_object->name => array($post_type_object->labels->edit_item, $post_type_object->cap->edit_posts)); 
    33353330        } 
    33363331 
    33373332        if ( !$default_action ) { 
     
    33433338                                $default_action = array('upload.php' => array(__('Edit Media'), 'upload_files')); 
    33443339                                break; 
    33453340                        case 'link-manager': 
    3346                                 $default_action = array('link-add.php' => array(__('New Link'), 'manage_links')); 
     3341                        case 'link': 
     3342                                if ( 'add' != $screen->action ) 
     3343                                        $default_action = array('link-add.php' => array(__('New Link'), 'manage_links')); 
     3344                                else 
     3345                                        $default_action = array('link-manager.php' => array(__('Edit Links'), 'manage_links')); 
    33473346                                break; 
    3348                         case 'link-add': 
    3349                                 $default_action = array('link-manager.php' => array(__('Edit Links'), 'manage_links')); 
    3350                                 break; 
    33513347                        case 'users': 
    33523348                                $default_action = array('user-new.php' => array(__('New User'), 'create_users')); 
    33533349                                break; 
     
    39023898function set_current_screen( $id =  '' ) { 
    39033899        global $current_screen, $hook_suffix, $typenow, $taxnow; 
    39043900 
     3901        $action = ''; 
     3902 
    39053903        if ( empty($id) ) { 
    39063904                $current_screen = $hook_suffix; 
    39073905                $current_screen = str_replace('.php', '', $current_screen); 
     3906                if ( preg_match('/-add|-new$/', $current_screen) ) 
     3907                        $action = 'add'; 
    39083908                $current_screen = str_replace('-new', '', $current_screen); 
    39093909                $current_screen = str_replace('-add', '', $current_screen); 
    39103910                $current_screen = array('id' => $current_screen, 'base' => $current_screen); 
     
    39233923 
    39243924        $current_screen = (object) $current_screen; 
    39253925 
     3926        $current_screen->action = $action; 
     3927 
    39263928        // Map index to dashboard 
    39273929        if ( 'index' == $current_screen->base ) 
    39283930                $current_screen->base = 'dashboard';