$_GET пуст после определения правила перезаписи.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 $_GET пуст после определения правила перезаписи.

Сообщение Anonymous »

Привет, ниндзя WordPress!

Я новичок в разработке WordPress. Я определяю правило перезаписи (с тегом), подобное тому, что вы можете найти в примерах здесь и здесь.

Код: Выделить всё

$wp_rewrite->add_rewrite_tag('%filterx_location%', '([^&/]+)', 'filterx_location=');
$wp_rewrite->add_rule('property-location/(.+)$','index.php?post_type=property&filterx_location=$matches[1]', 'top');
Проблема в том, что когда запрос завершен (страница показана), параметр filterx_location не установлен. Фактически, var_dump($_GET) дает мне массив (0) { .

Кажется, у меня отключилось электричество или что-то в этом роде. вроде чего-то простого, чего мне здесь не хватает, просто не могу понять :-/

Любая помощь очень ценится!

ОБНОВЛЕНИЕ

Что еще более странно, так это то, что когда я создаю правила перезаписи с помощью:

Код: Выделить всё

$wp_rewrite->add_rewrite_tag('%filterx_location%', '([^/]+)', 'filterx_location=');
$permalink_prefix = 'property-location';
$permalink_structure = '%filterx_location%/';
$rewrite_rules = $wp_rewrite->generate_rewrite_rules($permalink_prefix.'/'.$permalink_structure, EP_ALL, true, true, true, true, true);
Я вижу кучу сгенерированных совпадений и перенаправлений URL-адресов, если распечатаю их. Один из них:

Код: Выделить всё

property-location/([^/]+)/page/?([0-9]{1,})/?$ => index.php?filterx_location=$matches[1]&paged=$matches[2]&post_type=property
Я добавляю все сгенерированные URL-адреса с помощью:

Код: Выделить всё

foreach($rewrite_rules as $regex => $redirect) {
if(strpos($redirect, 'attachment=') === false) {
//add the post_type to the rewrite rule
$redirect .= '&post_type=property';
}

//turn all of the $1, $2,... variables in the matching regex into $matches[] form
if(0 < preg_match_all('@\$([0-9])@', $redirect, $matches)) {
for($i = 0; $i < count($matches[0]); $i++) {
$redirect = str_replace($matches[0][$i], '$matches['.$matches[1][$i].']', $redirect);
}
}
//add the rewrite rule to wp_rewrite
$wp_rewrite->add_rule($regex, $redirect, 'top');
}
И если я перейду по URL-адресу /property-location/madrid/page/2/, то в query_vars правильно будет ["paged"]=> интервал (2). Но filterx_location полностью игнорируется!

Подробнее здесь: https://stackoverflow.com/questions/182 ... write-rule
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»