WordPress 記事内のバナー広告を自動で切り替える
前回はWordPressのブログサイトでアフィリエイトをされている方などに向けて、サイドバーのバナー広告を自動で切り替える方法を紹介しました。
今回は記事内のバナー広告を記事ごと&毎日に自動で切り替える方法を紹介したいと思います。
下記記事のサイドバーの自動切り替えを実装されている方は、コードを少し変更するだけなのでとても簡単にできます。今回の説明ではプラグインのインストールなどは省いているので、インストールをされていない方は下記記事を参考にインストールなどしてみて下さい。
必要なもの・知識
- WordPress
- プラグイン「Insert PHP Code Snippet」
- cssの編集(コードの追加)
- 少しだけphpの知識(書き方を真似するだけでOK)
プラグインの説明
- Insert PHP Code Snippet
phpで記述したショートコード(コードの塊)を、本文やサイト内に簡単に追加できるプラグインです。今回は広告用のショートコード作成し、記事に表示します。
方法
1. プラグイン「Insert PHP Code Snippet」のインストールとPHPコード作成
プラグインのインストール方法は、こちらの記事をご覧ください。
2. 画像広告表示切り替え用のPHPコードを作成
2.1. プラグイン「Insert PHP Code Snippet」をインストールすると、左メニューに「XYZ PHP Code」という項目が追加されているので、カーソルを合わして「PHPCode Snippets」を選択する。
2.2. 「Add New PHP Code Snippet」をクリック
2.3. タイトルとPHPコードを入力して「Create」をクリック
タイトルは、自分が分かりやすい名前をつけます。
PHPコードへは、下記の「記事ごと&日ごとに3つの商品を切り替えて表示する」コードを貼り付けます。初めての人は、まずはこのコードで表示確認を行うことをおすすめします。慣れない内は、一つずつ確認しながら行う方が、うまくいかない時の原因を発見しやすくなります。
後で応用編として、3つ以上の商品を切り替えて掲載する方法や、表示数を1つ以上に増やす方法などを紹介しています。表示ができたら応用編にチャレンジしてみてください。
<div class="ad-daily-single">
<?php
$contents_list = [
'商品Aのhtmlコード',
'商品Bのhtmlコード',
'商品Cのhtmlコード',
];
mt_srand(strtotime(date_i18n("Y-m-d")) + get_the_ID());
shuffle($contents_list);
print($contents_list[0]);
mt_srand(); // 乱数を戻す
?>
</div>
上記の '商品Aのhtmlコード'
、’商品Bのhtmlコード'、’商品Cのhtmlコード'を、下記のように掲載したい商品のhtmlコードに入れ替えて下さい。
この例の商品のhtmlコードは、画像広告用になります(imgタグが含まれる)。
iframeでも表示はされますが、レイアウトが崩れる場合があります。その場合は後で紹介するcssにて、imgをiframeに変更することで対応が可能です。
コードの補足として、get_the_ID()
関数で記事のIDを取得し、乱数ジェネレーターのseed値に利用しています。これで、記事毎に異なるコンテンツを表示しています。
3. PHPコードを記事に追加する
3.1. プラグイン「Insert PHP Code Snippet」のトップ画面を表示します。
(左メニュー「XYZ PHP Code」>「PHPCode Snippets」)
3.2. 2章で追加したPHPコードの、Snippet Short Code項目のショートコード(下記赤枠)をコピーします。
3.3. PHPコードを表示したい記事の編集画面を表示します。
3.4. 画像コードを表示したい箇所にカスタムHTMLにて、コピーしたショートコードを貼り付けます。
これで記事にPHPコードの内容が表示されるので、プレビューで確認してみて下さい!
もし表示されない場合は、コードの内容を今一度見直してみて下さい。
よくある間違いとしては、,(カンマ)が抜けていたり、文末の;(セミコロン)が抜けているなどがあります。
4. 画像広告を横幅いっぱいに表示する
CSSのコードに下記を追加します。これは追加した広告を記事の横幅いっぱいに変更するコードです。
.ad-daily-single {
width: 100%;
height: auto;
}
もし画像ではなく埋め込み動画などのiframeの場合は、上記ad-daily imgを
ad-daily iframeとして下さい。
6. 基礎が完成
記事に画像広告が記事に表示されたでしょうか?
次に応用編として、
- 3つ以上の商品を切り替えて表示したい場合
- 広告の表示数を1つ以上にしたい場合
- 月ごとに表示内容を切り替えたい場合
を紹介します。必要な項目をご覧下さい。
応用方法
3つ以上の商品を切り替えて表示したい場合
左メニューの「XYZ PHP Code」>「PHPCode Snippets」を選択します。作成したPHPコードを編集するには下記画像赤枠の「編集マーク」をクリックします。
コードの修正箇所は、下記になります。
$contents_list = [
'商品Aのhtmlコード',
'商品Bのhtmlコード',
'商品Cのhtmlコード',
ここに、下記のように追加していけばOKです。(商品D、商品Eを追加)
$contents_list = [
'商品Aのhtmlコード',
'商品Bのhtmlコード',
'商品Cのhtmlコード',
'商品Dのhtmlコード',
'商品Eのhtmlコード',
こんな感じでどんどん追加していって下さい。
広告の表示数を1つ以上にしたい場合
左メニューの「XYZ PHP Code」>「PHPCode Snippets」を選択します。作成したPHPコードを編集するには下記画像赤枠の「編集マーク」をクリックします。
下記が1つのみ表示するためのコードになります。
print($contents_list[0]);
表示数を3つにしたい場合は下記のように変更します。
for ($i=0; $i < 3; $i++) {
print($contents_list[$i]);
}
見て気づかれたかもしれませんが、「$i < 3
」の数字が表示数になります。表示したい画像広告数を3つ以外に変更したい場合は、お好きな数字に変更してください。
月毎に表示内容を切り替えたい場合
左メニューの「XYZ PHP Code」>「PHPCode Snippets」を選択します。作成したPHPコードを編集するには下記画像赤枠の「編集マーク」をクリックします。
下記が日毎に表示を切り替えるための設定コードです。
mt_srand(strtotime(date_i18n("Y-m-d")) + get_the_ID());
これを下記のように変更することで月毎に変更できます。
mt_srand(strtotime(date_i18n("Y-m")) + get_the_ID());
date関数を理解することで、時間毎や曜日毎に設定することも可能です。もし興味があれば調べて設定してみて下さい。
まとめ
これで毎日記事を読んでくれているユーザーにも、飽きられずに広告を見てもらえるかと思います。
他にも色々と応用もできますので、よければ自分の思ったようにカスタマイズしてみて下さい。
補足として、
WordPressの設定によっては、表示内容の変更が0時で行われない場合があります。その場合は、左メニューの「設定」>「一般」から、タイムゾーンの設定を見直してみて下さい。