【发布时间】:2020-02-14 21:31:50
【问题描述】:
我有一个 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-Details 的 Intel-Product-Page,因为查询参数 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”不存在。有什么建议吗?
非常感谢。
【问题讨论】:
-
只是一个想法,但您很可能需要使用add_query_var 将
model_id列入白名单
标签: php wordpress woocommerce url-rewriting url-routing