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, 8 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