add_meta_box()
add_meta_box( string $id, string $title, callable $call…
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.
目录锚点:#参数#返回#源码
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$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属性的数据(这是传递给回调的第二个参数)。 |
返回(Return)
无返回值
源码(Source)
/** * 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 |
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!