【问题标题】:WordPress URL Routing Querystring isn't passed throughWordPress URL 路由查询字符串未通过
【发布时间】: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_varmodel_id 列入白名单

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


【解决方案1】:

很抱歉,解决方法很简单

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

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多