我正在尝试在打开后立即添加以下Google Tag Manager脚本<body> Wordpress登录页面上的标记。
Code that I want to insert
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
What I have tried
根据此处给出的解决方案:
Adding body class to login page?, 我尝试了以下代码:
function my_custom_code2($classes){
?>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P3CWDSQ"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->";
<?php
}
add_filter( \'login_body_class\', \'my_custom_code2\' );
Results
它不起作用。有人知道我怎么解决这个问题吗?
In response to Sally\'s query below, this is the full code I am using.
function my_custom_code1(){
?>
<!-- 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-XXXXX\');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->";
<?php
}
add_action( \'login_head\', \'my_custom_code1\', 10 );
谢谢。
最合适的回答,由SO网友:Sally CJ 整理而成
打开后立即<body> 标签
WordPress没有提供挂钩,即在<body> 标签
但WordPress确实启动了一个名为login_header 我们可以使用它在body 标签已打开:
do_action( \'login_header\' )
打开body标记后,在登录页面标题中激发。
例如:
add_action( \'login_header\', \'wpse_375598\' );
function wpse_375598() {
?>
Add your HTML here.
<?php
}
顺便说一句,
login_body_class 是一个可以用来将自定义CSS类添加到
<body> 标签(即。
<body class="here">), 因此,该挂钩不应用于添加(Google Tag Manager的)
noscript 密码
同样在已编辑的问题中,问题是您使用了login_head 而不是login_header — login_head 用于在<head> 文档/页面的节。
因此,您的代码应该更像:
add_action( \'login_head\', \'wpse_375598_login_head\' );
function wpse_375598_login_head() {
?>
Add your HTML here that goes in the <head>.
<?php
}
add_action( \'login_header\', \'wpse_375598_login_header\' );
function wpse_375598_login_header() {
?>
Add your HTML here that goes in the <body>.
<?php
}