WordPress ショートコードひとつでランダムバナー広告管理 広告表示

WordPress ショートコードひとつでランダムバナー広告管理 広告表示

投稿ページやカテゴリー一覧ページのサイドバーに表示させているカテゴリー別ランダムバナーウィジェット、新着・更新記事リストのN番目にランダム広告をねじこんだり、人気記事一覧に広告を紛れ込ませたりと、これまで各ウィジェットで組み込んでいたランダムバナーをひとつのショートコードで指定・表示させるようにした。

テンプレートパーツでもいいけどショートコードの方が便利

別段各ウィジェットにテンプレートパーツとして組み込んでおけばいいのだけど、ショートコード で指定して表示させるようにしておけばウィジェットだけではなく、投稿ページはもちろん、テキストウィジェット、テンプレートなどいろんなところで使える便利さがあるのでショートコードで広告を指定・表示するようにした次第。

投稿ページ・個別ページ以外でショートコードを使う方法についての詳細は下のページを参照していただきたい。

<aside class="ninki-kiji">
<ul>
[add-list type=list-all]
[add-list type=list-top]
</ul>
</aside>

例えば上のように投稿ページにショートコードを入力すれば、最近の新着・更新記事ウィジェットや人気記事ランキングウィジェットにねじ込んでいたランダムバナーが下のように投稿ページに表示される。

type=●●●で指定した後で説明する ランダム広告リストPHP が、<li>要素の中にランダムに抽出したバナーを入れたのを返してくるという仕組みになっている。

ショートコード登録

function add_on_list($atts) {
extract( shortcode_atts( array('type' => "all",), $atts ) );
/* type=●●と同じ●●.php */
include STYLESHEETPATH.'/ads/' . $type . '.php';
return $add_rand;
}
add_shortcode('add-list', 'add_on_list');

functions.php に上のコードを追加する。type=●●で後で説明する ランダム広告リストPHP を指定する。上の場合、ランダム広告リストPHPの指定がなかったらallというランダム広告リストPHPを使うようになっている。

ランダム広告リストPHP は、使っているテーマのフォルダの ads フォルダに上の場合保存していることになる。

WordPress 投稿ページ・個別ページ以外でショートコードを使う方法 を参考にして、投稿ページやウィジェットなら [add-list type=●●] とすれば●●というランダム広告リストPHPが返す広告が返ってきて表示される。

ランダム広告リストPHPを作成

<?php
$add_rand = array(

/* A8.net 賢威 */ 
'<li>
<a href="ここにアフィリエイトリンク" target="_blank" rel="nofollow">
<span class="new-kiji">
PR
</span>
<img width="100" height="100" src="バナー画像URL" alt="" />
<div class="ninki-kiji-text">
<p>賢威 2万人を超えるユーザーが選んだWordPress SEOテンプレート</p>
<p><span class="pv-data">アクセス数: ∞</span></p>
</div>
</a>
</li>',

/* A8.net Z.com WP */ 
'<li>
<a href="ここにアフィリエイトリンク" target="_blank" rel="nofollow">
<span class="new-kiji">
PR
</span>
<img width="100" height="100" src="バナー画像URL" alt="" />
<div class="ninki-kiji-text">
<p>Z.com WP 低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から</p>
<p><span class="pv-data">アクセス数: ∞</span></p>
</div>
</a>
</li>',

);
$add_rand = $add_rand[mt_rand(0, count($add_rand)-1)];
return $add_rand;

上はリストに表示することを想定した ランダム広告リストPHP。2行目、配列を $add_rand に入れとく。配列の中身は ' ' の間にリストの <li>要素 になるように定型された広告を、カンマ , 区切りで入れてある。

33~34行目、実際にリロードされる度にランダムに広告を選んで返す処理をしているのがこの部分。$add_rand に入れた配列の要素の数をカウントして、何番目かをランダムに選んで選ばれた配列要素を返すという処理をしている。

4行目、18行目のように簡単な広告の説明をコメントアウトして入れておけば広告の管理が少しは楽かも。後はUTF-8N で保存してテーマフォルダのadsフォルダにアップロード。

<?php
$add_rand = array(
'',
'',
);
$add_rand = $add_rand[mt_rand(0, count($add_rand)-1)];
return $add_rand;

上のコードが ランダム広告リストPHP の基本形。htmlの定型(ひな形)を表示させたいところのスタイルにあわせて' '中にいれていけばいくらでもすきなところにショートコードでランダムに広告を表示させることができる。

ショートコードでランダム広告シリーズ完結

いろいろとランダムバナーでいじってきたけどショートコードで指定・表示する方法で完結。自己満足以外何もないがまあちょっとは勉強になったかな。普通プラグインにした方がいいように思えるがそこまでのスキルがないのでこれで勘弁してちょうだい。各ウィジェットのコードとか変更になってるけどおいおい訂正していかなくてはいけません。