WordPress URL Routing Querystring не проходит через - PullRequest
0 голосов
/ 18 октября 2019

У меня есть тема WordPress, Woocommerce и пользовательские типы сообщений.

URL продукта выглядит как http://www.[domain].com/product/intel/?model_id=1234. Вместо этого мы хотим http://www.[domain].com/intel-core-i7-9700.

Итак, я попробовал:

function my_rewrite_rules()
{ 
  global $wp_rewrite;     
  add_rewrite_rule('^intel-core-i7-9700/?$','product/intel/?model_id=1234','top');

}
add_action('init', 'my_rewrite_rules');

function my_query_vars($vars)
{   
  $vars[] = 'model_id';
  return $vars;
}
add_filter('query_vars', 'my_query_vars');

Если я позвоню по URL-адресу http://www.[domain].com/intel-core-i7-9700, я получу страницу продукта Intel без сведений Intel, потому чтопараметр запроса model_id не передается.

Я пытался:

$model_id = (isset($wp_query->query_vars['model_id'])) ? $wp_query->query_vars['model_id'] : false;
$model_id = (isset(get_query_var('model_id'))) ? get_query_var('model_id') : false;

Я сбросил правила перезаписи, но 'model_id' не существует. Есть предложения?

Большое спасибо.

1 Ответ

0 голосов
/ 19 октября 2019

Извините, решение очень простое

function my_query_vars($vars)
{   
  $vars[] .= 'model_id';
  $vars[] .= 'product';
  return $vars;
}
add_filter('query_vars', 'my_query_vars');
...