Описание
Регистрирует новую переменную запроса (?pagetype=mypage, здесь pagetype — переменная запроса).
Обычно эта функция используется в связке с add_rewrite_rule(), которая создает новое правило перезаписи ссылок (для ЧПУ). Чаще всего используется в WordPress для постоянных страниц с отдельным шаблоном.
Если использовать add_rewrite_tag(), для регистрации новой переменной запроса, которая уже существует в WordPress, прежняя переменная будет перезаписана.
ВАЖНО: функцию нужно вызывать во время или до инициализации WordPress (init хук).
Функция ничего не возвращает.
Использование
add_rewrite_tag($tagname, $regex);
Параметры
- $tagname (строка) (обязательный)
- Тег который вы будете использовать в качестве переменной запроса. Тег нужно обрамить в %.
Например, если у вас тег pagetype, то указывать нужно %pagetype%.
По умолчанию: нет - $regex (строка) (обязательный)
- Часть регулярного выражения, которой должно подходить значение переменной запроса (тега указаного в первом параметре). Часть обрамляется в групповые скобки.
Например, если переменная запроса: ?pagetype=pages, тут нужно описать pages через регулярку, получится: ([^&]+)
По умолчанию: нет
Примеры
1. Этот пример зарегистрирует тег запроса pagetype:
add_action('init', 'rewrite_rule_my');
function rewrite_rule_my(){
add_rewrite_tag('%pagetype%', '([^&]+)');
}
Эта процедура обычно необходима, когда создается правило перезаписи функцией add_rewrite_rule(). Обычно такое правило создается для постоянных страниц с уникальным шаблоном.
Получение значений
Значение переменных запроса с перезаписанных УЛРов получается через $wp_query.
Например, у нас была ссылка sitemap?pagetype=pages мы указали правило перезаписи и ссылка превратилась в sitemap/pages, теперь чтобы правильно получить значение pages для использования в PHP и быть уверенным что оно относится именно к переменной запроса pagetype, в шаблоне используем:
global $wp_query; $wp_query->query_vars['pagetype'];
Имейте ввиду что на уже перезаписанных УРЛах (sitemap/pages) получить значение переменной запроса по $_GET невозможно.
add_rewrite_tag()
из файла: /wp-includes/rewrite.php WP 3.3.2function add_rewrite_tag($tagname, $regex) {
//validation
if ( strlen($tagname) < 3 || $tagname[0] != '%' || $tagname[strlen($tagname)-1] != '%' )
return;
$qv = trim($tagname, '%');
global $wp_rewrite, $wp;
$wp->add_query_var($qv);
$wp_rewrite->add_rewrite_tag($tagname, $regex, $qv . '=');
}Связанные Функции
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Мы все чаще ходим в интернет магазины за покупками, чем выходим реально и покупаем товар с полок. Пример этому интернет магазин бытовой техники Донецк, где количество клиентов растет из дня в день.
