WordPress.org

Make WordPress Core

Ticket #14060: 14060.2.patch

File 14060.2.patch, 2.0 KB (added by SergeyBiryukov, 3 years ago)
  • wp-admin/includes/menu.php

     
    220220        unset( $menu[ $last_menu_key ] ); 
    221221unset( $last_menu_key ); 
    222222 
    223 if ( !user_can_access_admin_page() ) { 
     223if ( !admin_page_exists() ) { 
     224        do_action('admin_page_not_found'); 
     225        wp_die( __('The requested page does not exist.') ); 
     226} elseif ( !user_can_access_admin_page() ) { 
    224227        do_action('admin_page_access_denied'); 
    225228        wp_die( __('You do not have sufficient permissions to access this page.') ); 
    226229} 
  • wp-admin/includes/plugin.php

     
    15091509        return $page_type . '_page_' . $plugin_name; 
    15101510} 
    15111511 
     1512function admin_page_exists() { 
     1513        global $admin_page_parent; 
     1514        global $plugin_page; 
     1515        global $_registered_pages; 
     1516 
     1517        if ( !isset( $admin_page_parent ) ) 
     1518                $admin_page_parent = get_admin_page_parent(); 
     1519 
     1520        if ( isset( $plugin_page ) ) { 
     1521                $hookname = get_plugin_page_hookname($plugin_page, $admin_page_parent); 
     1522 
     1523                if ( !isset($_registered_pages[$hookname]) ) 
     1524                        return false; 
     1525        } 
     1526 
     1527        return true; 
     1528} 
     1529 
    15121530function user_can_access_admin_page() { 
    15131531        global $pagenow; 
    15141532        global $menu; 
    15151533        global $submenu; 
     1534        global $admin_page_parent; 
    15161535        global $_wp_menu_nopriv; 
    15171536        global $_wp_submenu_nopriv; 
    15181537        global $plugin_page; 
    15191538        global $_registered_pages; 
    15201539 
    1521         $parent = get_admin_page_parent(); 
     1540        $parent = isset( $admin_page_parent ) ? $admin_page_parent : get_admin_page_parent(); 
    15221541 
    15231542        if ( !isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$pagenow] ) ) 
    15241543                return false; 
     
    15271546                if ( isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) ) 
    15281547                        return false; 
    15291548 
    1530                 $hookname = get_plugin_page_hookname($plugin_page, $parent); 
    1531  
    1532                 if ( !isset($_registered_pages[$hookname]) ) 
     1549                if ( !admin_page_exists() ) 
    15331550                        return false; 
    15341551        } 
    15351552