是否可以让WordPress首先查看插件目录, 并且如果系统找到该页面, 例如page.php, archive.php, single.php …显示插件文件的布局, 而不查看主题文件?
#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' );
还有本节, 关于有效地将single-post_type.php添加到Template Hierarchy中, 但是我更喜欢一个稍微修改的版本, 使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;
}
评论前必须登录!
注册