マニアックは何でもやります。
Google Analiticsさえもfunction.phpで呼び出したくなります。
function.phpでwp_head関数中で呼び出したくなりよね?
しかし、通常の呼び出し方法では、現在のwordpressにはasyncがjavasciriptの記述で出力されません。
そこで、次の方法で書いてあげます。
置換をしてしまいます。
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script('analitics', 'https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxx', array(), null);
$js = <<< EOM
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-xxxxxx');
EOM;
wp_add_inline_script('analitics', $js, 'after');
});
add_filter('script_loader_tag', function($tag, $handle) {
if ('analitics' !== $handle) {
return $tag;
}
return str_replace(' src', ' async="async" src', $tag);
}, 10, 2 );
こうすることでanaliticsという名前が与えられたものにのみasyncに置換するという記述になります。
これでヘッダー部分にfunction.phpを通して出力できるわけですね。
コメント