WordPressのショートコードを使って広告(友達紹介バナー)を一括管理する方法その2


日々の生活にhappyをプラスする|ハピタス


ライフメディアへ登録


暮らしをおトクにかえていく|ポイントインカム

以前、WordPressのショートコードを使って広告(友達紹介バナー等)を一括管理する方法という記事を書きました。

一回だけショートコードを書けば後はそれを呼び出してやるだけで簡単に広告の貼り付けを行なうことができる上に、ショートコード内の広告(HTMLソース)を書き換えればショートコードで貼り付けた広告を全て一括で新しいものに置換できるので、毎回HTMLソースをコピペして貼り付けするよりも管理の手間がかなり省けます。

当サイトに掲載している広告のほとんどもそのようにして管理していますが、実際コピペに比べて貼り付け・置換・撤去のいずれも格段に早いのでオススメです。

※前回の記事では「アフィリエイトリンク」という表現をしていましたが、当サイトでは一般的なアフィリエイトではなくお小遣いサイトの友達紹介について触れることがほとんどなので、当記事では単に「広告」もしくは「友達紹介バナー」等と言い換えます(意味は特に変わりません)。

前回のショートコードの問題点

しかし、前回書いたショートコードには、

  1. 管理する広告の数が増えるとif文が長くなり過ぎる
  2. 広告の追加・変更・削除を行なう度にソースを弄るのでエラー発生の危険性がある

といった問題点があります。

if文が長くなる

1.に関しては、ショートコードのソースを見ると分かりやすいです。

例えば、前回書いたショートコードは以下のような感じです。

これを「テーマのための関数(function.php)」の中に追記して記事中で以下のショートコードを記述するとそれぞれモッピー・ポイントタウン・ポイントインカムの広告が表示されます。

上記はあくまでも例であり3件分しか記述していませんので割りと見通しが良いと思います。

しかし、ブログで取り上げるお小遣いサイト(ポイントサイト・アンケートサイト)の数が増えればif文による場合分けのパターンが増えるので、その文だけif文(正確にはelse if以降)がどんどん伸びていきます。

具体的には以下のような感じです。

10サイト分の広告を扱うだけでも結構長くなりますし、実際には10件で済めば少ない方でおそらく取り上げるサイト数が増えれば余裕で20~30は超えるため下に長くなっていき見通しが悪くなっていってしまうのです。

エラー発生の危険性がある

とはいえ、上記については見通しが悪くなるとか、ソースコードが不格好になるというだけですので、実害はそんなに大きくありません。

どちらかというと気持ちの問題が大きく、そういった点にさえ我慢できれば特に問題ないとも言えます。

それよりも問題なのは、広告のHTMLソースをソースコード内に直接書き込む構造になっているので追加・変更・修正の度にエラー発生の危険性がある、という点です。

上記の広告を呼び出すショートコードは短く単純であるとはいえ、紛いなりにもプログラムであるため記述に少しでもミスがあれば意図した通りには動いてくれません

「else if以下をコピペして友達紹介バナーのHTMLソースを貼り付けるだけなのにミスするわけないだろう。」と思うかもしれませんが実際にやってみると結構ミスります。

例えば、else ifを新しく追加した際に友達紹介バナーを囲っている「'(アポストロフィ)」を誤って消してしまう、というのはやりがちです。

カスタマイズのために「テーマのための関数(function.php)」を弄ったことがある人なら分かると思いますが、このようなミスを犯すとサイトが正しく表示されないどころか真っ白な背景にエラーメッセージが表示されるだけなので結構焦ります。

しかも、一旦エラーになってしまったらWordPressの管理画面から修正することはできず、FTPソフトでfunction.phpをダウンロードした後に修正してまたアップロードし直すという手間がかかります。

作業前にfuction.phpのバックアップを取っておけば上記のようなミスを犯してもすぐに復旧可能(バックアップしたfunction.phpをFTPソフトでアップロードするだけ)ですが、だからといってミスそのものの発生を回避できるわけではないため根本的な解決にはなりません。

今回作ったショートコード

というわけで、前回のショートコードの問題点を解決するために

  1. 取り扱うお小遣いサイトの数が増えてもプログラムが長くならない
  2. サイトの追加・変更・削除をしてもエラーが発生しない

という特徴を持つショートコードを考えてみました。

具体的には以下の通りです。

また、呼び出すときの記述は以下の通りです。

動作としては、function.phpと同じ位置にある「ads」というフォルダの中に保存されている「moppy.txt」や「pointtown.txt」といったファイルから友達紹介バナーのHTMLソースを読み込んで表示する、という内容です。

従って、上記のショートコードを実行する際にはfunction.phpに上記ソースを貼り付けるだけでなく、

  1. function.phpと同じ位置に「ads」というフォルダを作る
  2. 各お小遣いサイトごとに「hoge.txt」を用意し、その中に友達紹介バナーのHTMLソースを貼り付ける
  3. 2.のファイル「hoge.txt」を1.の「ads」フォルダの中に入れる

という下準備が必要です。

逆に言えば、どんなにサイト数を増やしても「hoge.txt」さえ用意すれば良いだけであり上記のショートコードのソースの記述は一切弄る必要がありません。

また、変更・削除の際は「hoge.txt」の中身を書き換えたりファイル自体を削除すれば良いだけです。

従って上記のショートコードでは、

  • ショートコードのソースの見通しの良さが確保できる
  • 広告の追加・変更・削除の作業によるエラーは絶対に発生しない

というメリットを確保することができます。

ちなみに、上記だと各サイトにつき1つの広告しか出力できませんが、以下のようなショートコードならバナーとテキストの2種類を使い分けることができます。

呼び出すときの記述は以下の通りです。

ファイルは「hoge_banner.txt」にバナー広告を、「hoge_text.txt」にテキスト広告を保存する、という感じです。

まとめ

上記は広告1件を表示する度にファイルから読み込みが発生するので、無駄が多いです。

ただ、普通にサイトを表示するだけならファイル読み込みのオーバーヘッドは特に気になるレベルではないと思います。

気になるならPageSpeed Insightsなどで計測してみると良いかもしれません。

なお、現時点では今回改良したショートコードは当サイトへは未導入です。

というのも、ショートコードの置き換えや各広告の.txtファイルの作成が面倒だからです。

最初から導入しておいて取り扱うサイト数が増える度にファイルを1~2つずつ追加していくだけなら簡単なのですが、取り扱うサイト数が増えてしまった今になってやるのはかなり億劫なんですよね・・・


☆複数ポイントサイトのポイント数・還元率を比較検索できるサービスをはじめました。


比較検索サービス「調べ得(しらべとく)」を使ってみる!


  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です