最近何かと不調続きなSa・Gaがお送りいたします(爆)。
表題の件、結論から申し上げますと「失敗」でした。
表題の通り、先ほど「WPhone」というプラグインの導入を試みました。
実際に私がこのブログに導入しようとしておりましたのは、日本語ファイル同梱版だったりします。
- 関連記事
- WPhone @ WordPress
- WPhone1.4.0ja @ PearBlog
横文字が苦手なボクちゃんでも読める平易な英語とヴィジュアルなツリー構造が記された「readme.txt」ファイルを読みながら、通常のプラグイン同様ファイル一式を「wp-content/plugins/」フォルダに設置。そして管理画面からプラグインを有効にしようとした・・・までなよかったのですが・・・。
Fatal error: Cannot redeclare is_mobile() (previously declared in /(中略)/wp-content/plugins/ktai_style/ktai_style.php:37) in /(中略)/wp-content/plugins/wphone/wphone.php on line 808
プラグインの有効化に失敗してしまったのでした!
理由については、上記のエラー・メッセージに事細かに記されています。
要は、「wp-content/plugins/wphone/wphone.php」の808行目[註1]で宣言されている「is_mobile()」という関数が、別の携帯電話対応プラグイン「Ktai Style」のモジュール「wp-content/plugins/ktai_style/ktai_style.php」の37行目[註2]で宣言されている同名の関数とバッティングしてしまっている訳なのですね。
う~ん困った。
「WPhone」も試してみたいし、かといって「Ktai Style」も安定して動いている以上は捨てたくないし。
まあ、手っ取り早い方法としてはどちらかのプラグインの「is_mobile()」関数の名称をごっそり書き換えてしまうことなのですが、ヴァージョン・アップのたびにそんなことやるのは手間がかかりますね。
それも、1ファイルですべてが完結しているプラグインであればまだよいのですが、どちらもそうはなっていませんからねぇ。
・・・これだから、以前申し上げたように、「is_mobile()」関数はWordPress本体側に取り込んでもらいたかった訳なんですねぇ。嗚呼・・・。
できれば、これ、特定のプラグイン依存ではなく、WordPress本体側に標準で取り込まれれば、プラグイン作者としては「モバイル表示か否かで処理を分けたい」という欲求を満たせるのではと思われますね。
・・・英語のできる方、是非ともこれについて、WordPress作者サイドに提案してみてくださいませ。
![]()
日本語ファイル同梱版を配布されている「PearBlog」さんの記事「WPhoneいいね」からはなかなか好感触が伝わってきましたので、なおさら残念です。
何とかして、「WPhone」と「Ktai Style」を共存させたいのですが、識者の方、是非ともお知恵を拝借したいと思います。よろしくお願いいたします!
・・・やっぱり、ソースコード書き換えないとダメ?










5個のコメント
うぎゃーー。Ktai Style での iPhone, iPod touch 対応は、WPhone があるから不要と思っていたのですが、両方が両立できないのは困りますね。
Ktai Style の方は、すでに is_mobile() 関数が存在したら関数を作らないようにしていますが、Ktai Style の方が先に読み込まれるので、そういうチェックも無意味になっています。
WPhone の動作を確認して、両立できる方法を考えてみます。安易な方法としては、ウチの方を is_ktai() にしてしまうか……
Sa・Gaさん、おひさです^^
is_mobileがバッティングする件、デバック環境で単体で試していたので気がつきませんでした。is_mobileが他のプラグインとどういう連携しているか詳しくないのですが、安易に書き換えた版をおいておきました。Ktai Styleや、Mobile Eye+とかすでに使っている方はこれで動くんじゃないかと。お試しを~^^
大金はたいた投資が無駄になってしまい途方に暮れているSa・Gaです(ToT)。
yuriko様、チェックありがとうございます。
ishizaka様、ご無沙汰しております。
冒頭のようなとんでもない状況に陥っており、まだ書き換え版についてはチェックしておりません。日中にゆっくり確認してみたいと思いますので、しばらくお待ちくださいませ。
とりあえず、Ktai Style 自身が is_mobile() を使う部分は、その実体であるメソッド関数を呼び出すように変更しました。また、plugins/wphone が存在したら is_mobile() を定義しないようにしました。
これらの変更は次期バージョン (管理機能つき) に入れ込みましたので、それまでは WPhone の修正版で対応していただればよいかと。
やっとVistaを起動できた(謎)。
とりあえずは、ishizaka様の修正ヴァージョンを適用させていただきました。
実は若干の手直しが必要でして、「
wphone.php」806行目の記述で「is_mobile」となっている箇所を「is_mobile_wp」に変更させていただきました。こうしないと、「Ktai Style」起動時に「
is_mobile_wp」関数が定義されなくなってしまいますので(爆)。後ほど、別記事を仕立ててピンバックを投げさせていただきます。
・・・やっぱり、WordPress本体側に、モバイル判別関数は絶対に必要だと思いますね。うん。
1個のトラックバック/ピンバック
[...] 日本語化もされているので導入は簡単そう、なんだけど、こちらのブログの記事を見ると今使用しているプラグイン、“Ktai Style”とどうやらバッティングしてしまう模様・・・ [...]