Перейти к содержимому

Функция PHP add_rewrite_var(): всё, что нужно знать

Как разработчик WordPress, вы можете столкнуться с необходимостью регистрации пользовательской переменной запроса для использования в правилах переписывания (rewrite rules). Функция add_rewrite_var() — это функция API WordPress, которая позволяет добавить новую переменную запроса в список распознаваемых переменных для rewrite rules. В этой статье мы подробно рассмотрим функцию add_rewrite_var() и способы её использования.

Что такое функция add_rewrite_var()?

Функция add_rewrite_var() — это функция WordPress, которая регистрирует пользовательскую переменную запроса. Это делает переменную доступной для использования в правилах переписывания WordPress и при разборе запросов (query parsing).

Как использовать функцию add_rewrite_var()

Использование функции add_rewrite_var() довольно просто. Она принимает один параметр: имя переменной запроса. Вот синтаксис:

Синтаксис

php
add_rewrite_var( string $name ): void

Поскольку WordPress загружает функции на ранних этапах жизненного цикла запроса, обычно эту функцию вызывают внутри колбэка, привязанного к действию init. Вот пример правильного использования:

Пример

php
function my_custom_query_var() {
    add_rewrite_var( 'my_custom_var' );
}
add_action( 'init', 'my_custom_query_var' );

В этом примере мы регистрируем новую переменную запроса с именем my_custom_var. После регистрации вы можете получить её значение в вашей теме или плагине с помощью get_query_var( 'my_custom_var' ).

Заключение

Функция add_rewrite_var() — это полезный инструмент WordPress для регистрации пользовательских переменных запроса, используемых в правилах переписывания. Понимая её синтаксис с одним параметром и правильные практики привязки к хукам, вы сможете легко расширять возможности разбора запросов в WordPress. Надеемся, эта статья оказалась полезной и помогла вам лучше понять функцию add_rewrite_var().

Практика

Что делает функция add_rewrite_var() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.