ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

WPTouch(フリー版)をAndroid4.1に対応させるには

May 30 2013

XPERIA ULに機種変更したという事はOSはAndroid 4.1。
このハナモゲラボを見てみたら、なんかCSSが読み込まれてないプレーンテキスト状態。
いや、それどころかヘッダーとフッターも読み込まれてない様子。

前回借りた代替機種であるGALAXY S2はAndroid4.0。
その機種は普通に見れていたので、これはAndroid4.1からの現象と判断。
色々調べてみる事にする。

挙動からどうもこれは機種判別の際になんぞ不都合があるんだろうな・・と
環境変数あたりの事を見てくとHTTP_X_REQUESTED_WITHの値が
Android4.1からはセットされておるとの事。
WPTouchはこの値がなければ通常のアクセスと判断してヘッダーとフッターを出力するが
値が入っているとAjaxからのアクセスと判断されてヘッダーとフッターを出力しないそうで。

という事はWPTouchのテーマファイルになんぞ手を加えればいいのかな、と
海外のフォーラムを探してみるとありました

WPTouchプラグインの”themes/default/page.php”, “themes/default/index.php”
そして “themes/default/single.php”の3つにこれを書き加えればOKです。


<?php global $is_ajax;
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$is_ajax=true;
}
else {
$is_ajax=false;
}
if (!$is_ajax) get_header(); ?>

これで正常に表示されるようになりました。
しかし、御存知の通りWPTouchのフリー版はアップデートすると
テーマファイル内部も書き加えてしまうので注意が必要。

んー、そっかこれをfunction.php内にどないかして埋め込めばいいのかな?
とりあえず今はこの方法で対処しておく事にします。

それにしてもブラウザじゃなくOSの仕様の違いまであるとは・・・
いつまでたってもこういう作業からは開放されないんですなあ、我々制作者は。

| Posted in Wordpress | Comments (0)

Post a Comment

※メールアドレス、URLは任意入力です。メールアドレスは入力しても公開されません。

« Apr 2017 May 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31