Theme Custom Pages

时间:2013-07-26 作者:Cory Nickerson

我在做一个函数。新主题系统的php文件。我需要知道如何通过URL使自定义模板可执行。所以如果有人去http://website.com/my-custom-template/ 如何使加载的页面从模板中读取my-custom-template.php 在主题文件夹中?

2 个回复
SO网友:Vikram

您可以使用wordpress模板加载特定页面。只需创建一个具有任意名称的模板文件(在文件中放置模板定义,即声明模板的注释代码),并在添加页面时将其选择为模板。这样,页面的文件将自动加载,您也可以将该模板用于其他页面。在文件顶部添加以下代码

<?php
/**
 * Template Name: My custom template
 *
?>

SO网友:Milo

这有点棘手,虽然可能,但我建议不要这样做。这不是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\' );
现在,如果此模板文件包含依赖于查询对象的存在的任何模板标记(在任何情况下都会存在查询对象),您将得到错误。您将注意到的一个突出问题是,页面的标题将是“未找到页面”。

结束

相关推荐

How do WP child-themes work?

好的,我已经设置了主主题,现在我创建了一个名为interio\\u child的子主题。从这些instructions 我知道您只需要添加样式。css文件,用于链接到主主题。此外,您还可以添加其他文件来覆盖主主题中的代码。现在我已经激活了我的孩子主题。它只显示“我的子主题”文件夹中的代码,而不显示CSS。这怎么可能?我看过很多教程和wordpress支持主题,但我无法将这个儿童主题链接到我的主主题。这些是我的孩子主题风格的内容。css:/* Theme Name: Interio Child&#x