Вставить код после открытия тега body в WordPress стало проще

Между тегами <body></body> всегда размещают какие-либо скрипты, которые должны работать на всех страницах сайта. Если раньше в WordPress не было «крючка» для вставки кода сразу после открытия тега <body>, то такая возможность появилась в версии WP 5.2. Новая функция wp_body_open() запускает action wp_body_open. Чтобы данное действие было возможным, в файле header.php вашей темы должна быть добавлена функция <?php wp_body_open(); ?>. Структура темы будет выглядеть так:

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

И теперь, чтобы не затрагивать наш структурный файл темы, добавим следующий хук в functions.php, а еще лучше подключим фрагмент кода при помощи плагина Code Snippets.

function body_open_script() {
    return '<!-- какой-то код -->';
}
add_action( 'wp_head', 'body_open_script' );

Рассмотрим вставку кода на примере Google Tag Manager.

function webkato_google_tag_manager_after_body_open() {
	?>
	<!-- Google Tag Manager (noscript) -->
	<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
	<!-- End Google Tag Manager (noscript) -->
	<?php
}
add_action( 'wp_body_open', 'webkato_google_tag_manager_after_body_open' );

Хочу напомнить, что данная функция доступна только начиная от версии 5.2 WordPress. Если вы обновились, но ваша тема не содержит функцию wp_body_open(), то добавить ее можно так:

if ( ! function_exists( 'wp_body_open' ) ) {
        function wp_body_open() {
                do_action( 'wp_body_open' );
        }
}
наверх