我一直在搞重写query_var
要生成一些列表,例如:
我的页面?my\\u var=1~/my page/?my\\u var=2?my\\u var=3在仔细阅读了StackExchange和interwebs之后,似乎压倒性的共识是add_rewrite_endpoint 就是要走的路。因此,我实现了以下内容:
function wpd_add_my_endpoint(){
add_rewrite_endpoint( \'my_var\', EP_PAGES );
}
add_action( \'init\', \'wpd_add_my_endpoint\' );
这将基于我前面提到的URI生成以下URI:
然而,我想去掉“端点基”(或slug,在这个问题/示例中,甚至不知道如何确切地称之为“my\\u var”),因此URI将是:
我已经尝试了很多不同的重写方法,但都没有任何效果,这是我迄今为止所做的,但没有奏效:
function setup_filter_rewrites(){
add_rewrite_rule(\'my-page/([^/]*)/?\', \'index.php?pagename=my-page&my_var=$matches[1]\', \'top\');
}
add_action( \'init\', \'setup_filter_rewrites\' );
Updated
我的全部代码现在是:
// Add Query Var
function add_query_vars_filter( $vars ){
$vars[] = "my_var";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
// Add Endpoint
function wpd_add_my_endpoint(){
add_rewrite_endpoint( \'my_var\', EP_PERMALINK | EP_PAGES );
}
add_action( \'init\', \'wpd_add_my_endpoint\' );
// Add Rewrite
function setup_filter_rewrites(){
add_rewrite_rule(\'^my-page\\/([0-9]+)\\/?\', \'index.php?pagename=my-page&my_var=$matches[1]\', \'top\');
}
add_action( \'init\', \'setup_filter_rewrites\' );
使用上述代码,~/my page/my\\u var/1/可以工作,但~/my page/1/返回404。(我冲洗过permalinks)
非常感谢!