在办公室,我们结合使用重写规则和添加自定义函数template_redirect
可以使用的重写规则如下(未测试):
add_rewrite_rule( \'property/([0-9]+)/?\', \'index.php?property=$matches[1]\', \'top\' );
你当然需要
flush the rewrite rules, 那一页有很好的例子。
Don\'t do this on every pageload!然后,您可以使用template_redirect
:
add_action( \'template_redirect\', \'prefix_route_property_pages\' );
function prefix_route_property_pages() {
$property = get_query_var( \'property\' );
if ( ! empty( $property ) ) {
// Do awesome stuff, preferably call a function: prefix_do_awesome_stuff()
// You need this to overwrite WordPress\'s 404
global $wp_query;
$wp_query->is_404 = false;
status_header( 200 );
}
}
您必须自己呈现一些html。如果要包含主题中的页面,可以使用
locate_template. 注意这一点,因为WordPress的标准变量设置不正确,一些主题可能会因此而崩溃。