サポート » プラグイン » Ktai style PCサイトが表示されなくなった

  • 解決済 bosukete

    (@bosukete)


    お世話になります。
    普段から携帯を良く使うもので、Ktai Styleを非常に重宝しているのですが、wordpress2.9.1にアップグレードしてからトップページが表示されなくなりました。
    Ktai Styleも最新版1.8.1を使用しております。

    エラーが出たときのメッセージは

    Fatal error: Call to undefined function ks_header() in /home/sites/※※※/※※※/web/※※※/wp-content/plugins/ktai_style/themes/※※※/home.php on line 1.

    です。
    エラーが出る状況としては、
    Ktai Styleを使用してからしばらくは普通に表示されるのですが、だいたい半日後に上記のエラーが出てサイトが閲覧できなくなります。
    その場合は、直接ログインページ(wp-login.php)に行ってログインすれば、またサイトが表示されるようになります。
    テーマはデフォルトをすこしいじったものを使っておりましたが、現在はデフォルトに戻しております。
    wp-cacheなどは利用していません。
    (以前wp-super-cacheを使用しようとして失敗し、リモート上にadvanced-cache.phpが何故か削除出来ない状態で残っておりますが・・・)

    お手数かとは思いますが、よろしくご教示ください。

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • トピック投稿者 bosukete

    (@bosukete)

    ひとまずプラグインを再インストールして様子を見てみます。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    ちょっと原因が謎です。ks_header() などの Ktai Style 専用テンプレートタグは、携帯閲覧時にのみ有効になるようになっています。携帯でないデバイスが携帯用テーマを読もうとすると、こういう現象が発生します。

    WP-Cache とか WP Super Cache とかを使っていると、それが原因だろうと推測されますが、そうでないとすると、WP-Cron 動作があやしくなってきますね。つまり、WordPress が cron 動作を予約したときに携帯ページを見るように指定ていてい、それが後で動作しているのかもしれません。

    とりあえずの回避策として、ktai_style.php の 30-32 行目付近を以下のように変更してみてください。こうすると、Cron 動作のときは Ktai Style が無効になります。

    if ( defined('WP_INSTALLING') && WP_INSTALLING || defined('DOING_CRON') && DOING_CRON ) {
    	return;
    }

    当方もbosukete様と同様の症状に陥っております。
    WordPress2.8 + Ktai Style1.73 から
    WordPress2.9.1 + Ktai Style1.81 + WP Super Cache0.9.8
    に移行しての症状なので、WP Super Cacheやその残骸が怪しい気もします。

    私のほうでもbosukete様と同様の現象が発生しています。

    WordPress2.9.0 + Ktai Style 1.80
    WordPress2.9.0 + Ktai Style 1.81
    WordPress2.9.1 + Ktai Style 1.81

    上記の三パターンで発生したことを確認しました。
    テーマは未編集、WP Super Cacheも未導入での発生です。

    そのときに発生したエラーメッセージが以下です。

    [06-Jan-2010 20:11:54] PHP Fatal error: Call to undefined function ks_header() in /home/**/**/**/**/wp-content/plugins/ktai_style/themes/default/single.php on line 1

    今回は single.php での発生でしたが、 home.php で発生する場合もありました。

    サーバはさくらのレンタルサーバ、スタンダード版です。

    私も同じ症状です。
    とりあえずdefaultのテーマを削除しました。
    今のところ症状は再現していませんが・・・。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    WordPress 2.9 から、テーマのアップデートを確認するとき、現在使用可能なテーマをキャッシュしているようです。まれに「現在のテーマをキャッシュする」動作が携帯閲覧中に発生してしまうようです。

    上に書いたように、ktai_style.php に CRON 中は動作しない改造をすると改善される可能性があります。症状が起きている場合は、これを試してもらえると助かります。

    根本的な修正方法は、Ktai Style が TEMPLATEPATH, STYLESEETPATH 定数を携帯向けに変更するのをやめることです。これは Ktai Style 1.00 からの仕様を変更することになり、大幅な改造になりそうです (変更すると Ktai Style 2.0.0 を名乗る必要があるぐらい)。ただ「PC テーマの画像リソースを使いたい」という要望があって、それを実現するには、STYLESHEETPATH とかの定数をいじらない方がいい気がしています。もうちょっと検討させてください。

    トピック投稿者 bosukete

    (@bosukete)

    lilyfan様、早速の対応ありがとうございます、助かります。
    修正はかなり大変そうですね。
    とりあえず上記の書き換えをして様子を見てみます。

    ありがとうございました!

    昨日の夜からlilyfan様の回避策を設定して様子を見てみましたが、やはり同様のホワイトバック画面が発生しました。

    WordPressのバージョンは2.9.1、Ktai Styleのバージョンは1.81でした。

    先の書き込みをうかがう限り、検討が必要とのことですので、また方針が決まりまして、新しいバージョンになりましたら再度、試させて頂きます。

    お忙しい中のご対応、ありがとうございました。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    お試しありがとうございます。DOING_CRON を検出してもダメとすると、もうちょっと工夫が必要ですね。

    直接的には wp-includes/themes.php で get_themes() 内部の set_site_transient()を実行しているのが原因です。これが携帯画面モードで呼ばれると、不整合が発生します。set_site_transient() 自体を制御することは困難です (むりやり $_wp_using_ext_object_cache を true にしてもいいけど、それは明らかに不具合が出そう)。

    get_themes() はけっこういろんな箇所から呼ばれるんですが、少なくとも携帯出力時は呼んでない *はず* です。もうちょっと調査してみます。

    わたしも、同じ症状がでました。

    サーバーは、さくらのレンタルサーバ、スタンダード版です。

    テーマを、cmpact→default→cmpact とガチャガチャと変えたら一応なおりましたが、様子をみています。

    不安です・・・

    lilyfanさん、よろしくお願いいたします。

    wordpress2.9, Ktai Style 1.81へアップグレード後に、まれに同様の症状がでるように
    なりました。
    管理画面に直接アクセスしてテーマを変更すると復旧するのですが。

    wordpress2.9.1, Ktai Style 2.0.0-beta1 にアップデートしてからは
    、今のところこの問題は起きていません。

    私は、iPhone用テーマ WPtouch iPhone Theme http://wordpress.org/extend/plugins/wptouch/ も使用しているのですが、こちらでも
    worpress2.9以降、PC閲覧時にiPhone用テーマがまれに表示される問題が起きています。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    WPtouch でも問題が発生する、というのは貴重な情報ですね。WPtouch のソースコードを読んでみて研究してみます。

    Ktai Style 2.0.0 は近日中に beta2 を出して、今月末ごろには正式版に移行しようと考えています。

    すみません、バージョンを書き忘れました。
    wptouch の最新版は1.9.7.6なのですが、現在1.9.5を使用しています。
    changelogを見ると、1.9.6でwp2.9に対応したようです。

    本家のフォーラムにもこの問題が報告されているようです。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    最新の 1.9.7.6 のコードを見てみても、stylesheet, template, get_theme_root, get_theme_root_uri などのフックは使っています。ですので、同じ問題が発生する可能性は残っていますね。これらのフックを使ったまま回避するのは、かなり困難なはずで、WPtouch 側のやり方も気になるところです。

    debug_backtrace() を使ってフックを呼び出している関数を調べれば、「この関数から呼ばれたときはフックしない」などの手法が可能なんですが、それでも副作用の心配はありますから。

    トピック投稿者 bosukete

    (@bosukete)

    バージョンアップお疲れ様です。
    2.0xになったのですね!
    早速使わせていただきます。ありがとうございます!

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • トピック「Ktai style PCサイトが表示されなくなった」には新たに返信することはできません。