WordPressテーマSANGOの質問

タグマネージャー用にfunction.phpからbody直後のgtag挿入

アバター
岸本一眞

お世話になります。購入者の岸本です。
当記事同様に、function.phpからbody直後にメタタグを挿入する方法がございましたら、ご教示いただけないでしょうか?
(子テーマにFTPソフトでheader.phpを複製するのは、テーマのアップデートの都度書き換えが必要とのことで断念いたしました…)
ご多忙のところ恐れ入りますが、何卒よろしくお願いいたします。

【WordPress】functions.phpからhead内にタグを追加する方法
コメントへの回答
サルワカくん
サルワカくん
2020/09/04

お世話になっております。
どのテーマを使用している場合でも下記ページの方法で可能だと思われます。
body開始タグの直後に独自のタグを追加する方法
(functions.phpに貼り付けることになると思います)

ご確認よろしくお願いします。

アバター
岸本一眞
2020/09/06

早速のご回答ありがとうございます。
上記URLの通りfunctions.php最下部に貼り付けたところ、下記エラーメッセージが表示されました。
お手数ですが、再度ご指摘いただけますと幸いです。

【エラーメッセージ】(125行目=headタグ1行目です。)
wp-content/themes/sango-theme-poripu/functions.php ファイルの125行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。

syntax error, unexpected ‘&’

【該当コード】
//headタグ
add_action( 'wp_head', 'add_meta_to_head' );
function add_meta_to_head() {
echo '<!– 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-XXXXXXX');</script>
<!– End Google Tag Manager –>';
}

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

サルワカくん
サルワカくん
2020/09/06

echoで挿入する文字列の前後を囲む'が、Google Tag Managerのコード内にも含まれているのがひとつの原因のように見えます。
前述の参考URL内のコードのように、下記のように記載すれば良いと思います。
(その場合、echoは不要です)

add_action(
	'wp_body_open',
	function() {
		?>
			<!– Google Tag Manager –>
			 <script>
			略...
			<!– End Google Tag Manager (noscript) –>
		<?php
	}
);

よろしくお願いします。