WordPress URL路由查询字符串未通过

时间:2019-10-17 22:23:28

标签: php wordpress woocommerce url-rewriting url-routing

我有一个WordPress主题,Woocommerce和自定义帖子类型。

产品网址看起来像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 :(得分:0)

对不起,解决方法很简单

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