我在做一个函数。新主题系统的php文件。我需要知道如何通过URL使自定义模板可执行。所以如果有人去http://website.com/my-custom-template/
如何使加载的页面从模板中读取my-custom-template.php
在主题文件夹中?
Theme Custom Pages
您可以使用wordpress模板加载特定页面。只需创建一个具有任意名称的模板文件(在文件中放置模板定义,即声明模板的注释代码),并在添加页面时将其选择为模板。这样,页面的文件将自动加载,您也可以将该模板用于其他页面。在文件顶部添加以下代码
<?php
/**
* Template Name: My custom template
*
?>
这有点棘手,虽然可能,但我建议不要这样做。这不是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\' );
现在,如果此模板文件包含依赖于查询对象的存在的任何模板标记(在任何情况下都会存在查询对象),您将得到错误。您将注意到的一个突出问题是,页面的标题将是“未找到页面”。