-
-
Save jsn789/52ad87efb911c65e28fff01c8e7acada to your computer and use it in GitHub Desktop.
/* Add Google Tag Manager javascript code as close to | |
the opening <head> tag as possible | |
=====================================================*/ | |
function add_gtm_head(){ | |
?> | |
<!-- Google Tag Manager --> | |
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': | |
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], | |
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= | |
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); | |
})(window,document,'script','dataLayer','GTM-XXXX');</script> | |
<!-- End Google Tag Manager --> | |
<?php | |
} | |
add_action( 'wp_head', 'add_gtm_head', 10 ); | |
/* Add Google Tag Manager noscript codeimmediately after | |
the opening <body> tag | |
========================================================*/ | |
function add_gtm_body(){ | |
?> | |
<!-- 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( 'body_top', 'add_gtm_body' ); |
Jupiter theme already had body_class instead of body_top
Thanks for the tip. What does the number 10 do in this function?
add_action( 'wp_head', 'add_gtm_head', 10 );
Just wanted to say:
if you leave the add_action as priority 10 (see the comments by tokyographer and raulfunkie above), the script is placed halfway down the section; I changed my priority to 1 and the script was placed immediately after the last tag in the section: exactly where I wanted it and, probably, where it 'shouldl' go!
Thanks very much for this
Change line 32 to:
add_action( 'wp_body_open', 'add_gtm_body' );
To make the above work, the header.php file needs to be updated by adding:
No need to. Better to use hooks in WP template.
wp_head ( https://developer.wordpress.org/reference/hooks/wp_head/ )
wp_body_open ( https://developer.wordpress.org/reference/hooks/wp_body_open/ )
@tokyographer It adds priority to the script to it executes before anything else.