主题模板页面的多个子目录

时间:2012-08-19 作者:voodooGQ

我很抱歉,如果这个问题已经得到了回答,我有一种感觉,我只是没有在搜索中使用正确的术语。

我正在为我的雇主建立一个基本主题。我们想对这个新主题做的一件事是,可以选择从标准模板切换到经过Zurbified的模板。我更愿意通过设置管理面板复选框来处理此问题。

在主题本身中,我们希望有两个单独的文件夹,其中包含实际的主题模板文件(例如:theme_folder/normal/page.php || theme_folder/zurb/page.php).

我该如何正确处理这个问题?是否有挂钩/过滤器允许您指定在特定情况下使用哪个子文件夹?据我所知,子目录可能包含模板页面文件,
http://nacin.com/2012/03/29/page-templates-in-subdirectories-new-in-wordpress-3-4/
,但我找不到需要告诉Wordpress使用特定Sub的电话。

2 个回复
最合适的回答,由SO网友:amit 整理而成

当我想更改模板的特定部分(如页眉或页脚)时,我会使用如下条件-

if(is_404()) {
    get_header(`error`);    //loads header-error.php
} else {
    get_header();           //loads header.php
}
在你的例子中,你想加载一个完全不同的模板,现在我能想象的唯一的动作挂钩是-template_redirect, 它可以告诉wordpress根据条件加载不同的模板。

Example -

function wpse62337_zurbified() {
    if ( CONDITION ) {
        include (TEMPLATEPATH . \'/zurb/page.php\');
        exit;
    }
}
 
add_action(\'template_redirect\', \'wpse62337_zurbified\');

SO网友:Wyck

如果我理解正确,您希望有一个主题,并且只需要一些条件就可以根据复选框加载不同的模板。

您链接到的文章仅涉及page 模板,不适用于WordPress生态系统中的所有其他模板文件,例如帖子或类别(尽管您也可以通过一些编码将此功能添加到帖子)。

如果你想应用一种处理所有WordPress模板的技术,你最好使用get_template_part 并将“zurb”版本作为默认主题内的子文件夹。然后可以使用一些条件来加载所需的内容。

如果你只说page 模板,WordPress自动扫描主题目录,包括子文件夹,因此只要你构造模板标题,它就会找到它,这包括子主题。

tl;医生,你不需要做任何事情除了required header

例如

<?php
/*
Template Name: Snarfer
*/
?>
当然,如果有很多文件要扫描和细分曲面,您将受到性能影响。

还应注意:

重命名页面模板(包括将所有顶级页面模板移动到目录中)将取消为当前使用该页面模板的所有页面分配该页面模板。这是您工具箱中的新工具,但请明智地使用它

结束

相关推荐

如何使用PYTHON使用Blogger API拉取WordPress博客数据

Wordpress提到它支持Blogger API(link). 那么,谁能告诉我如何使用Blogger API(使用python)v3来获取wordpress公共博客数据。或者,是否有任何wordpress API可以从其博客中提取公共数据?(语言:Python)。如果有任何有用的文件能够清楚地解释程序,我们将不胜感激。