wp_body_open是WordPress 5.2 中最令人兴奋的新特性之一。 引入一个简单的动作钩子—— wp_body_open
。 对于主题或者插件开发者来说 ,这个简单的钩子对在主题中插入代码有巨大的影响。
背景
当 WordPress 开发者想要在前端页面插入 Google Analytics 脚本或者其他自定义脚本时,可以使用wp_head()
或者wp_footer()
函数,这两个超级有用的函数可以让开发者使用非常简单的语法在主题中轻松的插入代码。
wp_head()
函数在WordPress 1.2 中引入,这个函数可以执行 wp_head
动作钩子,从而在<head>
标签中插入代码;同样, wp_footer()
函数在WordPress 1.5.1中引入,这个函数可以在<body>
标签结尾之前插入代码。
但是到目前为止,没有统一的函数可以在 <body>
标签 开头插入代码,这是 WordPress 非常大的一个缺点,因为开发者为了在<body>
标签开头插入代码需要自己注册很多函数。
在WordPress 5.2 中引入了 wp_body_open()
函数可以激活 wp_body_open
动作钩子,这个函数允许开发者在 <body>
标签 开头插入自定义的代码; 目前,所有WordPress 默认主题的header.php
文件中都使用了 wp_body_open()
函数,WordPress 5.2 以后的主题结构如下:
作为 WordPress 主题开发者,您应该在您的主题中引入这个最新的函数。
注:如果在您的主题中有多个<body>
标签,应根据主题结构在<body>
后面插入 wp_body_open()
函数。
为什么有的主题增加如下代码
if ( ! function_exists( 'wp_body_open' ) ) :
/**
* Shim for sites older than 5.2.
*
* @link https://core.trac.wordpress.org/ticket/12563
*/
function wp_body_open() {
do_action( 'wp_body_open' );
}
endif;
兼容性问题:为了在 WordPress 5.2 以前的版本中使用这个新的函数的和动作钩子,你必须自己注册一个 wp_body_open()
函数而不引起错误,同时保证兼容性。