Googleアドセンスの自動広告コードは、一般的には、プラグインを使うっぽいのですが、これだけの為にプラグインを入れるのがイヤだったので、functions.phpに追記する形式にしました。
※コード自体は、「初心者向けの万能テーマ」以外であれば、喧嘩しないので、いろんなテーマで使いまわしています。
functions.phpの場所
外観 → テーマエディタ → 編集するテーマを選択:子テーマを選択 → functions.phpに入って下記をコピペ
functions.phpを編集する際は画面が真っ白になったり、ログインできなくてサーバーに復旧に行ったりしないといけなくなったりするので、バックアップを取って、慎重に!
※画像は「Twenty Nineteen」の画像を転用していますが、右上で、「Twenty Twenty」の子テーマを選んでください。
※閉まっているコードの後ろに丸ごとくっつけるように書いているので、下のコードを使ってエラーが出るという場合は、最初の「<?php」と最後の「?>」を取り除けばいいカモ。
自動広告(普通のウェブページ)
このコードは「投稿のみ」かつ「ログインしていない時」という条件が入っていますので、コードが入っているか確認する時はログアウトするか、シークレットモードで見てみてください。
<?php function additional_head_script() {
if ( is_single() && !is_user_logged_in() ): ?>
<script data-ad-client="ca-pub-XXXXXXXXXXXXXXXX" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<?php endif; }
add_action( 'wp_head', 'additional_head_script' );
?>
“ca-pub-XXXXXXXXXXXXXXXX”の部分をご自分のコードに変更されれば、サイトのすべてのページに入ります。
AMP自動広告
AMP自動広告はheadとbodyの2か所にコードを入れます。
まずはHead用のコードをfunctions.phpに追記します。
<?php function amp_additional_head_script () {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'amp') !== false): ?>
<script async custom-element="amp-auto-ads"
src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js">
</script>
<?php endif;
}
add_action( 'wp_head', 'amp_additional_head_script' ); ?>
つぎにbodyタグの直ぐ下用のコードもfunctions.phpに追記します。
<?php function amp_additional_body_script () {
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'amp') !== false): ?>
<amp-auto-ads type="adsense"
data-ad-client="ca-pub-XXXXXXXXXXXXXXXX">
</amp-auto-ads>
<?php endif;
}
add_action( 'wp_body_open', 'amp_additional_body_script' ); ?>
「AMP」というプラグインを使ってAMP化しています。ネットで紹介されていたフック(amp_post_template_head, amp_post_template_footer)を上手く機能させられませんでした。
AMPネイティブじゃなくて、トランジッションを選んだので、URLに「AMP」という文言が含まれていたらコードを挿入するというロジックにしました。
あと、AMPページは自分でプレビューとかしないので、「if ( is_single() && !is_user_logged_in() ):」(投稿ページのみかつログインしていない時)の条件を入れていませんw
最後に
プラグインがおすすめです。残念ながら個人的に使わないですから紹介とかはできません。ごめんなさいまし。
参考資料:Codex「do_action( ‘wp_body_open’ )」、Stackoverflow「Check if URL has certain string with PHP」
追記
オリジナル投稿日:2019-12-7
2021年1月31日、別サイトで機能確認後、記事更新。
最後までお読みいただきましてありがとうございました。
はじめまして。
fuyuzと申します。
こちらのサイトで知ったTwenty Twenty でサイトを作りました。
シンプルで理想のテーマです。
しかしGoogle Adsence広告を設置すると、どうしてもサイト上部に広告が出てしまいます。
プラグインを使ってafter post としても上部にしか表示されません。
のろのろさん のように投稿記事の後に広告を表示する方法はありますか?
ご教授お願いします。
(いまは広告は表示してません)
こんにちは。
Twenty Twenty、きれいなテーマですよね。うんうん。
このサイトのGoogle Adsenseの広告は、アドセンス側の管理画面で、自動広告をオン、「ページ内広告」以外をオフ、広告の読み込みはバーの8分目ぐらいの設定になっていました。それ以外は何も触っていないです。
私のサイトでは、アドセンスの管理画面でプレビューしてみても、画面上部に広告候補として出てくるページがなくて、よくわかりませんでした。
https://support.google.com/adsense/thread/19956016?hl=ja
他のヘルプセンターの記事を見てみても、「自動広告をオフにして、マニュアルで広告ユニットを作る」みたいな回答しか見つからなくて、もやっとしますね。
お力になれず申し訳ないです。m(__)m
のろのろさん、丁寧にありがとうございました。
とうぶんはアソシエイトで頑張ってみます。
成功をお祈りしておりま~す。(@^^)/~~~