将Metabox添加到所有自定义帖子类型

时间:2013-07-17 作者:mtuttle

好的,我已经浏览了这里的论坛,但还没有找到我想要的。我想看看是否有可能在不需要设置数组的情况下向所有自定义帖子类型添加元盒?或者,可能只是使用自定义帖子类型UI插件创建的CPT?

这是我正在测试的代码,但它只出现在常规帖子中。

    add_meta_box( \'my-meta-box-id2\', \'Enter your PDF location for your post category below:\', \'cd2_meta_box_cb\', \'post\', \'normal\', \'high\' );

3 个回复
SO网友:Pat J

的第四个参数add_meta_box()post_type. 所以如果你用post, 它只会显示在WordPress的本地帖子上。

尝试以下操作:

add_meta_box(
    \'my-meta-box-id2\',
    \'Enter your PDF location for your post category below:\',
    \'cd2_meta_box_cb\',
    \'your_custom_post_type_name\',
    \'normal\',
    \'high\'
);
如果要将此附加到多个帖子类型,则应该可以:

$post_types = array( \'post_type_1\', \'post_type_2\', ); // and so forth
foreach( $post_types as $post_type) {
    add_meta_box(
        \'my-meta-box-id2\',
        \'Enter your PDF location for your post category below:\',
        \'cd2_meta_box_cb\',
        $post_type,
        \'normal\',
        \'high\'
    );
}
(Whoops -- 修复了实际使用$post_type 变量。)

参考文献

Codex page for add_meta_box()

SO网友:Sonali

你可以用这个。如果我们想向多个PostType添加元框,那么我们必须在数组中使用它。我们不需要foreach循环来获得这个。只需在元框中使用post类型数组。

add_meta_box(
    \'my-meta-box-id2\',
    \'Enter your PDF location for your post category below:\',
    \'cd2_meta_box_cb\',
    array(\'custom-posttype-1\',\'custom-posttype-2\',\'custom-posttype-3\'),
    \'normal\',
    \'high\'
);

SO网友:pouria

根据文件:https://developer.wordpress.org/reference/functions/add_meta_box/ add\\u meta\\u box函数的第四个参数也可以接受数组。

$屏幕

(string | array | WP\\u Screen)(可选)显示框的一个或多个屏幕(例如帖子类型、“链接”或“注释”)。接受单个屏幕ID、WP\\U屏幕对象或屏幕ID数组。默认为当前屏幕。

默认值:null

因此,您可以使用首选的帖子类型创建一个数组:

$post_types = array( \'cpt1\', \'cpt2\', ... );
add_meta_box( \'my-meta-box\', \'My Meta Box\',\'display_my_meta_box\', $post_types);
或者简单地使用函数get_post_types() 要获取所有帖子类型的名称,请执行以下操作:

$post_types = get_post_types();
add_meta_box( \'my-meta-box\', \'My Meta Box\',\'display_my_meta_box\', $post_types);

https://codex.wordpress.org/Function_Reference/get_post_types

正如文档中所述,您可以设置get_post_types( array( \'_builtin\' => false ) ); 忽略wp默认的帖子类型。

结束

相关推荐

保存多个Metabox内容

我正在为一位朋友的WordPress网站上创建一个相当简单的自定义页面,但我在正确保存元数据库的内容时遇到了一些实际困难。WordPress的行为似乎不像我所期望的PHP那样,因此,当我将echo语句放在某个地方以查看它的位置时,它们并不总是出现,即使代码必须运行时也是如此。非常奇怪。有人能指出我做错了什么吗?(很抱歉代码太多!)function metabox_exhibition_setup() { /* Add \'start_date\' hook. */ add_