我有一个query_var
设置搜索结果页,其中query_var
是在WP_Query
循环,如:
~/results/?my_taxoqueryvar=123
我想实现一个重写规则,这样我就可以重写它,从而使其对SEO更加友好,比如:
~/results/my-taxo-slug/
(其中,“my taxo slug”是ID为123的分类对应的slug。
我还希望能够访问我的查询变量(即。$qv_exp_type = get_query_var(\'my_taxoqueryvar\');
到目前为止,这就是我所拥有的,但它似乎不起作用
// Add Query Var
function my_queryvar_params( $query_v ) {
$query_v[] = "my_taxoqueryvar";
return $query_v;
};
add_filter(\'query_vars\', \'my_queryvar_params\');
// Add Endpoint
function my_endpoint(){
add_rewrite_endpoint( \'my_taxoqueryvar\', EP_PAGES );
}
add_action( \'init\', \'my_endpoint\' );
function my__rewrite_rule() {
add_rewrite_rule(
\'results/([a-z]+)/?$\',
\'index.php?pagename=results&my_taxoqueryvar=$matches[1]\',
\'top\'
);
}
add_action(\'init\', \'my_rewrite_rule\' );
非常感谢!
SO网友:Tunji
您的重写规则和查询变量筛选器错误。下面是一个基于您的查询变量的示例my_taxoqueryvar
function add_query_vars_filter( $vars ){
$vars[] = "my_taxoqueryvar";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
add_action(\'init\', \'myplugin_rewrite_rule\' );
function myplugin_rewrite_rule() {
add_rewrite_rule(
\'results/([a-z]+)/?$\',
\'index.php?pagename=results&my_taxoqueryvar=$matches[1]\',
\'top\'
);
}