現在テーマ変更中です

【WordPress】Spaciousで記事一覧ページに広告を挿入してみた

やっとこさGoogle Adsenseに登録できたので、ぺたぺた貼りまくっています。

ウザくないいい感じのバランスにして収益が出るように日々調整していきます。

記事やサイドバーには「AdRotate」というプラグインを使ってどの広告を出すか制御しています。

【WordPress】AdRotateを使った広告管理方法
以前はQuick AdSenseやテーマのPHPを直接いじってカテゴリごとに広告を管理していました。 1記事1記事丁寧に広告を設定できるようなマメさがあればいいのですが、記事数・広告数が増えればなるべく手間なくやりたくなるのが人の情・・・。 という事で「AdRotate」というプラグインを使うようになりました。今回はこの「AdRotate」を解説します。 ...

 

しかし、これだとアーカイブやカテゴリ等の、記事一覧が出るページには広告を差し込めません。

「Quick Adsense」だとチェックボックスはあるのですが、設定が悪いのか、うちで使っているテーマ「Spacious」だと制御できないのかわかりませんが、できませんでした。

なのでやることは一つですね、「PHPで直接記述する」。

調べたらわりと簡単にできましたが、「Spacious」だと記述する必要があるファイルが異なったので備忘録として記事を書きます。

 

アーカイブ、カテゴリの記事の間に広告を挟む

こちらのページを参考にしました。ありがたい!

http://murakamikoji.com/wordpress-list-adsense/

 

シンプルなコードと完璧な解説でもう言うことはないのですが、ちょっとだけアレンジしました。

<?php if ( have_posts() ) : ?>
<?php $count = 0; ?>
<?php while ( have_posts() ) : the_post(); ?>
<!– 2016/11/20追加 –>
<?php if($count == 1 or $count == 7) : ?>※1
<div align = center>-スポンサードリンク-</div>
(アドセンスのコード)
<?php endif; ?>
<?php $count = $count + 1; ?>

<?php get_template_part( ‘content’, $format ); ?>※2

<?php endwhile; ?>

※1の部分を「<?php if ($count == 2 or $count == 7) : ?>」としました。これで「1記事目と2記事目の間と7記事目と8記事目の間に広告を表示する」ことができます。うちのサイトはMAXで10記事が表示されるので、広告がMAXで2つ貼られます。

ちなみにカテゴリによっては10記事どころか1記事しかない場合もあります。

  1. 8記事以上あれば2つ広告が表示される
  2. 2記事以上7記事以下の場合は1つ目の記事の下だけに広告が表示される
  3. 1記事しかない場合、広告が表示されません

記事数によって以上のように表示される広告の数が変わります。本当は記事数を取得してなるべく多くの広告を貼ろうと思いましたが、まぁこれくらいの数がちょうどいいっぽいので妥協しました。1記事しかないカテゴリは早急に増やしたいと思います。

 

※2ですが、当初間違えて※2の後に追加部分を記載したため、無限ループとなりとんでもないことになったのでご注意ください。

「Spacious」で修正するファイル

「Spacious」ではフロントページに表示されるアーカイブを制御しているファイルが「home.php」、カテゴリを制御しているファイルが「archive.php」です。

ファイルが分かれている事に気付かず「archive.php」を修正して「あれー?なんでカテゴリの記事一覧だと反映されてフロントページの記事一覧は反映されないんだ・・・」としばらく頭を悩ませていました。

どちらも「<?php while ( have_posts() ) : the_post(); ?>~<?php endwhile; ?>」の部分があるので、両方に上記のコードを追加します。

これでフロントページもカテゴリページも記事一覧の間に広告が表示されるようになりました。

現在当サイトではこのコードが入っているので、実際にどうなるのかは各自でご確認ください。広告が入っているスクリーンショット貼るとGoogleから怒られるらしいので・・・。(確証はない)

 

また、テーマフォルダに入っているファイルを直で修正すると、アップデートかかると上書きされて消えてしまうので、子テーマを作って修正しましょう。

おわりに

「<?php if($count == 1 or $count == 7) : ?>」を例えば「<?php if($count == 1 or $count == 3 or $count == 5) : ?>」とか、条件を変えればいくらでも自動で広告を表示させることができますが、あまり貼っても「広告うぜぇなおい」となってしまい、せっかく記事を見に来てくれた人が遠のいてしまいます。

またGoogle Adsenseでは誤クリックの誘発や、アクセスしたら広告しか見えないような貼り方だとアカウントを無効化されてしまいます。

ユーザ第一に適度に貼り付けましょうね!