Skin Select:

【WordPress】携帯電話表示で「wp-ohayo」を呼ばないようにしてみた

 約4週間ぶりにまともに休めています・・・が、呼び出しを食らう可能性もありますので、なるべく家事は早めに済ませておかなければならないという状況です。
 この記事を書き終わりましたら、雨ですけど洗濯します。

 このブログに対し、携帯電話対応WordPressプラグイン「Ktai Style」を導入しているということについては何度も申し上げていると思いますが、このプラグインを導入してから、実はずっと困っていたことがありました。

 コメント表示で、日付が表示されなくなったというものです。

 別のWordPressプラグイン「wp-ohayo」の影響によるものではということ自体は早期にわかっておりましたが、なかなかまとまった時間をとれず、対策に乗り出せずにいました。

 携帯電話で閲覧すると、時分と「wp-ohayo」特有(?)のアイコンのみが表示されます。[註1]

携帯電話シミュレータで閲覧した状態(「wp-ohayo」有効時)

 PCでの閲覧では現状通りとし、携帯電話やPHS(やPSP・・・)からの閲覧の時には、日時を表示させてアイコンを非表示にさせたいわけです。

 しかしこの修正、どこからどう手をつければよいのか迷いました。

 目的は一つ。しかしそのためのアプローチは何通りかあります。
 具体的には・・・

  • 「wp-ohayo」には一切手を加えず、「Ktai Style」を改変する。
  • 「Ktai Style」には一切手を加えず、「wp-ohayo」を改変する。
  • どちらのプラグインにも手をつけず、テンプレート・ファイルをどうにかする。
  • あきらめる(ぉぃ)。

あたりを思い浮かびます。

 しかし、いずれの方法も一長一短あります。

 まず、あきらめるか否か。
 あきらめられないからチャレンジしようとしているわけです。

 では、「Ktai Style」を改変することについて。
 プラグインの性格上、こちらを改変するのが一番理にかなったやり方だとは思います。
 しかし、このプラグインは頻繁にヴァージョン・アップがおこなわれているため、このプラグインの本体には手を加えたくありません。

 逆に、「wp-ohayo」を改変することについて。
 「wp-ohayo」はそもそも携帯電話での表示を想定したプラグインではなく(そうですよね?>hiromasa様)、こちら側を携帯電話で無効化するように対応することは理にかなっていません。
 私一人が使う分にはいいのですが、とても「wp-ohayo」の公開パッケージにこの対処法を加えてくれとは言いづらい。

 では、プラグインには手をつけず、テンプレートを改変するというのはどうか。
 実は、「Ktai Style」とともに、添付のテンプレート(洒落じゃないよ)も改変されています。
 しかし、2つのプラグインとこのテンプレートとをにらめっこしてみると、衝撃的な事実が判明しました。

 そう。「wp-ohayo」側で、WordPressの関数「get_comment_time()」で呼び出される内容が書き換えられているではありませんか!
 プラグインの最後のほうに、

add_filter('get_comment_time', array(&$wpohayo, 'rewriteCommentTime'), 999);

という箇所がありますが、これを見落としていました。
 これでは、テンプレートにいくら手を加えても意味がありませんし、「Ktai Style」側を改変するにしても作業が大がかりになってしまいそうです。

 というわけで、私は泣く泣く(?)「wp-ohayo」側を改変することにいたしました。

 といいましても、先述の

add_filter('get_comment_time', array(&$wpohayo, 'rewriteCommentTime'), 999);

という記述の直前に

if (!is_mobile()) {

を、直後に

}

を、それぞれ追加しただけですが(ぉぃ)。

 幸い、「Ktai Style」プラグインの側で、携帯電話での表示であるか否かを判別するための関数「is_mobile()」が用意されていますので、これを使わせていただきました。
 う~ん楽ちん(ぉぃ)。

携帯電話シミュレータで閲覧した状態(「wp-ohayo」無効時)

 まあ、私のように「Ktai Style」と「wp-ohayo」の両方を使っている人間はきわめてまれだとは思いますが、「wp-ohayo」に限らず、「is_mobile()」関数は幅広く応用できると思います。
 できれば、これ、特定のプラグイン依存ではなく、WordPress本体側に標準で取り込まれれば、プラグイン作者としては「モバイル表示か否かで処理を分けたい」という欲求を満たせるのではと思われますね。

 ・・・英語のできる方、是非ともこれについて、WordPress作者サイドに提案してみてくださいませ。 :grin:

 最後になりましたが、プラグイン配布元をご紹介させていただきます。

プラグイン配布元 @ WordPress Plugins/JSeries
Ktai Style
wp-ohayo

WordPress 2.2でつくる!最強のブログサイト―2.1/2.2対応


  1. ちなみに、「時分」が表示されているのは、表示するように当方の側でプラグインに手を加えたため。手を加えなければ時分すら表示されず、アイコンしか出てこない。 [戻る]

2個のコメント

  1. 2007/10/27 土曜日, 19:59:47 に投稿 | パーマリンク

    やはり wp-ohayo をいじるのが一番簡単ですよね。実は、wp-ohayo に対する Ktai Style/Mobile Eye+ 向けパッチを作って、hiromasa さんに送付して取り込んでもらうことを検討していました。でも、単に is_mobile で add_filter をオフにするのはつまらないので、朝/昼/夜に対応する携帯電話絵文字を出力するようなパッチを考えています。
    でも、add_filter の優先順位が「999」というのは、ある意味凶悪ですね ;-) せめて 20 ぐらいであれば、Ktai Style 側で優先順位 21 の add_filter を追加して、wp-ohayo の結果を削除することもできるのですが。

  2. 2007/10/27 土曜日, 22:11:21 に投稿 | パーマリンク

    朝/昼/夜に対応する携帯電話絵文字を出力するようなパッチを考えています。

     おお! それはすごく楽しみですね。
     あと、お天気も対応できるとうれしいですね(ぉぃ)。

     個人的には、いったん置き換えたものを元に戻すよりは、いっそのこと別の処理にしてしまった方がいいかなぁ、などと考えております。
     あるいは、WordPressが公式に「モバイル判別」用の関数でも採用してくれれば・・・。

1個のトラックバック/ピンバック

  1. 2007/11/10 土曜日, 13:33:07 に投稿 | パーマリンク

    [...] 【WordPress】携帯電話表示で「wp-ohayo」を呼ばないようにしてみた (2) [...]

関連記事

335903 pages viewed, 1778 today
53612 visits, 203 today
FireStats icon Powered by FireStats
このページの先頭へ