1. 主页
  2. 文档
  3. WordPress函数
  4. wp_body_open

wp_body_open

WordPress 5.2 新特性之一:引入的 一个简单的动作钩子—— wp_body_open。 对于主题或者插件开发者来说 ,这个简单的钩子对在主题中插入代码有巨大的影响。

wp_body_open():触发wp_body_open动作的功能。

类似:wp_head()或者wp_footer()函数。

wp_head() :这个函数可以执行 wp_head 动作钩子,从而在<head>标签中插入代码;

 wp_footer() :这个函数可以在<body>标签结尾之前插入代码。

但是到目前为止,没有统一的函数可以在 <body>标签 开头插入代码,这是 WordPress 非常大的一个缺点,因为开发者为了在<body>标签开头插入代码需要自己注册很多函数。

在WordPress 5.2 中引入了 wp_body_open() 函数可以激活 wp_body_open 动作钩子,这个函数允许开发者在 <body>标签 开头插入自定义的代码; 目前,所有WordPress 默认主题的header.php文件中都使用了 wp_body_open() 函数,WordPress 5.2 以后的主题结构如下:

<html>
    <head>
        ..
        <?php wp_head(); ?>
    </head>
    <body>
        <?php wp_body_open(); ?>
        ..
        <?php wp_footer(); ?>
    </body>
</html>

兼容性

if ( ! function_exists( 'wp_body_open' ) ) {

	/**
	 * Shim for wp_body_open, ensuring backwards compatibility with versions of WordPress older than 5.2.
	 */
	function wp_body_open() {
		do_action( 'wp_body_open' );
	}
}

举例(2020主题):

在functions.php

功能:

if ( ! function_exists( 'wp_body_open' ) ) {

	/**
	 * Shim for wp_body_open, ensuring backwards compatibility with versions of WordPress older than 5.2.
	 */
	function wp_body_open() {
		do_action( 'wp_body_open' );
	}
}

/**
 * Include a skip to content link at the top of the page so that users can bypass the menu.
 */
function twentytwenty_skip_link() {
	echo '<a class="skip-link screen-reader-text" href="#site-content">' . __( 'Skip to the content', 'twentytwenty' ) . '</a>';
}

add_action( 'wp_body_open', 'twentytwenty_skip_link', 5 );

模板文件中:

<body <?php body_class(); ?>>

		<?php
		wp_body_open();
		?>

		<header id="site-header" class="header-footer-group" role="banner">

对应

<body class="home blog logged-in admin-bar no-customize-support enable-search-modal has-no-pagination showing-comments show-avatars footer-top-visible">

		<a class="skip-link screen-reader-text" href="#site-content">跳至内容</a>
		<header id="site-header" class="header-footer-group" role="banner">
这篇文章对您有用吗?

我们要如何帮助您?