首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的WordPress自定义模板可以在插件文件夹中,还是只能在主题文件夹中?

我的WordPress自定义模板可以在插件文件夹中,还是只能在主题文件夹中?
EN

Stack Overflow用户
提问于 2013-04-01 05:08:53
回答 2查看 973关注 0票数 1

我正在开发的一个WordPress主题有一个集成的自定义帖子类型,名为"albums“,它利用了一些自定义模板(archive-albums.php,content-albums.php等)。为了便于移植,我想把这个功能和模板文件一起转移到一个插件中。

我成功地从functions.php转移了CPT代码,但当我尝试将模板文件从主题文件夹移动到插件文件夹时,一切都崩溃了。我觉得注册模板应该很简单,这样WordPress就知道加载它们了。

我的WordPress自定义模板可以放在插件文件夹中还是只放在主题文件夹中?

EN

回答 2

Stack Overflow用户

发布于 2013-04-01 05:28:07

事情正在分崩离析,因为当你移动这些文件时,你违反了WP的原生模板层次结构。您需要显式声明这些文件的位置。以归档为例,您可以将类似以下内容添加到functions.php (告诉WP到其他地方查找):

代码语言:javascript
复制
add_filter('template_include', 'include_album_template', 1);
function include_album_template($template_path) {
if(get_post_type() == 'albums') {
    if(!is_single()) {
        $theme_file = 'path-to-your-plugin-directory';
        $template_path = $theme_file; 
    }
}
return $template_path;
}

显然你会使用你自己的路径,我仓促地写了这篇文章,所以你可能想要重构一下。

票数 1
EN

Stack Overflow用户

发布于 2017-02-02 02:01:37

我也有同样的问题。我已经在使用add_filter ('template_include', ...)了,问题是我需要指定一个要返回的文件,在本例中就是index.php。这引发了一个问题,主题不能完全运行,就像通过主题文件夹安装一样,因为我需要的是让WP选择适当的文件来呈现,而不是从我的部分中选择任何条件逻辑。因此,如果是帖子,它将选择single.php,依此类推。这种方法带来的另一个问题是,在header.php中,调用get_header ();会忽略本地文件header.php,而是加载默认的主题安装文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15734551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档