Make WordPress Core


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

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

File:
1 edited

Legend:

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

    r13533 r13579  
    178178// Create list of page plugin hook names.
    179179foreach ($menu as $menu_page) {
    180     $hook_name = sanitize_title(basename($menu_page[2], '.php'));
     180    if ( false !== $pos = strpos($menu_page[2], '?') ) {
     181        // Handle post_type=post|page|foo pages.
     182        $hook_name = substr($menu_page[2], 0, $pos);
     183        $hook_args = substr($menu_page[2], $pos + 1);
     184        wp_parse_str($hook_args, $hook_args);
     185        // Set the hook name to be the post type.
     186        if ( isset($hook_args['post_type']) )
     187            $hook_name = $hook_args['post_type'];
     188        else
     189            $hook_name = basename($hook_name, '.php');
     190        unset($hook_args);
     191    } else {
     192        $hook_name = basename($menu_page[2], '.php');
     193    }
     194    $hook_name = sanitize_title($hook_name);
    181195
    182196    // ensure we're backwards compatible
     
    184198        'index' => 'dashboard',
    185199        'edit' => 'posts',
     200        'post' => 'posts',
    186201        'upload' => 'media',
    187202        'link-manager' => 'links',
    188203        'edit-pages' => 'pages',
     204        'page' => 'pages',
    189205        'edit-comments' => 'comments',
    190206        'options-general' => 'settings',
Note: See TracChangeset for help on using the changeset viewer.