WordPressのテーマ「Gush」の記事一覧中にアドセンスを自動挿入する

公開日:  最終更新日:2023/04/26

記事一覧中に1個1個アドセンスタグを入れる。

そんな疲れそうな入れ方はしたくなかったので、

自動でタグが入る方法をメモ。

(前も同じようなことしたような…過去ログもご覧あれ)

今回は主にインフィードとして、他の記事一覧に馴染んでしまうタグを使います。


挿入箇所

下図のように2記事間隔でアドセンスを挟むように実装します。

対象ファイル

  • functions.php
  • index.php
  • home.php
  • archive.php
  • single.php(関連記事)
  • sidebar.php(NEWエントリー)

functions.php

共通的なタグ部分はここでまとめちゃいます。


// 記事一覧にアドセンス表示
function add_ads_blog_list() {
  global $wp_query;
  if(($wp_query->current_post != 0) and (($wp_query->current_post) % 2 == 0)) {
    if (wp_is_mobile()) {
      $ads =<<<_CODE_
<!-- ここにアドセンスのコードタグぺたーっと(モバイル) -->
_CODE_;
    }
    else {
      $ads =<<<_CODE_
<!-- ここにアドセンスのコードタグぺたーっと -->
_CODE_;
    }
  }
  print($ads);
}

※前はフックしていたのですが、

他の影響箇所がいくつかあるのと、表示にばらつきがあるので、

今回は別にしてます。

基本焼くなり煮るなりなんでもOKです。

一覧表示の呼び出し部分

一覧表示の部分(index.php, home.php, archive.php)は、

基本 the_post() 呼ばれた後のタイミングで、

上記 add_ads_blog_list() を挿入してます。


<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<?php add_ads_blog_list(); ?>


他の影響部分

関連記事とNEWエントリー(single.php, side_bar.php)は

一覧表示とは異なる表示の仕方でしたので、

別途関数を作成し、呼び出しています。

基本 add_ads_blog_list() をベースにしてます。

差異が大きいものとして、判定のパラメータが $st_query に変わっていることです。

グローバルで呼ぶか?、引数で呼ぶか?「自由」です!

共通化するなり、安全に冗長するなり、管理しやすい方法で良いと思います。

参考

こちらとても参考になりました。ありがとうございました。

WordPressで投稿ループの中に倍数もしくは固定で広告を挿入する。