Make WordPress Core


Ignore:
Timestamp:
03/04/2010 12:15:55 AM (17 years ago)
Author:
ryan
Message:

Fix submenus for post types. Props TobiasBg. see #12453

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin.php

    r12982 r13579  
    7373$editing = false;
    7474
    75 if (isset($_GET['page'])) {
     75if ( isset($_GET['page']) ) {
    7676        $plugin_page = stripslashes($_GET['page']);
    7777        $plugin_page = plugin_basename($plugin_page);
    7878}
     79
     80if ( isset($_GET['post_type']) )
     81        $typenow = sanitize_user($_GET['post_type'], true);
     82else
     83        $typenow = '';
    7984
    8085require(ABSPATH . 'wp-admin/menu.php');
    … …  
    8287do_action('admin_init');
    8388
    84 if (isset($plugin_page) ) {
    85         if ( ! $page_hook = get_plugin_page_hook($plugin_page, $pagenow) ) {
     89if ( isset($plugin_page) ) {
     90        if ( !empty($typenow) )
     91                $the_parent = $pagenow . '?post_type=' . $typenow;
     92        else
     93                $the_parent = $pagenow;
     94        if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
    8695                $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
    8796                // backwards compatibility for plugins using add_management_page
    … …  
    96105                }
    97106        }
     107        unset($the_parent);
    98108}
    99109
    … …  
    105115else if ( isset($pagenow) )
    106116        $hook_suffix = $pagenow;
    107 
    108 if ( isset($_GET['post_type']) )
    109         $typenow = $_GET['post_type'];
    110 else
    111         $typenow = '';
    112 // @todo validate typenow against post types.
    113117
    114118set_current_screen();
Note: See TracChangeset for help on using the changeset viewer.