Ktai StyleをVer. 1.80にバージョンアップしようと思い、WordPressのpluginsフォルダに放り込んだとたん、WordPressの表示が真っ白に。。ひー。。。
あーだこーだトライ&エラーを繰り返した結果、なんとなく解決法にたどり着いたので記録しておきます。
KtaiStyleのディレクトリの名前を、前のVer. で使っていたのとは異なる名前にしたところエラーが出なくなったので、(なんとなく気持ち悪い感じはあるものの)しばらくそれで使っていました。ですが、ある日の友人からのメールにこんな事が書かれていました。
「icoroはアラビア圏を対象に今度から配信するんですね。」
いったいなんのこっちゃ?と思ったのですが、添付されていた画像で激しく理解。

うぉ…文字化けしてる…
てか、これ、携帯での表示もWP Super Cacheでキャッシュされちゃってる?Twitterでも「表示が変」というつぶやきが(@akatan3 バグレポート、Thanksです!)。
非常事態宣言!
というわけで、ググってみたら同じような症状が発生している人がいました。
分岐する記述を記載すると、500エラーをはき出したため、wp-super-cache を wp-cache に変更するも現象改善せず。
mode-n – 検証のお願い
どうもKtai StyleとWP Super Cacheを一緒に使う場合に問題があるようです。んー。
解決方法
あーだこーだといろいろ試してみた結果、とりあえず、以下のようにすることで問題が解決しました。別の問題が発生していそうなので、確実に解決した保証はないです。。ご了承ください。。
問題の原因はpatch-wpcache.phpの39行目の部分のようです。
if (ks_option('ks_theme_touch')) {
$ks_mobile_agets += array('iPhone;', 'iPod;', 'Android');
}
この部分を以下のように書き換えることで解決しました。というか、エラーが出なくなりました。
if(function_exists('ks_option')) {
if (ks_option('ks_theme_touch')) {
array_push($ks_mobile_agents, 'iPhone;', 'iPod;', 'Android');
}
}
考察
直した部分は以下の3点です。
- KtaiStyleの関数「ks_option」が存在しない場合があるようで、関数が存在する場合にだけ処理を行うようにした。
- 「$array += array(‘element’)」という方法では配列の追加が出来ない?ようだったので、array_push関数を利用して配列を追加するようにした。
- 「$ks_mobile_agents」と書くべきところが「$ks_mobile_agets」となっていた。(「n」が抜けています。しばらく気が付きませんでした。。)
Ktai Styleのディレクトリ名を変更すると500エラーが出なくなったのは、/wp-content/wp-cache-cofig.phpに追記した以下のコードが無視されるためでした。追記した事なんてすっかり忘れていました。。
if (file_exists(ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php')) {
include ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php';
}
で、このコードが読み飛ばされていたために、携帯での表示もキャッシュされるようになっていたようです。
不自然な事にはやっぱりちゃんと原因がありますね。。
関連リンク
ゼロから学ぶ はじめてのWordPress 第2版 [バージョン6.x対応] 簡単にできるWebサイト制作入門
- メーカー:SBクリエイティブ
- カテゴリ:Kindle版
- 発売日:2024/12/01