WordPress.org

Make WordPress Core

Changeset 23656


Ignore:
Timestamp:
03/09/13 02:48:49 (14 months ago)
Author:
SergeyBiryukov
Message:

Prevent plugins with certain filenames from breaking links in the admin menu. props lightningspirit. fixes #22079.

File:
1 edited

Legend:

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

    r22634 r23656  
    8888            if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) 
    8989                $menu_file = substr( $menu_file, 0, $pos ); 
    90             if ( ! empty( $menu_hook ) || ( ('index.php' != $submenu_items[0][2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) { 
     90            if ( ! empty( $menu_hook ) || ( ( 'index.php' != $submenu_items[0][2] ) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) ) { 
    9191                $admin_is_parent = true; 
    9292                echo "<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>$title</div></a>"; 
     
    9999            if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) 
    100100                $menu_file = substr( $menu_file, 0, $pos ); 
    101             if ( ! empty( $menu_hook ) || ( ('index.php' != $item[2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) { 
     101            if ( ! empty( $menu_hook ) || ( ( 'index.php' != $item[2] ) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) ) { 
    102102                $admin_is_parent = true; 
    103103                echo "\n\t<a href='admin.php?page={$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>"; 
     
    151151                $title = wptexturize($sub_item[0]); 
    152152 
    153                 if ( ! empty( $menu_hook ) || ( ('index.php' != $sub_item[2]) && file_exists( WP_PLUGIN_DIR . "/$sub_file" ) ) ) { 
     153                if ( ! empty( $menu_hook ) || ( ( 'index.php' != $sub_item[2] ) && file_exists( WP_PLUGIN_DIR . "/$sub_file" ) && ! file_exists( ABSPATH . "/wp-admin/$sub_file" ) ) ) { 
    154154                    // If admin.php is the current page or if the parent exists as a file in the plugins or admin dir 
    155                     if ( (!$admin_is_parent && file_exists(WP_PLUGIN_DIR . "/$menu_file") && !is_dir(WP_PLUGIN_DIR . "/{$item[2]}")) || file_exists($menu_file) ) 
    156                         $sub_item_url = add_query_arg( array('page' => $sub_item[2]), $item[2] ); 
     155                    if ( ( ! $admin_is_parent && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) && ! is_dir( WP_PLUGIN_DIR . "/{$item[2]}" ) ) || file_exists( $menu_file ) ) 
     156                        $sub_item_url = add_query_arg( array( 'page' => $sub_item[2] ), $item[2] ); 
    157157                    else 
    158                         $sub_item_url = add_query_arg( array('page' => $sub_item[2]), 'admin.php' ); 
     158                        $sub_item_url = add_query_arg( array( 'page' => $sub_item[2] ), 'admin.php' ); 
    159159 
    160160                    $sub_item_url = esc_url( $sub_item_url ); 
Note: See TracChangeset for help on using the changeset viewer.