Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的WordPress自定义模板可以在插件文件夹中,还是只在主题文件夹中?_Wordpress_Custom Post Type - Fatal编程技术网

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

我的WordPress自定义模板可以在插件文件夹中,还是只在主题文件夹中?,wordpress,custom-post-type,Wordpress,Custom Post Type,我正在开发的WordPress主题有一个集成的自定义帖子类型,名为“albums”,它利用了一些自定义模板(archive-albums.php、content-albums.php等)。为了便于移植,我想把这个功能和模板文件一起转移到插件中 我成功地从functions.php传输了CPT代码,但是当我尝试将模板文件从主题文件夹移动到插件文件夹时,事情就不一样了。我觉得以某种方式注册模板应该很简单,以便WordPress知道如何加载模板 我的WordPress自定义模板可以在插件文件夹中还是仅

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

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


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

事情正在分崩离析,因为当您移动这些文件时,您违反了WP的本机模板层次结构。您需要显式声明这些文件的位置。以归档文件为例,您可以向functions.php添加类似的内容(告诉WP到别处查看):


显然,您会使用自己的路径,我匆忙编写了这篇文章,以便您可能需要重构。

事情正在分崩离析,因为当您移动这些文件时,您违反了WP的本机模板层次结构。您需要显式声明这些文件的位置。以归档文件为例,您可以向functions.php添加类似的内容(告诉WP到别处查看):


很明显,您会使用自己的路径,我匆忙编写了这篇文章,因此您可能需要重构。

我也有同样的问题。我已经在使用
add\u filter('template\u include',…)
问题是我需要指定一个要返回的文件,在本例中,就是它,
index.php
。这就产生了一个问题,主题没有完全像通过themes文件夹安装一样运行,因为我需要的是让WP选择适当的文件来渲染,而不需要我的部件中的任何条件逻辑。因此,如果它是一篇文章,它将选择
single.php
等等。该方法提出的另一个问题是在
header.php中调用
get_header()
忽略本地文件
header.php
并加载默认的主题安装文件。

我也有同样的问题。我已经在使用
add\u filter('template\u include',…)
问题是我需要指定一个要返回的文件,在本例中,就是它,
index.php
。这就产生了一个问题,主题没有完全像通过themes文件夹安装一样运行,因为我需要的是让WP选择适当的文件来渲染,而不需要我的部件中的任何条件逻辑。因此,如果它是一篇文章,它将选择
single.php
等等。该方法提出的另一个问题是在
header.php中调用
get_header()
忽略本地文件
header.php
并加载默认的主题安装文件。

您是否打算继续此操作?你有机会试一下吗?你有没有打算继续做下去?你有机会试一下吗?
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;
}