WordPress URL 路由查询字符串未传递



我有一个WordPress主题,Woocommerce和Custom Post Types。

产品网址看起来像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');

如果我调用 urlhttp://www.[domain].com/intel-core-i7-9700我会得到不带英特尔详细信息的英特尔产品页面,因为查询参数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"不存在。有什么建议吗?

多谢。

很抱歉,解决方案非常简单

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

最新更新