「WPtouchをAndroid 4.1 Jelly Beanに対応させてみる」で、テンプレートを修正して対応させてみましたが、WPtouchはアップデートすると修正したテンプレート、スタイルシートが消えてしまうので、アップデート対策としてコード化してみました。
WPtouchは、HTTP_X_REQUESTED_WITHに値がセットされているかどうかでAjaxの判定をしているので、HTTP_X_REQUESTED_WITHにxmlhttprequest以外の値がセットされていた場合、HTTP_X_REQUESTED_WITHをunsetしてしまえばWPtouchのテンプレートを修正しなくてもAndroid 4.1で正常に表示されるようになります。少し強引な方法かもしれませんが、現状ではこの方法で影響を受けるのは元々正常に表示されないAndroid 4.1によるアクセスのみなので問題ないと思います。
下記のコードを、function.phpなどに記述します。
1 2 3 4 5 6 7 8 | function wptouch4jb() { global $wptouch_plugin; if(isset($wptouch_plugin) && $wptouch_plugin->applemobile === true && $wptouch_plugin->desired_view == 'mobile') { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') unset($_SERVER['HTTP_X_REQUESTED_WITH']); } } add_action('init', 'wptouch4jb'); |
これでWPtouchがアップデートされても、テンプレートを修正することなくAndroid 4.1でも表示されると思います。本当は、次回のアップデートできちんと対応してもらえると助かるんですけどね。
プラグイン化してみましたので、必要な方はご利用ください。