我有一个名为“listen”的页面,其中有一个自定义模板,它运行一个自定义的wp\\u查询,该查询使用URL中的“show”变量。以下示例有效。。。
example.com/listen/?show=thebigshow
我想要什么?我想摆脱?显示url的一部分,并按如下格式设置其格式。。。
example.com/listen/thebigshow
我尝试了以下重写规则,但没有成功。
function add_query_vars_filter( $vars ){
$vars[] = "show";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
function listen_rewrite_action() {
add_rewrite_tag(\'%show%\',\'([^/]*)\');
add_rewrite_rule(
\'^listen/([^/]+)$\',
\'/listen/?show=$matches[1]\',
\'top\'
);
}
add_action( \'init\', \'listen_rewrite_action\' );
更多信息重写规则(在插件中预览)
什么htaccess在生成后看起来像
谢谢,安迪。
SO网友:Andy Cheeseman
我手动删除了。htaccess文件并重新生成,这与下面的代码一起完成了重写。下面代码中的第二条重写规则可以使分页正常工作。
这个虽然htaccess文件似乎没有使用任何规则编写,但无论如何,重写现在已经开始工作了。
function listen_rewrite_action() {
add_rewrite_tag(\'%show%\',\'([^/]*)\');
add_rewrite_rule(
\'^listen/([^/]+)$\',
\'index.php?pagename=listen&show=$matches[1]\',
\'top\');
add_rewrite_rule(
\'^listen/([^/]+)/page/([^/]+)$\',
\'index.php?pagename=listen&show=$matches[1]&paged=$matches[2]\',
\'top\');
}
add_action( \'init\', \'listen_rewrite_action\' );