首先我要说,我认为play
附加到permalink的末尾,您可以使用add_rewrite_endpoint
, 但为了回答人们提出的问题。。。
首先,您需要添加一个查询变量,稍后检查该变量以了解何时加载其他模板:
function wpd_query_var( $query_vars ){
$query_vars[] = \'is_play\';
return $query_vars;
}
add_filter(\'query_vars\', \'wpd_query_var\');
接下来,您将需要一个重写规则来处理传入的请求,并为单个帖子设置适当的查询,还需要设置上面的查询var标志以便稍后加载模板。
function wpd_post_rewrite(){
add_rewrite_rule(
\'play/([^/]+)/?$\',
\'index.php?name=$matches[1]&is_play=1\',
\'top\'
);
}
add_action( \'init\', \'wpd_post_rewrite\' );
最后,检查是否设置了查询变量的过滤器,并在这种情况下加载其他模板:
function wpd_play_template( $single_template ){
global $wp_query;
if ( isset( $wp_query->query_vars[\'is_play\'] ) ) {
$single_template = locate_template( \'play_template.php\', false );
}
return $single_template;
}
add_filter( \'single_template\', \'wpd_play_template\' );
记住
flush your rewrite rules 在更改它们之后,新规则就会被接受。