WordPress.org

Make WordPress Core

Changeset 31106


Ignore:
Timestamp:
01/08/2015 10:51:30 PM (6 years ago)
Author:
wonderboymusic
Message:

After [31105], don't ditch the isset() calls for BC. Declare $page_hook as null so it is initialized for all execution paths but will still fail isset() checks.

Fixes #30958.

Location:
trunk/src
Files:
4 edited

Legend:

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

    r31105 r31106  
    9696global $pagenow, $hook_suffix, $plugin_page, $typenow, $taxnow;
    9797
    98 $page_hook = '';
    99 $hook_suffix = '';
    100 $plugin_page = '';
    101 $typenow = '';
    102 $taxnow = '';
     98$page_hook = null;
    10399
    104100$editing = false;
    105101
    106 if ( isset( $_GET['page'] ) ) {
     102if ( isset($_GET['page']) ) {
    107103    $plugin_page = wp_unslash( $_GET['page'] );
    108     $plugin_page = plugin_basename( $plugin_page );
    109 }
    110 
    111 if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) {
     104    $plugin_page = plugin_basename($plugin_page);
     105}
     106
     107if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) )
    112108    $typenow = $_REQUEST['post_type'];
    113 }
    114 
    115 if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) ) {
     109else
     110    $typenow = '';
     111
     112if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) )
    116113    $taxnow = $_REQUEST['taxonomy'];
    117 }
     114else
     115    $taxnow = '';
    118116
    119117if ( WP_NETWORK_ADMIN )
     
    154152do_action( 'admin_init' );
    155153
    156 if ( $plugin_page ) {
    157     if ( $typenow ) {
     154if ( isset($plugin_page) ) {
     155    if ( !empty($typenow) )
    158156        $the_parent = $pagenow . '?post_type=' . $typenow;
    159     } else {
     157    else
    160158        $the_parent = $pagenow;
    161     }
    162159    if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
    163160        $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
     
    177174}
    178175
    179 if ( $page_hook ) {
     176$hook_suffix = '';
     177if ( isset( $page_hook ) ) {
    180178    $hook_suffix = $page_hook;
    181 } elseif ( $plugin_page ) {
     179} elseif ( isset( $plugin_page ) ) {
    182180    $hook_suffix = $plugin_page;
    183 } elseif ( $pagenow ) {
     181} elseif ( isset( $pagenow ) ) {
    184182    $hook_suffix = $pagenow;
    185183}
     
    188186
    189187// Handle plugin admin pages.
    190 if ( $plugin_page ) {
     188if ( isset($plugin_page) ) {
    191189    if ( $page_hook ) {
    192190        /**
  • trunk/src/wp-admin/includes/plugin.php

    r31105 r31106  
    15091509    }
    15101510
    1511     if ( $pagenow == 'admin.php' && $plugin_page ) {
     1511    if ( $pagenow == 'admin.php' && isset( $plugin_page ) ) {
    15121512        foreach ( (array)$menu as $parent_menu ) {
    15131513            if ( $parent_menu[2] == $plugin_page ) {
     
    15261526    }
    15271527
    1528     if ( $plugin_page && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) {
     1528    if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) {
    15291529        $parent_file = $pagenow;
    15301530        if ( isset( $_wp_real_parent_file[$parent_file] ) )
     
    15371537            if ( isset( $_wp_real_parent_file[$parent] ) )
    15381538                $parent = $_wp_real_parent_file[$parent];
    1539             if ( $typenow && ($submenu_array[2] == "$pagenow?post_type=$typenow") ) {
     1539            if ( !empty($typenow) && ($submenu_array[2] == "$pagenow?post_type=$typenow") ) {
    15401540                $parent_file = $parent;
    15411541                return $parent;
    1542             } elseif ( $submenu_array[2] == $pagenow && ! $typenow && ( empty($parent_file) || false === strpos($parent_file, '?') ) ) {
     1542            } elseif ( $submenu_array[2] == $pagenow && empty($typenow) && ( empty($parent_file) || false === strpos($parent_file, '?') ) ) {
    15431543                $parent_file = $parent;
    15441544                return $parent;
    1545             } elseif ( $plugin_page && ($plugin_page == $submenu_array[2] ) ) {
     1545            } elseif ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) {
    15461546                $parent_file = $parent;
    15471547                return $parent;
     
    15761576                    $title = $menu_array[3];
    15771577                    return $menu_array[3];
    1578                 } elseif ( $plugin_page && ($plugin_page == $menu_array[2] ) && ($hook == $menu_array[3] ) ) {
     1578                } elseif ( isset( $plugin_page ) && ($plugin_page == $menu_array[2] ) && ($hook == $menu_array[3] ) ) {
    15791579                    $title = $menu_array[3];
    15801580                    return $menu_array[3];
     
    15881588        foreach ( array_keys( $submenu ) as $parent ) {
    15891589            foreach ( $submenu[$parent] as $submenu_array ) {
    1590                 if ( $plugin_page &&
     1590                if ( isset( $plugin_page ) &&
    15911591                    ( $plugin_page == $submenu_array[2] ) &&
    15921592                    (
     
    15951595                        ( $plugin_page == $hook ) ||
    15961596                        ( $pagenow == 'admin.php' && $parent1 != $submenu_array[2] ) ||
    1597                         ( $typenow && $parent == $pagenow . '?post_type=' . $typenow)
     1597                        ( !empty($typenow) && $parent == $pagenow . '?post_type=' . $typenow)
    15981598                    )
    15991599                    ) {
     
    16161616        if ( empty ( $title ) ) {
    16171617            foreach ( $menu as $menu_array ) {
    1618                 if ( $plugin_page &&
     1618                if ( isset( $plugin_page ) &&
    16191619                    ( $plugin_page == $menu_array[2] ) &&
    16201620                    ( $pagenow == 'admin.php' ) &&
     
    16711671    $parent = get_admin_page_parent();
    16721672
    1673     if ( ! $plugin_page && isset( $_wp_submenu_nopriv[$parent][$pagenow] ) )
     1673    if ( !isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$pagenow] ) )
    16741674        return false;
    16751675
    1676     if ( $plugin_page ) {
     1676    if ( isset( $plugin_page ) ) {
    16771677        if ( isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) )
    16781678            return false;
     
    16891689        if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) )
    16901690            return false;
    1691         if ( $plugin_page && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
     1691        if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
    16921692            return false;
    1693         if ( $plugin_page && isset( $_wp_menu_nopriv[$plugin_page] ) )
     1693        if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
    16941694            return false;
    16951695        foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {
    16961696            if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) )
    16971697                return false;
    1698             if ( $plugin_page && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) )
     1698            if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) )
    16991699            return false;
    17001700        }
     
    17021702    }
    17031703
    1704     if ( $plugin_page && ( $plugin_page == $parent ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
     1704    if ( isset( $plugin_page ) && ( $plugin_page == $parent ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
    17051705        return false;
    17061706
    17071707    if ( isset( $submenu[$parent] ) ) {
    17081708        foreach ( $submenu[$parent] as $submenu_array ) {
    1709             if ( $plugin_page && ( $submenu_array[2] == $plugin_page ) ) {
     1709            if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) {
    17101710                if ( current_user_can( $submenu_array[1] ))
    17111711                    return true;
  • trunk/src/wp-admin/menu-header.php

    r31105 r31106  
    6767        }
    6868
    69         if ( ( $parent_file && $item[2] == $parent_file ) || ( ! $typenow && $self == $item[2] ) ) {
     69        if ( ( $parent_file && $item[2] == $parent_file ) || ( empty($typenow) && $self == $item[2] ) ) {
    7070            $class[] = ! empty( $submenu_items ) ? 'wp-has-current-submenu wp-menu-open' : 'current';
    7171        } else {
     
    168168
    169169                // Handle current for post_type=post|page|foo pages, which won't match $self.
    170                 $self_type = $typenow ? $self . '?post_type=' . $typenow : 'nothing';
     170                $self_type = ! empty( $typenow ) ? $self . '?post_type=' . $typenow : 'nothing';
    171171
    172172                if ( isset( $submenu_file ) ) {
     
    176176                // This allows plugin pages with the same hook to exist under different parents.
    177177                } elseif (
    178                     ( ! $plugin_page && $self == $sub_item[2] ) ||
    179                     ( $plugin_page && $plugin_page == $sub_item[2] && ( $item[2] == $self_type || $item[2] == $self || file_exists($menu_file) === false ) )
     178                    ( ! isset( $plugin_page ) && $self == $sub_item[2] ) ||
     179                    ( isset( $plugin_page ) && $plugin_page == $sub_item[2] && ( $item[2] == $self_type || $item[2] == $self || file_exists($menu_file) === false ) )
    180180                ) {
    181181                    $class[] = 'current';
  • trunk/src/wp-includes/deprecated.php

    r31105 r31106  
    25772577    global $plugin_page;
    25782578
    2579     if ( $plugin_page )
     2579    if ( isset($plugin_page) )
    25802580        return true;
    25812581
Note: See TracChangeset for help on using the changeset viewer.