WordPress.org

Make WordPress Core

Ticket #17177: 17177.3.diff

File 17177.3.diff, 3.2 KB (added by ryan, 7 years ago)

Lose unnecessary isset() checks.

  • wp-includes/class-wp.php

     
    185185
    186186                        // Look for matches.
    187187                        $request_match = $request;
    188                         foreach ( (array) $rewrite as $match => $query) {
    189                                 // Don't try to match against AtomPub calls
    190                                 if ( $req_uri == 'wp-app.php' )
    191                                         break;
     188                        if ( empty( $req_uri ) ) {
     189                                if ( isset( $rewrite['$'] ) ) {
     190                                        $this->matched_rule = '$';
     191                                        $query = $rewrite['$'];
     192                                        $matches = array('');
     193                                }
     194                        } else if ( $req_uri != 'wp-app.php' ) {
     195                                foreach ( (array) $rewrite as $match => $query ) {
     196                                        // If the requesting file is the anchor of the match, prepend it to the path info.
     197                                        if ( ! empty($req_uri) && strpos($match, $req_uri) === 0 && $req_uri != $request )
     198                                                $request_match = $req_uri . '/' . $request;
    192199
    193                                 // If the requesting file is the anchor of the match, prepend it
    194                                 // to the path info.
    195                                 if ( (! empty($req_uri)) && (strpos($match, $req_uri) === 0) && ($req_uri != $request) )
    196                                         $request_match = $req_uri . '/' . $request;
     200                                        if ( preg_match("#^$match#", $request_match, $matches) ||
     201                                                preg_match("#^$match#", urldecode($request_match), $matches) ) {
     202                                                // Got a match.
     203                                                $this->matched_rule = $match;
     204                                                break;
     205                                        }
     206                                }
     207                        }
    197208
    198                                 if ( preg_match("#^$match#", $request_match, $matches) ||
    199                                         preg_match("#^$match#", urldecode($request_match), $matches) ) {
    200                                         // Got a match.
    201                                         $this->matched_rule = $match;
     209                        if ( isset( $this->matched_rule ) ) {
     210                                // Trim the query of everything up to the '?'.
     211                                $query = preg_replace("!^.+\?!", '', $query);
    202212
    203                                         // Trim the query of everything up to the '?'.
    204                                         $query = preg_replace("!^.+\?!", '', $query);
     213                                // Substitute the substring matches into the query.
     214                                $query = addslashes(WP_MatchesMapRegex::apply($query, $matches));
    205215
    206                                         // Substitute the substring matches into the query.
    207                                         $query = addslashes(WP_MatchesMapRegex::apply($query, $matches));
     216                                $this->matched_query = $query;
    208217
    209                                         $this->matched_query = $query;
     218                                // Parse the query.
     219                                parse_str($query, $perma_query_vars);
    210220
    211                                         // Parse the query.
    212                                         parse_str($query, $perma_query_vars);
    213 
    214                                         // If we're processing a 404 request, clear the error var
    215                                         // since we found something.
    216                                         if ( isset($_GET['error']) )
    217                                                 unset($_GET['error']);
    218 
    219                                         if ( isset($error) )
    220                                                 unset($error);
    221 
    222                                         break;
    223                                 }
     221                                // If we're processing a 404 request, clear the error var
     222                                // since we found something.
     223                                unset( $_GET['error'] );
     224                                unset( $error );
    224225                        }
    225226
    226227                        // If req_uri is empty or if it is a request for ourself, unset error.
    227228                        if ( empty($request) || $req_uri == $self || strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false ) {
    228                                 if ( isset($_GET['error']) )
    229                                         unset($_GET['error']);
     229                                unset( $_GET['error'] );
     230                                unset( $error );
    230231
    231                                 if ( isset($error) )
    232                                         unset($error);
    233 
    234232                                if ( isset($perma_query_vars) && strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false )
    235                                         unset($perma_query_vars);
     233                                        unset( $perma_query_vars );
    236234
    237235                                $this->did_permalink = false;
    238236                        }