我有一个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'不存在。有什么建议吗?
非常感谢。
答案 0 :(得分:0)
对不起,解决方法很简单
function my_query_vars($vars)
{
$vars[] .= 'model_id';
$vars[] .= 'product';
return $vars;
}
add_filter('query_vars', 'my_query_vars');