是否可以让WordPress首先查看插件目录,并且如果系统找到该页面,例如page.php,archive.php,single.php ...显示插件文件的布局,而不查看主题文件?
答案 0 :(得分:1)
绝对!看一下single_template
和archive_template
过滤器。他们是相对简单易用的:
function get_custom_post_type_template($single_template) {
global $post;
if ($post->post_type == 'my_post_type') {
$single_template = dirname( __FILE__ ) . '/post-type-template.php';
}
return $single_template;
}
add_filter( 'single_template', 'get_custom_post_type_template' );
还有This Section可以有效地将single-post_type.php
添加到模板层次结构中,但是我更喜欢经过稍微修改的版本,使IMO更易于阅读:
add_filter( 'single_template', 'my_single_templates' );
function my_single_templates( $single_template ){
global $post;
$file = '/my/path/to/templates/dir/'. $post->post_type .'/single-'. $post->post_type .'php';
if( file_exists( $file ) )
$single_template = $file;
return $single_template;
}