WordPressの記事一覧で最初の3つの記事にだけadsenseを表示する方法 @totto777

    僕の大好きなAppbankさんのサイトを見ていると、単独ページ内だけではなく、記事の一覧でもAdsenseの広告が表示されていることに気づき、これを自分のブログでもやってみたくなった。

    ただAdsense Manegerを使って広告ユニットを一覧ページ内に埋め込む際に気づいたのだけど、1ページ内に広告ユニットが3つ以上あると、下記みたいな感じで枠は確保されてるけど広告は表示されるというマヌケな状態になる。
    どうやらAdsenseの規約でそうなってるみたい。

    Img 01 014910これカコワルイ(´・ω・`)

    これはちょっとカッコ悪いので、Appbankさんみたいに3つ以上になったら広告を表示させないようにしたい。

    僕のやりたい事

    サイトにアクセスした際に表示される記事一覧にAdsenseのユニットを入れる
    ただし、1ページに表示される広告ユニットの数が3つ以上になったら、それ以降の広告ユニットは非表示にする。

    調べてみると・・・

    ドンピシャの記事は見つけられなかったが、以下の記事を参考にやってみました。ありがとうございます!
    WORDPRESSで一番最初の記事の下にだけアドセンスを表示させる方法

    やってみると・・・

    参照させていただいた記事は、index.phpを直接編集しているみたいなのですが、
    僕が今使ってるテンプレートどうやら、index.phpはloop.phpを読み込んで記事の一覧を作成しているみたい。
    なので、loop.phpを編集する必要があると考え、こちらを編集してみました。

    編集した内容

    以下のコードを追加しました。
    これで、一覧に表示されている広告ユニットの数が3つ以上になったら、それ以降の広告枠は表示されないように設定できました。

    ※ソースが長くて見づらい時はブラウザのページ内検索を利用すると便利です。
    僕はメインブラウザがChromeなのですが、Chromeの場合「⌘+F」で画面の右に検索バーが出ますので、
    そちらに「the_post()」と入力すると該当箇所を素早く見つけられます。

    Img 01 015834
    検索バーに検索したい単語を入力すると該当箇所がマークされます。

    Img 01 015823

    僕の今使っているテンプレートの場合は一箇所変更+一箇所アドセンスのコードを挿入の2点の作業で設定できました。

    1箇所目はこの箇所[cc]< ?php while ( have_posts() ) : the_post();?>[/cc]
    これを
    [cc]< ?php while ( have_posts() ) : the_post(); $counter++;?>[/cc]
    に変更

    次に[cc][/cc]の上に[cc]< ?php if ($counter <= 3) {adsensem_ad('footer');} ?>[/cc]を追加しました。

    結果

    画面が長すぎるので全部キャプチャは出来なかったのですが、
    こんな感じでエントリの一覧の各記事の終わりにアドセンスが表示されるようになりました。 
    なお注意事項としては、今回の内容で対応出来るのは、Adsense Managerを使って挿入した
    広告ユニットのみで、直接記事にアドセンスのコードを書いている場合は対応しませんので、
    注意が必要です。

    Img 01 023040

    SNSでもご購読できます。