您可以遍历所有已注册的post类型并为每个类型添加meta框,尽管您可能需要过滤掉某些类型,因为附件也是post。
$post_types = get_post_types(array("public" => true));
foreach ($post_types as $post_type) {
add_meta_box("select_post_template", __("Post Template", "custom-post-templates"), "select_post_template", $post_type, "side", "default");
}
特别是关于自定义Post模板插件,我认为问题在于,自定义Post类型在初始化之后就被注册了(因为它不使用钩子)。所以,
$post_types
(上图)不包含您的类型,无法为它们添加元框。你可以尝试添加这个hack(在
custom-post-templates.php
add_action('init', 'hack_add_meta_boxes');
function hack_add_meta_boxes() {
global $CustomPostTemplates;
$post_types = get_post_types(array('public' => true));
foreach ($post_types as $post_type) {
$CustomPostTemplates->add_meta_box( 'select_post_template', __( 'Post Template', 'custom-post-templates' ), 'select_post_template', $post_type, 'side', 'default' );
}
}