WordPress.org

Make WordPress Core

Ticket #22895: 22895-2.diff

File 22895-2.diff, 1.5 KB (added by bobbingwide, 6 years ago)

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

  • src/wp-admin/includes/plugin.php

     
    16841684                if ( !isset($_registered_pages[$hookname]) )
    16851685                        return false;
    16861686        }
    1687 
     1687  $pagetest = $pagenow;
    16881688        if ( empty( $parent) ) {
    1689                 if ( isset( $_wp_menu_nopriv[$pagenow] ) )
     1689                if ( $pagenow == "edit.php" && isset( $_REQUEST['post_type'] ) ) {
     1690                        $pagetest .= '?post_type=' . $_REQUEST['post_type' ];
     1691                }
     1692                if ( isset( $_wp_menu_nopriv[$pagetest] ) )
    16901693                        return false;
    1691                 if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) )
     1694                if ( isset( $_wp_submenu_nopriv[$pagetest][$pagetest] ) )
    16921695                        return false;
    1693                 if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
     1696                if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagetest][$plugin_page] ) )
    16941697                        return false;
    16951698                if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
    16961699                        return false;
    16971700                foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {
    1698                         if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) )
     1701                        if ( isset( $_wp_submenu_nopriv[$key][$pagetest] ) )
    16991702                                return false;
    17001703                        if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) )
    17011704                        return false;
     
    17131716                                        return true;
    17141717                                else
    17151718                                        return false;
    1716                         } else if ( $submenu_array[2] == $pagenow ) {
     1719                        } else if ( $submenu_array[2] == $pagetest ) {
    17171720                                if ( current_user_can( $submenu_array[1] ))
    17181721                                        return true;
    17191722                                else