Make WordPress Core

Ticket #43401: 43401.1.patch

File 43401.1.patch, 1.2 KB (added by soulseekah, 7 years ago)

Initial patch

  • src/wp-includes/nav-menu-template.php

    diff --git src/wp-includes/nav-menu-template.php src/wp-includes/nav-menu-template.php
    index 25b320e..1573dd1 100644
    function _wp_menu_item_classes_by_context( &$menu_items ) { 
    446446                        $item_url           = set_url_scheme( untrailingslashit( $raw_item_url ) );
    447447                        $_indexless_current = untrailingslashit( preg_replace( '/' . preg_quote( $wp_rewrite->index, '/' ) . '$/', '', $current_url ) );
    448448
    449                         if ( $raw_item_url && in_array( $item_url, array( $current_url, $_indexless_current, $_root_relative_current ) ) ) {
     449                        // decoded URI support
     450                        $_decoded_current_url = urldecode( $current_url );
     451                        $_decoded_indexless_current = urldecode( $_indexless_current );
     452                        $_decoded_root_relative_current = urldecode( $_root_relative_current );
     453
     454                        // possible matches
     455                        $matches = array(
     456                                $current_url, $_indexless_current, $_root_relative_current,
     457                                $_decoded_current_url, $_decoded_indexless_current, $_decoded_root_relative_current,
     458                        );
     459
     460                        if ( $raw_item_url && in_array( $item_url, $matches ) ) {
    450461                                $classes[]                   = 'current-menu-item';
    451462                                $menu_items[ $key ]->current = true;
    452463                                $_anc_id                     = (int) $menu_item->db_id;