add_rewrite_endpoint()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
add_rewrite_endpoint( string $name, int $places, string|bool $query_var = true )
Описание
Добавление конечной точки создаёт дополнительные правила перезаписи для каждого из подходящих мест, указанных в переданной битовой маске. Например:
add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );добавит новое правило перезаписи, оканчивающееся на “json(/(.*))?/?$”, для каждой permastruct, описывающей постоянную ссылку (запись) или страницу. Оно переписывается в “json=$match”, где $match — это часть URL, совпавшая с регулярным выражением конечной точки (например, “foo” в “[permalink]/json/foo/”).
Также будет создана новая переменная запроса с тем же именем, что и конечная точка.
При указании $places используйте константы EP_* (или их комбинацию с помощью побитового оператора ИЛИ), так как их значения не гарантированно остаются неизменными (особенно EP_ALL).
Обязательно сбросьте правила перезаписи — см. flush_rewrite_rules() — при активации и деактивации вашего плагина.
Оригинал (английский)
Adding an endpoint creates extra rewrite rules for each of the matching places specified by the provided bitmask. For example:
add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );
will add a new rewrite rule ending with “json(/(.*))?/?$” for every permastruct that describes a permalink (post) or page. This is rewritten to “json=$match” where $match is the part of the URL matched by the endpoint regex (e.g. “foo” in “[permalink]/json/foo/”).
A new query var with the same name as the endpoint will also be created.
When specifying $places ensure that you are using the EP_* constants (or a combination of them using the bitwise OR operator) as their values are not guaranteed to remain static (especially EP_ALL).
Be sure to flush the rewrite rules – see flush_rewrite_rules() – when your plugin gets activated and deactivated.
Параметры
$name
string
обязательный
$places
int
обязательный
$query_var
string|bool
необязательный
= true
Исходный код
wp-includes/rewrite.php:335
function add_rewrite_endpoint( $name, $places, $query_var = true ) {
global $wp_rewrite;
$wp_rewrite->add_endpoint( $name, $places, $query_var );
}
История изменений
| Версия | Описание |
|---|---|
| 4.3.0 | Added support for skipping query var registration by passing false to $query_var. |
| 2.1.0 | Introduced. |

