WordPress.org

Make WordPress Core

Ticket #12541: more_register_post_type_args.diff

File more_register_post_type_args.diff, 7.1 KB (added by ptahdunbar, 5 years ago)
  • wp-includes/post.php

     
    1818        register_post_type( 'post', array(      'label' => __('Posts'), 
    1919                                                                                'singular_label' => __('Post'), 
    2020                                                                                'public' => true, 
    21                                                                                 'show_ui' => false, 
     21                                                                                'show_ui' => true, 
     22                                                                                'menu_position' => 5, 
    2223                                                                                '_builtin' => true, 
    2324                                                                                '_edit_link' => 'post.php?post=%d', 
    2425                                                                                'capability_type' => 'post', 
     
    3132        register_post_type( 'page', array(      'label' => __('Pages'), 
    3233                                                                                'singular_label' => __('Page'), 
    3334                                                                                'public' => true, 
    34                                                                                 'show_ui' => false, 
     35                                                                                'show_ui' => true, 
     36                                                                                'menu_position' => 20, 
     37                                                                                'menu_class' => 'menu-icon-pages', 
    3538                                                                                '_builtin' => true, 
    3639                                                                                '_edit_link' => 'post.php?post=%d', 
    3740                                                                                'capability_type' => 'page', 
     
    4346 
    4447        register_post_type( 'attachment', array('label' => __('Media'), 
    4548                                                                                        'public' => true, 
    46                                                                                         'show_ui' => false, 
     49                                                                                        'show_ui' => true, 
     50                                                                                        'menu_position' => 10, 
     51                                                                                        'menu_class' => 'menu-icon-media', 
    4752                                                                                        '_builtin' => true, 
    4853                                                                                        '_edit_link' => 'media.php?attachment_id=%d', 
    4954                                                                                        'capability_type' => 'post', 
     
    762767 * exclude_from_search - Whether to exclude posts with this post type from search results. Defaults to true if the type is not public, false if the type is public. 
    763768 * publicly_queryable - Whether post_type queries can be performed from the front page.  Defaults to whatever public is set as. 
    764769 * show_ui - Whether to generate a default UI for managing this post type. Defaults to true if the type is public, false if the type is not public. 
     770 * menu_position - The position in the menu order the post type should appear 
     771 * menu_class - The menu class to apply to the post type to allow for a custom icon. Defaults to the posts icon. 
    765772 * inherit_type - The post type from which to inherit the edit link and capability type. Defaults to none. 
    766773 * capability_type - The post type to use for checking read, edit, and delete capabilities. Defaults to "post". 
    767774 * edit_cap - The capability that controls editing a particular object of this post type. Defaults to "edit_$capability_type" (edit_post). 
     
    790797                $wp_post_types = array(); 
    791798 
    792799        // Args prefixed with an underscore are reserved for internal use. 
    793         $defaults = array('label' => false, 'singular_label' => false, 'description' => '', 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null ); 
     800        $defaults = array('label' => false, 'singular_label' => false, 'description' => '', 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null, 'menu_position' => null, 'menu_class' => null ); 
    794801        $args = wp_parse_args($args, $defaults); 
    795802        $args = (object) $args; 
    796803 
  • wp-admin/menu.php

     
    7979 
    8080$menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' ); 
    8181 
    82 $menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu-top menu-icon-posts', 'menu-posts', 'div' ); 
    83         $submenu['edit.php'][5]  = array( __('Edit'), 'edit_posts', 'edit.php' ); 
    84         /* translators: add new post */ 
    85         $submenu['edit.php'][10]  = array( _x('Add New', 'post'), 'edit_posts', 'post-new.php' ); 
    86  
    87         $i = 15; 
    88         foreach ( $wp_taxonomies as $tax ) { 
    89                 if ( ! $tax->show_ui || ! in_array('post', (array) $tax->object_type, true) ) 
    90                         continue; 
    91  
    92                 $submenu['edit.php'][$i++] = array( esc_attr($tax->label), $tax->manage_cap, 'edit-tags.php?taxonomy=' . $tax->name ); 
    93         } 
    94         unset($tax); 
    95  
    96 $menu[10] = array( __('Media'), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'div' ); 
    97         $submenu['upload.php'][5] = array( __('Library'), 'upload_files', 'upload.php'); 
    98         /* translators: add new file */ 
    99         $submenu['upload.php'][10] = array( _x('Add New', 'file'), 'upload_files', 'media-new.php'); 
    100  
    10182$menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'div' ); 
    10283        $submenu['link-manager.php'][5] = array( __('Edit'), 'manage_links', 'link-manager.php' ); 
    10384        /* translators: add new links */ 
    10485        $submenu['link-manager.php'][10] = array( _x('Add New', 'link'), 'manage_links', 'link-add.php' ); 
    10586        $submenu['link-manager.php'][15] = array( __('Link Categories'), 'manage_categories', 'edit-link-categories.php' ); 
    10687 
    107 $menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', '', 'menu-top menu-icon-pages', 'menu-pages', 'div' ); 
    108         $submenu['edit.php?post_type=page'][5] = array( __('Edit'), 'edit_pages', 'edit.php?post_type=page' ); 
    109         /* translators: add new page */ 
    110         $submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' ); 
    111  
    11288$menu[25] = array( sprintf( __('Comments %s'), "<span id='awaiting-mod' class='count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'edit_posts', 'edit-comments.php', '', 'menu-top menu-icon-comments', 'menu-comments', 'div' ); 
    11389 
    11490$_wp_last_object_menu = 25; // The index of the last top-level menu in the object menu group 
     
    11793        $_wp_last_object_menu++; 
    11894        $ptype_obj = get_post_type_object($ptype); 
    11995         
    120         $menu[$_wp_last_object_menu] = array(esc_attr($ptype_obj->label), $ptype_obj->edit_type_cap, "edit.php?post_type=$ptype", '', 'menu-top menu-icon-posts', 'menu-' . sanitize_html_class($ptype), 'div'); 
     96        $ptype_menu_position = is_int($ptype_obj->menu_position) ? $ptype_obj->menu_position : $_wp_last_object_menu; 
     97        $ptype_menu_class = is_string( $ptype_obj->menu_class ) ? $ptype_obj->menu_class : 'menu-icon-posts'; 
     98         
     99        $menu[$ptype_menu_position] = array(esc_attr($ptype_obj->label), $ptype_obj->edit_type_cap, "edit.php?post_type=$ptype", '', 'menu-top ' . $ptype_menu_class, 'menu-' . sanitize_html_class($ptype), 'div'); 
    121100        $submenu["edit.php?post_type=$ptype"][5]  = array( __('Edit'), 'edit_posts',  "edit.php?post_type=$ptype"); 
    122101        /* translators: add new custom post type */ 
    123102        $submenu["edit.php?post_type=$ptype"][10]  = array( _x('Add New', 'post'), 'edit_posts', "post-new.php?post_type=$ptype" ); 
     
    130109                $submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), $tax->manage_cap, "edit-tags.php?taxonomy=$tax->name&amp;post_type=$ptype" ); 
    131110        } 
    132111} 
    133 unset($ptype, $ptype_obj); 
     112unset($ptype, $ptype_obj, $ptype_menu_position, $ptype_menu_class); 
    134113 
    135114$menu[59] = array( '', 'read', 'separator2', '', 'wp-menu-separator' ); 
    136115