wp_enqueue_admin_bar_bump_styles()
云策文档标注
概述
wp_enqueue_admin_bar_bump_styles() 函数用于为管理栏腾出空间,通过内联样式调整页面顶部边距。它检查主题支持并处理回调函数,确保样式正确添加。
关键要点
- 函数仅在主题支持 'admin-bar' 且回调为 '_admin_bar_bump_cb' 时生效
- 使用 wp_add_inline_style() 添加 CSS 媒体查询,适应不同屏幕尺寸
- 包含向后兼容性检查,避免因插件移除动作而重复执行
代码示例
function wp_enqueue_admin_bar_bump_styles() {
if ( current_theme_supports( 'admin-bar' ) ) {
$admin_bar_args = get_theme_support( 'admin-bar' );
$header_callback = $admin_bar_args[0]['callback'];
}
if ( empty( $header_callback ) ) {
$header_callback = '_admin_bar_bump_cb';
}
if ( '_admin_bar_bump_cb' !== $header_callback ) {
return;
}
// Back-compat for plugins that disable functionality by unhooking this action.
if ( ! has_action( 'wp_head', $header_callback ) ) {
return;
}
remove_action( 'wp_head', $header_callback );
$css = '
@media screen { html { margin-top: 32px !important; } }
@media screen and ( max-width: 782px ) { html { margin-top: 46px !important; } }
';
wp_add_inline_style( 'admin-bar', $css );
}
原文内容
Enqueues inline bump styles to make room for the admin bar.
Source
function wp_enqueue_admin_bar_bump_styles() {
if ( current_theme_supports( 'admin-bar' ) ) {
$admin_bar_args = get_theme_support( 'admin-bar' );
$header_callback = $admin_bar_args[0]['callback'];
}
if ( empty( $header_callback ) ) {
$header_callback = '_admin_bar_bump_cb';
}
if ( '_admin_bar_bump_cb' !== $header_callback ) {
return;
}
// Back-compat for plugins that disable functionality by unhooking this action.
if ( ! has_action( 'wp_head', $header_callback ) ) {
return;
}
remove_action( 'wp_head', $header_callback );
$css = '
@media screen { html { margin-top: 32px !important; } }
@media screen and ( max-width: 782px ) { html { margin-top: 46px !important; } }
';
wp_add_inline_style( 'admin-bar', $css );
}
Changelog
| Version | Description |
|---|---|
| 6.4.0 | Introduced. |