重写规则无法从重写中获取ID

时间:2019-07-16 作者:Vincent Decaux

我使用以下简单规则:

add_rewrite_rule(
    \'^product/([0-9]+)-([^/]+)?$\',
    \'index.php?pagename=product&id=$matches[1]&slug=$matches[2]\',
    \'top\'
);
它可以工作,它重定向到我创建的正确页面,但我无法获取id参数,我在我的页面模板中尝试了:

global $wp_query;

// undefined index
var_dump($wp_query->query_vars[\'id\']);
我希望我的URL如下所示:

http://example.com/product/324-example-of-slug
不知道有没有可能?

1 个回复
SO网友:Vincent Decaux

好的,您需要添加id 公共查询变量列表的参数:

add_filter(\'query_vars\', \'query_vars\');
function query_vars($public_query_vars)
{
    $public_query_vars[] = \'id\';
    return $public_query_vars;
}
感谢此插件的帮助:https://wordpress.org/plugins/monkeyman-rewrite-analyzer/#reviews

相关推荐