Gem-one adIT

~ホームページ作成,システム開発のGem-one adITです~[スマフォ版](PC版へ)


あなたのそばにITを。
トップページ > HOWTO > wordpress

[WordPress]ウィジェットに表示・非表示ルールを付与する widgetRuleTagプラグインリリース

分類 :

権蔵です。
本日は、Wordpressのpluginを作成しましたので、そのご紹介です。

widgetRulteTag

ウィジェットごとに表示・非表示制御

配置するウィジェットに「表示ルール」を指定出来ます。
そのルールに沿って、ウィジェット表示を制御出来ます。

例えば

  • モバイル版では、表示させないウィジェットを配置したい
  • 朝だけ(昼だけ、夜だけ)表示するウィジェットを配置したい
  • 毎週金曜日に表示させるウィジェットを配置したい
  • 地域限定に表示させるウィジェットを配置したい
  • フラッシュが動く場合のウィジェットを配置したい
  • その他..

あなたのアイデア次第です。
ルールがコードで記載出来るなら、何でも制御可能です。
また、複数条件のOR/ANDも制御可能です。
例)
・「モバイル端末」で「フラッシュが動かない」場合はウィジェットを表示する
・「モバイル端末」か「ガラケー端末」のどちらかであれば、ウィジェットを表示しない

機能

RulteTag
概要を申し上げると、このような機能で構成されてます。

  • 管理画面のウィジェットで、「表示・非表示ルール」をタグで指定
  • 「表示・非表示ルール」関数を自身のテーマで定義し、ウィジェットの表示非表示をコントロール

表示・非表示ルールタグ

管理画面のウィジェット配置にて指定します。
仮に、「スマートフォンの場合にのみ表示するウィジェット」というルールを想定します。このルールを「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条件を使います。
どちらか一方が条件を満たす時に表示される設定です。

ダウンロード

widgetRulteTag

  • オウンリスクでご利用願います
  • 著作はGem-oneにあります
  • 個人でのご利用は、ご自由にお使い下さい☆
  • 法人利用、もしくはお仕事でのご利用したい場合はまずはご連絡くださいませ♪

Gem-one widget RuleTag
Version 0.11
Author gonzo/Gem-one
Author url: http://blog.gem-one.com/gonzo/
changelog:不具合対応(or条件指定不備対応)

download

Gem-one widget RuleTag
Version 0.1
Author gonzo/Gem-one
Author url: http://blog.gem-one.com/gonzo/

download

wordpressのAdRotateを利用している方へ

分類 :

Gem-oneの権蔵です。
お疲れ様です。

本日公開されたWordpressのAdRotateプラグイン(Ver3.9)ですが、AdRotateで作成した広告がすべて表示されなくなる不具合がありますので、アップデートを避けたほうが無難です。。アップデートする場合は、対策を施してください(2014.1.14追記)
本家、wordpressのAdRotateフォーラムにも同じ問い合わせがありますので、しばらく不安な方はまった方が良いと思われます。
http://wordpress.org/support/topic/unable-to-change-ad-scheduling-end-date

■不具合内容

  • AdRotate経由で掲載されていた広告がすべて非表示になる
  • AdRotateで設定している「掲載開始日」「掲載終了日」が1970/1/1で固定される。変更も不可。これにより広告が非掲載になる

■対処
不安な方は、今回の更新はパスし、次のバージョンアップを待ってください。

(2014.1.13追記)
下記の手順で、広告が出るようになります(掲載開始、掲載終了日時が元に戻ります)。

  1. AdRotateプラグインを停止する
  2. AdRotateプラグインを開始する

上記のようにプラグインの再起動をすれば、日付が戻るようです。

wordpressをご利用の皆様、お気をつけくださいませ。

WordPressのプラグインをインストールしたら画面が真っ白

分類 :

wordpress-logo-stacked-rgbこんばんは!
Gem-oneの権蔵です。

いやはや最近、サボり気味で申し訳ありません!
今日は1つハウツーものをご紹介。
尚、ご紹介する方法での対処で失敗しても、責任は持てませんので予めご了承を!ご自身の責任の範疇で(オウンリスクで)行ってくださいね。

wordpress(ワードプレス)を運用されている方、こんな症状でたことありませんか?

プラグインをインストールしたら画面が真っ白

お友達やブロガーの方から良さそうなプラグインを紹介してもらい、自分のサイトにもインストールしようと頑張ったら、「画面が真っ白になってしまった」という経験ありませんか?
wordpressのバージョンを上げたら、同じように「画面が真っ白になってしまった」なんてこともあります。

あの時に感じる焦りってすごいですよね。
お客様のブログだったりすると、もう尚更です。

白くなる原因3つ

大抵、画面が真っ白くなる原因は、下記の3パターン。

  • wordpressのバージョンとプラグインが合ってない
  • wordpressのバージョンとテーマが合ってない
  • DB障害

テーマがあってない場合は、管理者画面から異なるテーマを選ぶか、現状のテーマを修正することで対処出来ます。

今回は、1つ目のご紹介した「プラグインが合ってない」場合の対処をご紹介!

白くなった時の対処方法

このような流れで原因究明を行い、対処を施します。

作業は単純明快です。

  • プラグインを全て止める
  • 原因のプラグインを探る
  • 発見し次第対処する

これだけです。

プラグインを全て止める

方法は下記の2通り。

  • 管理画面へ行って、プラグインを全て停止する
  • wp-content/plugins/ 以下のディレクトリを読み書き不能にする

真っ白くなった場合、管理画面も真っ白でみえない場合が多いですが、管理画面が見られる場合は、画面操作でプラグインを全部停止してください。
管理画面が真っ白な場合は、後に紹介した方法をお願いします。
UNIXの経験などがあれば、後に紹介した「読み書き不能にする」方がらくですね。
ターミナル使えるのであれば、「wp-content/plugins/」ディレクトリへ移動して、

chmod 000 ./*

でOKです。
FTPであれば、plugin直下のディレクトリのアクセス権限を、すべて無くしてください。「無くす」とは、実行や読み書きが出来ないという状態です。ソフトによって違いますが、このような画面が出てきます。

パーミッション

パーミッション


RWXとなっているチェックボックスがありますが、これらを全て「チェックされていない状態」にしてくださいませ。

これでプラグインが停止します。

サイト表示を確認する

一度、サイトをブラウザでみてみてください。ただ、いつもの雰囲気ではないです。
これはプラグインを全部停止しているためですので、ある意味「正常」ですのでご安心を。

ここでも真っ白い画面のままだという話であれば、

  • 操作を間違えてしまった
  • DB障害
  • wordpress自体がちゃんと動いていない

などの理由によるものです。
これは素直に、本業の人に相談した方がいいです。

「読み書き不能」を戻す

管理画面でプラグインを全停止した方は読み飛ばしてください。

プラグインを全停止した後、ブラウザでブログを確認したのち、この操作をして頂きます。
FTPやターミナルで「000」の状態(チェックを外すこと)にした方は、再度、復帰する必要があります。
今度は、「705」状態にしてください。

chmod 705 ./*

でOKです。FTPで行う方は、

パーミッション

パーミッション


上記のようなチェックを入れて下さいませ。

※一度、パーミッションを000にした後、ブラウザでサイトを見た時点で、プラグインが「全停止」されます。この操作でパーミッションを戻していますが、プラグインは停止のままです。

原因のプラグインを探る

単純作業です。

  • 必要なプラグインを1つ有効にする
  • 正常にサイトが表示できるか確認

これを、必要なプラグインすべてに対して行います。
どこかで「画面が真っ白」になるところが出てきます。

真っ白になったら、再度、そのプラグインを停止しましょう。
管理画面から行けなかったら、もう一度「プラグインを全て止める」の方法で停止すればOKです。
そして、また管理画面に戻り、プラグインを有効にしていきます。
今度は、「原因となったプラグイン」を飛ばして、他のプラグインの動作を見てくださいね。

この操作で、「どのプラグインが原因か」が突き止められます。

対処する

対処方法には3つあります。

  • プラグインをアップデートする
  • そのプラグインの動作を諦める
  • そのプラグインの原因をプログラム修正で直す

とりあえずは、アップデートが出来るかを確認し、出来なければ諦めるという感じですね。
諦める時は、「似たようなプラグインを探してみる」のもいいです。
巷には沢山プラグインがありますので、是非トライしてみてください。

いかがだったですか?

やり慣れない方は特にそうだと思いますが、この手の作業は、本当「ドキドキ」との戦いです。動くのかな、動くのかなと「ドキドキ」しますよね。
そして、お気に入りのプラグインが動かないということが分かると、とてもゲンナリしてしまいます。
でも、少しインターネットで探すと、似たようなプラグインが見つかることもあります。また、動かなかったプラグインが、後日になって動くようになる場合もあります(wordpressのバージョンがあがったり、プラグインのバージョンがあがって動作するようになったり)。

気落ちせずに、気長にまってましょ♪

プログラミング出来る方は、どうぞお手製のプラグインで代用したり、ハックしたりするのもありですよ!

少し長めのブログ、失礼いたしました♪
参考になれば幸いです☆
ではでは!

次ページへ »