WP_Rewrite::add_rule() WordPress Method

The WP_Rewrite::add_rule() method is used to add a new rewrite rule to the WordPress rewrite system. This is useful for customizing your permalinks or doing other advanced URL manipulations.

WP_Rewrite::add_rule( string $regex, string|array $query, string $after = 'bottom' ) #

Adds a rewrite rule that transforms a URL structure to a set of query vars.


Description

Any value in the $after parameter that isn’t ‘bottom’ will result in the rule being placed at the top of the rewrite rules.


Top ↑

Parameters

$regex

(string)(Required)Regular expression to match request against.

$query

(string|array)(Required)The corresponding query vars for this rewrite rule.

$after

(string)(Optional) Priority of the new rule. Accepts 'top' or 'bottom'.

Default value: 'bottom'


Top ↑

Source

File: wp-includes/class-wp-rewrite.php

	public function add_rule( $regex, $query, $after = 'bottom' ) {
		if ( is_array( $query ) ) {
			$external = false;
			$query    = add_query_arg( $query, 'index.php' );
		} else {
			$index = false === strpos( $query, '?' ) ? strlen( $query ) : strpos( $query, '?' );
			$front = substr( $query, 0, $index );

			$external = $front != $this->index;
		}

		// "external" = it doesn't correspond to index.php.
		if ( $external ) {
			$this->add_external_rule( $regex, $query );
		} else {
			if ( 'bottom' === $after ) {
				$this->extra_rules = array_merge( $this->extra_rules, array( $regex => $query ) );
			} else {
				$this->extra_rules_top = array_merge( $this->extra_rules_top, array( $regex => $query ) );
			}
		}
	}


Top ↑

Changelog

Changelog
VersionDescription
4.4.0Array support was added to the $query parameter.
2.1.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.