我正在编写一个插件,它注册了一个名为“sec feature”的新CPT。在我的索引中的以下循环中。php,我想加载一个功能模板。此CPT帖子的php。但是get_template_part
只需在主题目录中查找文件。我想要这个功能:如果这个文件在主题目录中不存在,请在我的插件目录中找到它。
有没有办法做到这一点(不是通过硬编码)或通过插件处理输出模板?
$args = array( \'post__in\' => array(244,302),
\'post_type\' => array( \'sec-feature\')
);
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ) : $the_query->the_post();
get_template_part(\'feature-template\');
endwhile;
EDIT
我在插件中使用以下代码,但它只适用于单篇文章。在帖子的循环中,它不起作用。
add_filter( \'template_include\', \'include_template_function\', 1 );
public function include_template_function( $template_path ) {
if ( get_post_type() == \'sec-feature\' ) {
$theme_file = get_stylesheet_directory() .\'/feature-template.php\';
if ( file_exists($theme_file) ) {
$template_path = $theme_file;
} else {
$template_path = plugin_dir_path( __FILE__ ) . \'feature-template.php\';
}
}
return $template_path;
}