考虑到WordPress回退机制,我们知道我们必须将文件放在theme的根目录中,假设我们有一个名为gallery
的自定义帖子类型,为此,需要创建archive-gallery.php
as自定义帖子类型存档页面,使其成为自定义视图。
现在的问题是,我们如何在主题的root 目录之外移动此archive-gallery.php
文件,因为我们正在创建一个类似于gallery的插件,并且想要创建默认值当用户直接或作为插件包含它时查看。
此外,这可以用于在主题根目录中拥有更少的文件,特别是当我们有自定义组织系统或使用composer时
答案 0 :(得分:2)
是的,你可以使用模板include hook
add_filter( 'template_include', 'default_template', 99 );
function default_template( $template ) {
if ( is_singular( array( 'cpt1', 'cpt2' ) ) ) {
$template= '/path/archive-gallery.php'
} // also is_archive() etc...
/*
another method:
$file = basename($template);
$default_folder= '/path/';
if(file_exists($default_folder.$file)){
$template= $default_folder.$file;
}
*/
return $template;
}