首页 文章

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

提问于
浏览
1

我正在开发的WordPress主题有一个名为“albums”的集成自定义帖子类型,它使用了一些自定义模板(archive-albums.php,content-albums.php等) . 我想要做的是将此功能与模板文件一起转移到插件中以便于移植 .

我成功地从functions.php转移了CPT代码,但是当我尝试将模板文件从主题文件夹移动到插件文件夹时,事情就崩溃了 . 我觉得以某种方式注册模板应该很简单,以便WordPress知道加载它们 .

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

2 回答

  • 1

    我有同样的问题 . 我已经在使用 add_filter ('template_include', ...) 问题是我需要指定一个要返回的文件,在这种情况下是它, index.php . 这引发了一个问题,即主题没有像通过themes文件夹那样完全运行,因为我需要的是让WP选择适当的文件进行渲染而不需要任何条件逻辑 . 所以,如果它是一个帖子,它将选择 single.php ,依此类推 . 使用此方法引发的另一个问题是,在 header.php 中,调用 get_header (); 忽略本地文件 header.php 并改为加载默认主题安装文件 .

  • 0

    事情正在崩溃,因为当你移动这些文件时,你违反了WP的原生模板层次结构 . 您需要显式声明这些文件的位置 . 使用存档作为示例,您可以将这样的内容添加到functions.php中(告诉WP查看其他地方):

    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;
    }
    

    显然你会使用你自己的路径,我匆匆写了这个,所以你可能想要重构 .

相关问题