ブログで広告を貼る際、なるべくなら記事の内容に合った広告を貼りたいですよね。
WordPressではカテゴリごとに広告を出し分けることが簡単にできます。
というわけで、カテゴリで条件分岐して広告を出し分ける方法をご紹介します。
カテゴリに応じて広告を出し分ける方法
以前にカテゴリやタグで条件分岐する方法について書いてます。
基本的にやってることは同じなので上記の記事もあわせてご覧ください。
上記記事の解説に加えて、「記事ページ内」と「一覧ページ内」とで使う関数が少し違っているので、その点について言及しながらご紹介していきますね。
記事ページ内に広告を表示させたい場合
記事ページに広告を表示させている場合、その記事のカテゴリごとに広告を出し分けるには下記のコードのように「in_category」という関数を使って条件分岐します。下記のコードをsingle.phpに記述してください。
<?php if(in_category( array('html', 'css', 'php') ) ) : ?> HTML,CSS,PHPというカテゴリでは広告Aを表示 <?php elseif ( in_category( array( 'entame', 'music' ) ) ) : ?> エンタメ,音楽というカテゴリでは広告Bを表示 <?php else: ?> それ以外のカテゴリでは広告Cを表示 <?php endif; ?>
上記のようにカテゴリのスラッグで条件分岐していきます。
「表示させるかさせないか」という2択であれば下記のように書いてもおっけーです。
<?php if(in_category( array('html', 'css', 'php') ) ) : ?> ここに広告のタグを入れる <?php endif; ?>
カテゴリ一覧ページ内に広告を表示させたい場合
カテゴリ一覧ページ(archive.phpやcategory.php)に表示させたい場合、先ほどの「in_category」ではなく「is_category」と書きます。
<?php if(is_category( array('html', 'css', 'php') ) ) : ?> HTML,CSS,PHPというカテゴリでは広告Aを表示 <?php elseif ( is_category( array( 'entame', 'music' ) ) ) : ?> エンタメ,音楽というカテゴリでは広告Bを表示 <?php else: ?> それ以外のカテゴリでは広告Cを表示 <?php endif; ?>
先ほどとやってることは同じで、関数がis_categoryになってるだけ。
single.phpではin_category、archive.phpではis_categoryと似ていてややこしいんですが、全然違う関数なのでお気を付けください。
記事ごとに広告を出し分けたいときは?
カテゴリごとという大きな括りでは条件分岐しきれないときは、記事ごとに分けることも可能です。
記事ごとに広告を出し分ける方法については下記の記事で詳しく解説してますのでこちらをご覧ください。
最後に
今回紹介したカテゴリに応じて広告を出し分ける方法は、Amazonの商品を貼っておく時などに便利なんですよ。
カメラのカテゴリでカメラやレンズの広告を出したり、Apple関連の記事でApple Storeへのリンクを貼ったり。
いろいろ活用方法があると思うので、ご自身の環境にあわせてカスタマイズしてみてください。