一个Metabox用于多种帖子类型

时间:2012-11-24 作者:Flenston F

我有这个密码

function add_custom_meta_box() {
add_meta_box(
    \'custom_meta_box\', // $id
    \'Custom Meta Box\', // $title 
    \'show_custom_meta_box\', // $callback
     \'page\', // $page    
    \'normal\', // $context
    \'high\'); // $priority
}
add_action(\'add_meta_boxes\', \'add_custom_meta_box\');
我想在此代码中添加更多的帖子类型,如page、post、custom\\u post\\u type

  \'page\', // $page 
我应该如何重写代码?

2 个回复
SO网友:fuxia

定义一个post类型数组,并分别为每个类型注册元盒:

function add_custom_meta_box() {

    $post_types = array ( \'post\', \'page\', \'event\' );

    foreach( $post_types as $post_type )
    {
        add_meta_box(
            \'custom_meta_box\', // $id
            \'Custom Meta Box\', // $title 
            \'show_custom_meta_box\', // $callback
             $post_type,
            \'normal\', // $context
            \'high\' // $priority
        );
    }
}

SO网友:Christine Cooper

如果您的目标是添加all post types,然后您可以使用以下命令获取post类型数组:

$post_types = get_post_types( array(\'public\' => true) );
或者为WP核心帖子类型或自定义帖子类型添加参数:

// only WP core post types
$post_types = get_post_types( array(\'public\' => true, \'_builtin\' =>‌ true) );

// only custom post types
$post_types = get_post_types( array(\'public\' => true, \'_builtin\' =>‌ false) );
使用方法如下:

add_meta_box(
    \'custom_meta_box\', // $id
    \'Custom Meta Box\', // $title 
    \'show_custom_meta_box\', // $callback
     $post_types,
    \'normal\', // $context
    \'high\' // $priority
);

结束

相关推荐

如何制作包含链接类别的Metabox?

我正在寻找一些关于如何创建一个允许用户从链接类别列表中选择的元框的建议或教程链接。到目前为止我一直在看this post about taxonomies in a drop down 和this post about an audio file drop down. 我也看过get_terms. 最终目标是在单个帖子页面上显示用户选择的链接类别中的链接。更新#2。现在让它正常工作(更新代码)。最后一件事:我只需要找到一种方法来保持选中的选项处于选中状态。它保存了正确的值,但在视觉上只是默认为第一个选项。