这有点棘手,虽然可能,但我建议不要这样做。这不是WordPress的设计操作方式,因此根据此模板中的情况,您可能有很多小问题需要解决。相反,我建议研究提供接口的方法,以便在数据库中生成实际页面,并与相应的模板文件配合使用。
也就是说,这里有一个示例,说明如何根据请求的slug加载文件。在这里,我们钩住template_redirect
操作并首先检查请求是否导致404(数据库中没有与请求匹配的内容)。如果是这样,我们尝试找到一个具有匹配slug的模板,如果找到了,就加载它。请注意在加载模板之前发送的200头,否则WordPress将发送404请求。
function wpa_template_redirect(){
global $wp_query;
if( $wp_query->is_404 ){
if( $located = locate_template( $wp_query->query_vars[\'name\'] . \'.php\' ) ){
header( "HTTP/1.0 200 OK" );
load_template( $located );
exit;
}
}
}
add_action( \'template_redirect\', \'wpa_template_redirect\' );
现在,如果此模板文件包含依赖于查询对象的存在的任何模板标记(在任何情况下都会存在查询对象),您将得到错误。您将注意到的一个突出问题是,页面的标题将是“未找到页面”。