当前浏览:首页 / WordPress钩子 / add_meta_boxes

do_action( 'add_meta_boxes', string $post_type, WP_Post $post )

在添加所有内置meta组框后触发

addmore...

meta_box meta组框


参数

$post_type

(string) 文章类型

$post

(WP_Post) 文章对象


更多信息

钩子允许对任何文章类型进行meta组框注册。

传递两个参数:$post_type$post

注意:您还可以使用add_meta_boxes_{post_type}来获得最佳实践,让您的钩子仅在编辑特定的文章类型时运行。这将只接收1个参数 – $post



源码

查看源码 官方文档


更新日志

版本描述
3.0.0开始引入

使用示例

  • 示例1

    从Codex迁移的示例:

    用法示例:

    function adding_custom_meta_boxes( $post_type, $post ) {
        add_meta_box( 
            'my-meta-box',
            __( 'My Meta Box' ),
            'render_my_meta_box',
            'post',
            'normal',
            'default'
        );
    }
    add_action( 'add_meta_boxes', 'adding_custom_meta_boxes', 10, 2 );
    

    文章类型特定调用的示例:

    function adding_custom_meta_boxes( $post ) {
        add_meta_box( 
            'my-meta-box',
            __( 'My Meta Box' ),
            'render_my_meta_box',
            'post',
            'normal',
            'default'
        );
    }
    add_action( 'add_meta_boxes_post', 'adding_custom_meta_boxes' );
    

    两者将完成相同的任务。最佳实践是使用add_meta_boxes_{post-type}为其他文章类型创建较少不必要的挂钩。

  • 示例2

    本说明旨在为文档提供反馈

    以下代码将在PHP >= 7中产生错误
    PHP Fatal Error: Uncaught Type Error: Argument #2 ($post) must be of type WP_Post, WP_Comment given
    如果我尝试编辑评论导航到
    /wp-admin/comment.php?action=editcomment&c=COMMENT_ID

    看起来钩子也是由WP_Comment类型的对象触发的

    add_action( 'add_meta_boxes', function( string $post_type, WP_Post $post ): void {} );