wordpress函数add_meta_box()

add_meta_box( string $id, string $title, callable $callback, string|array|WP_Screen $screen = null, string $context = ‘advanced’, string $priority = ‘default’, array $callback_args = null )

向一个或多个屏幕添加元框。
Adds a meta box to one or more screens.


参数 类型 必填 说明
$id (string) 必需 元框ID(用于元框的“ID”属性)。
$title (string) 必需 元框的标题。
$callback (callable) 必需 用所需内容填充框的函数。函数应回显其输出。
$screen (string | array | WP_Screen) 可选 显示框的一个或多个屏幕(例如文章类型、“链接”或“注释”)。接受单个屏幕ID、WP_屏幕对象或屏幕ID数组。默认为当前屏幕。如果已使用“添加菜单页面”或“添加子菜单页面”创建新屏幕(因此也就是屏幕id),确保菜单slug符合sanitize_key()的限制,否则“screen”菜单可能无法正确呈现在页面上。
$context (string) 可选 显示框的屏幕内的上下文。可用的上下文因屏幕而异。后期编辑屏幕上下文包括“normal”、“side”和“advanced”。注释屏幕上下文包括“normal”和“side”。菜单元框(accordion部分)都使用“side”上下文。全球的
$priority (string) 可选 上下文中框应显示的优先级(“高”、“低”)。
$callback_args (array) 可选 应设置为box数组的$args属性的数据(这是传递给回调的第二个参数)。

无返回值


/**
 * Add a meta box to an edit form.
 *
 * @since 2.5.0
 *
 * @global array $wp_meta_boxes
 *
 * @param string           $id            String for use in the 'id' attribute of tags.
 * @param string           $title         Title of the meta box.
 * @param callback         $callback      Function that fills the box with the desired content.
 *                                        The function should echo its output.
 * @param string|WP_Screen $screen        Optional. The screen on which to show the box (like a post
 *                                        type, 'link', or 'comment'). Default is the current screen.
 * @param string           $context       Optional. The context within the screen where the boxes
 *                                        should display. Available contexts vary from screen to
 *                                        screen. Post edit screen contexts include 'normal', 'side',
 *                                        and 'advanced'. Comments screen contexts include 'normal'
 *                                        and 'side'. Menus meta boxes (accordion sections) all use
 *                                        the 'side' context. Global default is 'advanced'.
 * @param string           $priority      Optional. The priority within the context where the boxes
 *                                        should show ('high', 'low'). Default 'default'.
 * @param array            $callback_args Optional. Data that should be set as the $args property
 *                                        of the box array (which is the second parameter passed
 *                                        to your callback). Default null.
 */
function add_meta_box( $id, $title, $callback, $screen = null, $context = 'advanced', $priority = 'default', $callback_args = null ) {
    global $wp_meta_boxes;
 
    if ( empty( $screen ) )
        $screen = get_current_screen();
    elseif ( is_string( $screen ) )
        $screen = convert_to_screen( $screen );
 
    $page = $screen->id;
 
    if ( !isset($wp_meta_boxes) )
        $wp_meta_boxes = array();
    if ( !isset($wp_meta_boxes[$page]) )
        $wp_meta_boxes[$page] = array();
    if ( !isset($wp_meta_boxes[$page][$context]) )
        $wp_meta_boxes[$page][$context] = array();
 
    foreach ( array_keys($wp_meta_boxes[$page]) as $a_context ) {
        foreach ( array('high', 'core', 'default', 'low') as $a_priority ) {
            if ( !isset($wp_meta_boxes[$page][$a_context][$a_priority][$id]) )
                continue;
 
            // If a core box was previously added or removed by a plugin, don't add.
            if ( 'core' == $priority ) {
                // If core box previously deleted, don't add
                if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
                    return;
 
                /*
                 * If box was added with default priority, give it core priority to
                 * maintain sort order.
                 */
                if ( 'default' == $a_priority ) {
                    $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
                    unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
                }
                return;
            }
            // If no priority given and id already present, use existing priority.
            if ( empty($priority) ) {
                $priority = $a_priority;
            /*
             * Else, if we're adding to the sorted priority, we don't know the title
             * or callback. Grab them from the previously added context/priority.
             */
            } elseif ( 'sorted' == $priority ) {
                $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
                $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
                $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
            }
            // An id can be in only one priority and one context.
            if ( $priority != $a_priority || $context != $a_context )
                unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
        }
    }
 
    if ( empty($priority) )
        $priority = 'low';
 
    if ( !isset($wp_meta_boxes[$page][$context][$priority]) )
        $wp_meta_boxes[$page][$context][$priority] = array();
 
    $wp_meta_boxes[$page][$context][$priority][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback, 'args' => $callback_args);
}

 

更新版本 源码位置 使用 被使用
4.4.0 wp-admin/includes/template.php:1019 7 3

 

版权声明:原创作品,未经允许不得转载,否则将追究法律责任。
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:子佩工作室https://zptheme.com/5487.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

本站分为普通会员,SVIP会员,永久会员。
SVIP会员新用户注册即送180天,到期后可邀请好友2位/180天进行无限续期。
永久会员支持微信支付在线开通。

积分是本站通用虚拟货币,可用于文章资源购买。
每天签到,评论或点赞文章,或者投稿都可免费获得积分
新用户注册免费赠送2积分 邀请用户注册2位/2积分

如果您已经成功付款但是网站没有弹出成功提示,请联系售后提供付款信息为您处理

本站资源属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源

需要效果图的,可以联系售后(右侧核保售后,扫码添加或者点击 加入我们-联系客服)。或者微信添加企业微信:子佩工作室

计划书请提供费率条款(现价分红),100起。WP主题一般单个问题30起。主题二开500起,开发新主题3000起。低于1000须全款,其余先支付全款的60%,完成后支付余下的。

资源是指寿险计划书(定制除外),WP主题或插件不包含在永久会员之内!

发表回复