Make WordPress Core

Ticket #29714: 29714-2.diff

File 29714-2.diff, 1.5 KB (added by bobbingwide, 10 years ago)

don't update the global $pagenow. Use a copy in $pagetest.

  • wp-admin/includes/plugin.php

     
    16631663                if ( !isset($_registered_pages[$hookname]) )
    16641664                        return false;
    16651665        }
    1666 
     1666  $pagetest = $pagenow;
    16671667        if ( empty( $parent) ) {
    1668                 if ( isset( $_wp_menu_nopriv[$pagenow] ) )
     1668                if ( $pagenow == "edit.php" && isset( $_REQUEST['post_type'] ) ) {
     1669                        $pagetest .= '?post_type=' . $_REQUEST['post_type' ];
     1670                }
     1671                if ( isset( $_wp_menu_nopriv[$pagetest] ) )
    16691672                        return false;
    1670                 if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) )
     1673                if ( isset( $_wp_submenu_nopriv[$page] ) )
    16711674                        return false;
    1672                 if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
     1675                if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$page][$plugin_page] ) )
    16731676                        return false;
    16741677                if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
    16751678                        return false;
    16761679                foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {
    1677                         if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) )
     1680                        if ( isset( $_wp_submenu_nopriv[$key][$page] ) )
    16781681                                return false;
    16791682                        if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) )
    16801683                        return false;
     
    16921695                                        return true;
    16931696                                else
    16941697                                        return false;
    1695                         } else if ( $submenu_array[2] == $pagenow ) {
     1698                        } else if ( $submenu_array[2] == $page ) {
    16961699                                if ( current_user_can( $submenu_array[1] ))
    16971700                                        return true;
    16981701                                else