WP_Rewrite::add_rule()publicWP 2.1.0

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.

Метод класса: WP_Rewrite{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

global $wp_rewrite;
$wp_rewrite->add_rule( $regex, $query, $after );
$regex(строка) (обязательный)
Regular expression to match request against.
$query(строка|массив) (обязательный)
The corresponding query vars for this rewrite rule.
$after(строка)
Priority of the new rule. Accepts 'top' or 'bottom'.
По умолчанию: 'bottom'

Список изменений

С версии 2.1.0 Введена.
С версии 4.4.0 Array support was added to the $query parameter.

Код WP_Rewrite::add_rule() WP 6.5.2

public function add_rule( $regex, $query, $after = 'bottom' ) {
	if ( is_array( $query ) ) {
		$external = false;
		$query    = add_query_arg( $query, 'index.php' );
	} else {
		$index = ! str_contains( $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 ) );
		}
	}
}