get_hidden_meta_boxes()
云策文档标注
概述
get_hidden_meta_boxes() 函数用于获取指定屏幕中隐藏的元框ID数组。它根据用户设置或默认配置返回隐藏元框列表,并支持通过过滤器进行自定义。
关键要点
- 参数 $screen 为必需,可以是字符串或 WP_Screen 对象,用于标识屏幕。
- 返回值为字符串数组,表示隐藏元框的ID。
- 函数首先检查用户选项,若无设置则使用默认隐藏列表,默认隐藏列表根据屏幕类型(如 post、page、attachment)有所不同。
- 提供两个过滤器:default_hidden_meta_boxes 用于过滤默认隐藏列表,hidden_meta_boxes 用于过滤最终隐藏列表。
代码示例
function get_hidden_meta_boxes( $screen ) {
if ( is_string( $screen ) ) {
$screen = convert_to_screen( $screen );
}
$hidden = get_user_option( "metaboxhidden_{$screen->id}" );
$use_defaults = ! is_array( $hidden );
// Hide slug boxes by default.
if ( $use_defaults ) {
$hidden = array();
if ( 'post' === $screen->base ) {
if ( in_array( $screen->post_type, array( 'post', 'page', 'attachment' ), true ) ) {
$hidden = array( 'slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv' );
} else {
$hidden = array( 'slugdiv' );
}
}
$hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen );
}
return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults );
}注意事项
- 函数内部使用 convert_to_screen() 将字符串参数转换为 WP_Screen 对象。
- 默认隐藏列表针对 post 类型屏幕有特定处理,其他类型可能不同。
- 过滤器参数包括 $hidden(隐藏元框数组)、$screen(屏幕对象)和 $use_defaults(是否使用默认值)。
原文内容
Gets an array of IDs of hidden meta boxes.
Parameters
$screenstring|WP_Screenrequired-
Screen identifier
Source
function get_hidden_meta_boxes( $screen ) {
if ( is_string( $screen ) ) {
$screen = convert_to_screen( $screen );
}
$hidden = get_user_option( "metaboxhidden_{$screen->id}" );
$use_defaults = ! is_array( $hidden );
// Hide slug boxes by default.
if ( $use_defaults ) {
$hidden = array();
if ( 'post' === $screen->base ) {
if ( in_array( $screen->post_type, array( 'post', 'page', 'attachment' ), true ) ) {
$hidden = array( 'slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv' );
} else {
$hidden = array( 'slugdiv' );
}
}
/**
* Filters the default list of hidden meta boxes.
*
* @since 3.1.0
*
* @param string[] $hidden An array of IDs of meta boxes hidden by default.
* @param WP_Screen $screen WP_Screen object of the current screen.
*/
$hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen );
}
/**
* Filters the list of hidden meta boxes.
*
* @since 3.3.0
*
* @param string[] $hidden An array of IDs of hidden meta boxes.
* @param WP_Screen $screen WP_Screen object of the current screen.
* @param bool $use_defaults Whether to show the default meta boxes.
* Default true.
*/
return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults );
}
Hooks
- apply_filters( ‘default_hidden_meta_boxes’, string[] $hidden, WP_Screen $screen )
-
Filters the default list of hidden meta boxes.
- apply_filters( ‘hidden_meta_boxes’, string[] $hidden, WP_Screen $screen, bool $use_defaults )
-
Filters the list of hidden meta boxes.
Changelog
| Version | Description |
|---|---|
| 2.7.0 | Introduced. |