如何让WordPress将/MyPage/Area/Value解析为/MyPage/?Area=Value?

时间:2017-01-17 作者:bobbyh

我已成功在函数中“注册”了一个名为“area”的查询键。php类似:

function myplugin_register_query_vars( $vars ) {
    $vars[] = \'area\';
    return $vars;
}
add_filter( \'query_vars\', \'myplugin_register_query_vars\' );
这允许我有一个包含键/值对的页面,如:http://example.com/mypage/?area=newyork

请注意,在本例中,“mypage”是现有Wordpress页面的slug。此外,我正在使用Wordpress主题来处理“area”键的每个不同值的略有不同的输出。。。

在任何情况下,我现在希望URL如下所示:

这些URL将被解析为:

1 个回复
最合适的回答,由SO网友:Ismail 整理而成

add_rewrite_rule 非常方便使用,请首先为此添加自定义规则:

add_action(\'init\', function(){
    return add_rewrite_rule(
        \'([^/]+)/area/([^/]+)/?$\',
        \'index.php?pagename=$matches[1]&area=$matches[2]\',
        \'top\'
    );
});
并且您已经注册了自定义查询变量,接下来是(因为您正在开发)转到admin > settings > permalinks 并保存设置以刷新重写规则。

现在来定制area, 打个电话就行了get_query_arg(\'area\') 当WP\\U查询就绪时,它将返回值。

相关推荐