您的重写规则与Pippin提供的规则之间的第一个重要区别是,他的所有重写规则都指向index.php
. 这是绝对必须的,您无法以任何其他方式使用它,所有请求都必须指向index.php
附加查询变量。
第二个需要注意的重要事项是重写必须查询某种类型的WordPress对象。每个请求都会运行一个主查询、一个页面、一篇文章、一个类别等。。
解决此问题的最简单方法是让管理员用户选择一个页面作为搜索页面,然后将重写指向该页面,并附加额外的查询变量:
function tn_rewrite_urls() {
add_rewrite_rule(
\'venue/([^/]+)/?\',
\'index.php?pagename=SELECTED_PAGE&venueName=$matches[1]\',
\'top\'
);
}
add_action( \'init\', \'tn_rewrite_urls\' );
function tn_query_vars( $query_vars ) {
$query_vars[] = \'venueName\';
return $query_vars;
}
add_filter( \'query_vars\', \'tn_query_vars\' );
在本例中,您可以交换
SELECTED_PAGE
无论所选的页面slug是什么。此外,不要忘记将查询变量添加到查询变量数组,并确保在添加新规则后刷新重写。