Improve the parameter names and inline documentation for add_rewrite_rule(), WP_Rewrite::add_rule(), and WP_Rewrite::add_external_rule().

Fixes #34197

Built from https://develop.svn.wordpress.org/trunk@34946


git-svn-id: http://core.svn.wordpress.org/trunk@34911 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
John Blackbourn 2015-10-08 17:28:25 +00:00
parent 77ae65acdb
commit db4f4c5538
3 changed files with 34 additions and 33 deletions

View File

@ -1541,56 +1541,54 @@ class WP_Rewrite {
} }
/** /**
* Adds a straight rewrite rule. * Adds a rewrite rule that transforms a URL structure to a set of query vars.
* *
* Any value in the $after parameter that isn't 'bottom' will be placed at * Any value in the $after parameter that isn't 'bottom' will result in the rule
* the top of the rules. * being placed at the top of the rewrite rules.
* *
* @since 2.1.0 * @since 2.1.0
* @since 4.4.0 Array support was added to the `$redirect` parameter. * @since 4.4.0 Array support was added to the `$query` parameter.
* @access public * @access public
* *
* @param string $regex Regular expression to match against request. * @param string $regex Regular expression to match request against.
* @param string|array $redirect URL regex redirects to when regex matches request, or array * @param string|array $query The corresponding query vars for this rewrite rule.
* of query vars and values. * @param string $after Optional. Priority of the new rule. Accepts 'top'
* @param string $after Optional, default is bottom. Location to place rule. * or 'bottom'. Default 'bottom'.
*/ */
public function add_rule( $regex, $redirect, $after = 'bottom' ) { public function add_rule( $regex, $query, $after = 'bottom' ) {
if ( is_array( $redirect ) ) { if ( is_array( $query ) ) {
$external = false; $external = false;
$redirect = add_query_arg( $redirect, 'index.php' ); $query = add_query_arg( $query, 'index.php' );
} else { } else {
$index = false === strpos( $redirect, '?' ) ? strlen( $redirect ) : strpos( $redirect, '?' ); $index = false === strpos( $query, '?' ) ? strlen( $query ) : strpos( $query, '?' );
$front = substr( $redirect, 0, $index ); $front = substr( $query, 0, $index );
$external = $front != $this->index; $external = $front != $this->index;
} }
// "external" = it doesn't redirect to index.php // "external" = it doesn't correspond to index.php
if ( $external ) { if ( $external ) {
$this->add_external_rule( $regex, $redirect ); $this->add_external_rule( $regex, $query );
} else { } else {
if ( 'bottom' == $after ) { if ( 'bottom' == $after ) {
$this->extra_rules = array_merge( $this->extra_rules, array( $regex => $redirect ) ); $this->extra_rules = array_merge( $this->extra_rules, array( $regex => $query ) );
} else { } else {
$this->extra_rules_top = array_merge( $this->extra_rules_top, array( $regex => $redirect ) ); $this->extra_rules_top = array_merge( $this->extra_rules_top, array( $regex => $query ) );
} }
} }
} }
/** /**
* Adds a rule that doesn't redirect to index.php. * Adds a rewrite rule that doesn't correspond to index.php.
*
* Can redirect to any place.
* *
* @since 2.1.0 * @since 2.1.0
* @access public * @access public
* *
* @param string $regex Regular expression to match against request. * @param string $regex Regular expression to match request against.
* @param string $redirect URL regex redirects to when regex matches request. * @param string $query The corresponding query vars for this rewrite rule.
*/ */
public function add_external_rule($regex, $redirect) { public function add_external_rule( $regex, $query ) {
$this->non_wp_rules[$regex] = $redirect; $this->non_wp_rules[ $regex ] = $query;
} }
/** /**

View File

@ -7,22 +7,25 @@
*/ */
/** /**
* Adds a straight rewrite rule. * Adds a rewrite rule that transforms a URL structure to a set of query vars.
*
* Any value in the $after parameter that isn't 'bottom' will result in the rule
* being placed at the top of the rewrite rules.
* *
* @since 2.1.0 * @since 2.1.0
* @since 4.4.0 Array support was added to the `$redirect` parameter. * @since 4.4.0 Array support was added to the `$query` parameter.
* *
* @global WP_Rewrite $wp_rewrite WordPress Rewrite Component. * @global WP_Rewrite $wp_rewrite WordPress Rewrite Component.
* *
* @param string $regex Regular Expression to match request against. * @param string $regex Regular expression to match request against.
* @param string|array $redirect Page to redirect to, or array of query vars and values. * @param string|array $query The corresponding query vars for this rewrite rule.
* @param string $after Optional. Location where to insert the new rule. Accepts 'top', * @param string $after Optional. Priority of the new rule. Accepts 'top'
* or 'bottom'. Default 'bottom'. * or 'bottom'. Default 'bottom'.
*/ */
function add_rewrite_rule( $regex, $redirect, $after = 'bottom' ) { function add_rewrite_rule( $regex, $query, $after = 'bottom' ) {
global $wp_rewrite; global $wp_rewrite;
$wp_rewrite->add_rule( $regex, $redirect, $after ); $wp_rewrite->add_rule( $regex, $query, $after );
} }
/** /**

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.4-alpha-34945'; $wp_version = '4.4-alpha-34946';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.