WordPress.org

Make WordPress Core

Ticket #19871: 19871.2.diff

File 19871.2.diff, 3.2 KB (added by duck_, 3 years ago)

With matching parameter names

  • wp-includes/rewrite.php

     
    2222} 
    2323 
    2424/** 
    25  * Add a new tag (like %postname%). 
     25 * Add a new rewrite tag (like %postname%). 
    2626 * 
    27  * Warning: you must call this on init or earlier, otherwise the query var 
    28  * addition stuff won't work. 
     27 * The $query parameter is optional. If it is omitted you must ensure that 
     28 * you call this on, or before, the 'init' hook. This is because $query defaults 
     29 * to "$tag=", and for this to work a new query var has to be added. 
    2930 * 
     31 * @see WP_Rewrite::add_rewrite_tag() 
    3032 * @since 2.1.0 
    3133 * 
    32  * @param string $tagname 
    33  * @param string $regex 
     34 * @param string $tag Name of the new rewrite tag. 
     35 * @param string $regex Regular expression to substitute the tag for in rewrite rules. 
     36 * @param string $query String to append to the rewritten query. Must end in '='. Optional. 
    3437 */ 
    35 function add_rewrite_tag($tagname, $regex) { 
    36         //validation 
    37         if ( strlen($tagname) < 3 || $tagname[0] != '%' || $tagname[strlen($tagname)-1] != '%' ) 
     38function add_rewrite_tag( $tag, $regex, $query = '' ) { 
     39        // validate the tag's name 
     40        if ( strlen( $tag ) < 3 || $tag[0] != '%' || $tag[ strlen($tag) - 1 ] != '%' ) 
    3841                return; 
    3942 
    40         $qv = trim($tagname, '%'); 
     43        global $wp_rewrite, $wp; 
    4144 
    42         global $wp_rewrite, $wp; 
    43         $wp->add_query_var($qv); 
    44         $wp_rewrite->add_rewrite_tag($tagname, $regex, $qv . '='); 
     45        if ( empty( $query ) ) { 
     46                $qv = trim( $tag, '%' ); 
     47                $wp->add_query_var( $qv ); 
     48                $query = $qv . '='; 
     49        } 
     50 
     51        $wp_rewrite->add_rewrite_tag( $tag, $regex, $query ); 
    4552} 
    4653 
    4754/** 
     
    11371141        } 
    11381142 
    11391143        /** 
    1140          * Append or update tag, pattern, and query for replacement. 
     1144         * Add or update existing rewrite tags (e.g. %postname%). 
    11411145         * 
    11421146         * If the tag already exists, replace the existing pattern and query for 
    11431147         * that tag, otherwise add the new tag, pattern, and query to the end of the 
    11441148         * arrays. 
    11451149         * 
    1146          * @internal What is the purpose of this function again? Need to finish long 
    1147          *           description. 
    1148          * 
    11491150         * @since 1.5.0 
    11501151         * @access public 
    11511152         * 
    1152          * @param string $tag Append tag to rewritecode property array. 
    1153          * @param string $pattern Append pattern to rewritereplace property array. 
    1154          * @param string $query Append query to queryreplace property array. 
     1153         * @param string $tag Name of the rewrite tag to add or update. 
     1154         * @param string $regex Regular expression to substitute the tag for in rewrite rules. 
     1155         * @param string $query String to append to the rewritten query. Must end in '='. 
    11551156         */ 
    1156         function add_rewrite_tag($tag, $pattern, $query) { 
    1157                 $position = array_search($tag, $this->rewritecode); 
     1157        function add_rewrite_tag( $tag, $regex, $query ) { 
     1158                $position = array_search( $tag, $this->rewritecode ); 
    11581159                if ( false !== $position && null !== $position ) { 
    1159                         $this->rewritereplace[$position] = $pattern; 
    1160                         $this->queryreplace[$position] = $query; 
     1160                        $this->rewritereplace[ $position ] = $regex; 
     1161                        $this->queryreplace[ $position ] = $query; 
    11611162                } else { 
    11621163                        $this->rewritecode[] = $tag; 
    1163                         $this->rewritereplace[] = $pattern; 
     1164                        $this->rewritereplace[] = $regex; 
    11641165                        $this->queryreplace[] = $query; 
    11651166                } 
    11661167        }