Make WordPress Core

Ticket #56302: 56302.diff

File 56302.diff, 3.5 KB (added by costdev, 2 years ago)

Use WP_Http::make_absolute_url() with admin_url() to make admin menu links relative to admin_url(). WP_Http::make_absolute_url() documentation states: "If an Absolute URL is provided, no processing of that URL is done."

  • src/wp-admin/menu-header.php

    diff --git a/src/wp-admin/menu-header.php b/src/wp-admin/menu-header.php
    index ee90d23152..ec2ec338e7 100644
    a b get_admin_page_parent(); 
    6868function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
    6969        global $self, $parent_file, $submenu_file, $plugin_page, $typenow;
    7070
     71        $admin_url = admin_url();
    7172        $first = true;
    7273        // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes, 5 = hookname, 6 = icon_url.
    7374        foreach ( $menu as $key => $item ) {
    function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) { 
    166167                                        && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) )
    167168                        ) {
    168169                                $admin_is_parent = true;
    169                                 echo "<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>$title</div></a>";
     170                                echo "<a href='" . WP_Http::make_absolute_url( "admin.php?page={$submenu_items[0][2]}", $admin_url ) . "'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>$title</div></a>";
    170171                        } else {
    171                                 echo "\n\t<a href='{$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>$title</div></a>";
     172                                echo "\n\t<a href='" . WP_Http::make_absolute_url( $submenu_items[0][2], $admin_url ) . "'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>$title</div></a>";
    172173                        }
    173174                } elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) {
    174175                        $menu_hook = get_plugin_page_hook( $item[2], 'admin.php' );
    function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) { 
    185186                                        && ! file_exists( ABSPATH . "/wp-admin/$menu_file" ) )
    186187                        ) {
    187188                                $admin_is_parent = true;
    188                                 echo "\n\t<a href='admin.php?page={$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
     189                                echo "\n\t<a href='" . WP_Http::make_absolute_url( "admin.php?page={$item[2]}", $admin_url ) . "'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
    189190                        } else {
    190                                 echo "\n\t<a href='{$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
     191                                echo "\n\t<a href='" . WP_Http::make_absolute_url( $item[2], $admin_url ) . "'$class $aria_attributes>$arrow<div class='wp-menu-image$img_class'$img_style aria-hidden='true'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
    191192                        }
    192193                }
    193194
    function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) { 
    265266                                        }
    266267
    267268                                        $sub_item_url = esc_url( $sub_item_url );
    268                                         echo "<li$class><a href='$sub_item_url'$class$aria_attributes>$title</a></li>";
     269                                        echo "<li$class><a href='" . WP_Http::make_absolute_url( $sub_item_url, $admin_url ) . "'$class$aria_attributes>$title</a></li>";
    269270                                } else {
    270                                         echo "<li$class><a href='{$sub_item[2]}'$class$aria_attributes>$title</a></li>";
     271                                        echo "<li$class><a href='" . WP_Http::make_absolute_url( $sub_item[2], $admin_url ) . "'$class$aria_attributes>$title</a></li>";
    271272                                }
    272273                        }
    273274                        echo '</ul>';