情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

WordPress:モバイルだけプラグインの効果を停止する方法(強引)

WordPress (80) WordPressプラグイン (26)

Mobile環境でのみ、jQueryを読み込まないようにしようと、remove_actionなどで対処していたのですが、それだけでは上手く取り除くことが出来ず、最終的にプラグインを書き換えて、mobile環境からのアクセスの場合だけ、プラグインを無効化するようにしました。今回は、簡単なことですがその方法を紹介します。

プラグインが最初に読み込むファイル

プラグインの編集画面に行くと、まず最初に「Plugin Name」などが大量にコメントアウトされているファイルが表示されると思います。

それがプラグインが呼び出されるファイルであり、そのファイルの冒頭で処理を停止してしまえば、事実上プラグインは無効化された状態になります

mobileかどうかの判定

比較的新しいWordPressなら、mobileかどうかを判定する関数wp_is_mobileが簡単です。今回はこれを利用しました。

方法

さきほど言ったプラグインファイルの、冒頭のコメント終了直後に次のPHPコードを追加してあげます。

if ( function_exists('wp_is_mobile') && wp_is_mobile() ) { return; }

私はこの方法で、Fancyboxという、画像を綺麗に拡大表示するためのプラグインをモバイルでだけ停止して、jQueryライブラリの読込を削減しました(実際やったのはだいぶ前で、今は違います)。

ひとこと

問題は「is_wp_mobile()」と、「WP Super Cacheプラグイン」との共存なのですが、現状、モバイルからのアクセスもその他のアクセスも、最初にキャッシュされたほうが表示され続けてしまう問題を回避できていません。うーん、がっつりWP Super Cacheのソースコードを読もうにも、他のプラグインに比べて複雑で規模が多くてちょっと大変そうです。

(↑書いたのがちょっと前)今となっては、WP Super Cacheを使わずに、Nginxをキャッシュサーバとして使っています。

コメント(0)

新しいコメントを投稿