[WordPress]ウィジェットに表示・非表示ルールを付与する widgetRuleTagプラグインリリース
権蔵です。
本日は、Wordpressのpluginを作成しましたので、そのご紹介です。
ウィジェットごとに表示・非表示制御
配置するウィジェットに「表示ルール」を指定出来ます。
そのルールに沿って、ウィジェット表示を制御出来ます。
例えば
- モバイル版では、表示させないウィジェットを配置したい
- 朝だけ(昼だけ、夜だけ)表示するウィジェットを配置したい
- 毎週金曜日に表示させるウィジェットを配置したい
- 地域限定に表示させるウィジェットを配置したい
- フラッシュが動く場合のウィジェットを配置したい
- その他..
あなたのアイデア次第です。
ルールがコードで記載出来るなら、何でも制御可能です。
また、複数条件のOR/ANDも制御可能です。
例)
・「モバイル端末」で「フラッシュが動かない」場合はウィジェットを表示する
・「モバイル端末」か「ガラケー端末」のどちらかであれば、ウィジェットを表示しない
機能
- 管理画面のウィジェットで、「表示・非表示ルール」をタグで指定
- 「表示・非表示ルール」関数を自身のテーマで定義し、ウィジェットの表示非表示をコントロール
表示・非表示ルールタグ
管理画面のウィジェット配置にて指定します。
仮に、「スマートフォンの場合にのみ表示するウィジェット」というルールを想定します。このルールを「nomobile」というルール名で定義することとします。
管理画面で指定するのは、上記図のように、制御したい配置したウィジェットに「nomobile」と指定し「保存」を押すだけです。
表示・非表示ルール関数
次に、上記で定義した「ルール」を関数で定義します。ご自身のテーマのfunction.phpの中に、このルールを記載します。
先ほど定義したルールは「nomobile」なので、ご自身のfunction.phpの中に「gemone_widgetTag_nomobile()」と関数を定義してください。
例えば、このように定義します。
function gemone_widgetTag_nomobile( $instance ) { if ( スマートフォン? ) { /*スマートフォンならwidgetを表示する*/ return $instance; } else { /*違うならwidgetを表示しない*/ return null; } }
戻り値で「表示・非表示」を指定することが出来ます。
- 当該ウィジェット表示する → 戻り値を $instance にする
- 当該ウィジェット非表示にする→ 戻り値を null にする
尚、プログラムコード中に「スマートフォン?」と書いてありますが、もちろん、スマートフォン判定ロジックを入れて下さいね。
冒頭で紹介した例
冒頭で紹介しました「例」ですが、もし、実際にコードに興す場合は、「例で記載したルール」を先ほどの紹介した関数の中でif文で興せば良いだけです。
毎週金曜日にだけウィジェットを出力
1)管理画面のウィジェットのところでeveryFridayを指定
2)下記のコードをfunction.phpに記載する
function gemone_widgetTag_everyFriday( $instance ) { if ( 5 == date('w') ) { /*今日は金曜日?*/ /*金曜日ならwidgetを表示する*/ return $instance; } else { /*違うならwidgetを表示しない*/ return null; } }
ほぼ先ほどのコードのままですよね。
アイデア次第でなんとでもなりますよ♪
応用
冒頭でご紹介しましたが、ルールは複数指定することが出来ます。
先ほどの例でいうと、
- スマートフォンの場合に表示する(nomobile)
- 毎週金曜日に表示する(everyFriday)
を併せることが出来ます。
複数指定する場合は、管理画面のウィジェットのところで、「nomobile,everyFriday」と半角カンマ区切りで二つ並べてください。
複数指定した場合は、Rule設定を下記に従って選択してください。
AND条件
「スマートフォンの場合」で、かつ「金曜日」である時
にウィジェットを表示するような時、AND条件を使います。
指定した条件すべてを満たさないと駄目な時に使ってください。
OR条件
「スマートフォンの場合」か、「金曜日」である時
に表示するような時、OR条件を使います。
どちらか一方が条件を満たす時に表示される設定です。
ダウンロード
- オウンリスクでご利用願います
- 著作はGem-oneにあります
- 個人でのご利用は、ご自由にお使い下さい☆
- 法人利用、もしくはお仕事でのご利用したい場合はまずはご連絡くださいませ♪
Gem-one widget RuleTag
Version 0.11
Author gonzo/Gem-one
Author url: http://blog.gem-one.com/gonzo/
changelog:不具合対応(or条件指定不備対応)
Gem-one widget RuleTag
Version 0.1
Author gonzo/Gem-one
Author url: http://blog.gem-one.com/gonzo/
Pingback:wordpressで使えるwidgetRuleTagプラグインを作りました | Gem-one 権蔵のちょろっとお時間頂戴