先日当ブログに「WordPress 2.5.1」を適用したのですが、どうもそのあたりから、携帯電話対応プラグイン「Ktai Style」での記事編集に失敗するようになってしまいました。
具体的には、下記の手順を踏んだときにPHPのエラーが出力されるようになってしまったということです。
- 携帯電話で管理機能にログイン。
- 「投稿管理」画面に移動。
- 任意の記事を選択して、編集画面に移動しようとする。
- エラー画面が表示される…
また、「投稿作成」も行えなくなっているようです。
いずれのケースでも、PHPのエラーでによると、「admin/edit-form.php」の89行目で「get_nested_categories()」関数の呼び出しに失敗しているとのことです(Ktai Style 1.32の場合)。
ちなみにこの関数ですが、WordPress本体側の「wp-admin/includes/template.php」の136行目から開始されています(WordPress 2.5.1 の場合)。
はじめ、Ktai Style 1.32のバグなのかとも思ったのですが、WordPress 2.5.1を入れたのも最近のことであり、原因の切り分けを出来ておりませんでした。
実はまだ完全には切り分けられていないので中間報告レヴェルですが、結論から申し上げますと「Ktai Style」は「シロ」っぽいです。
「Ktai Style」の以前のヴァージョンでは確実に編集を行えておりましたので、試しに1.31に戻してみて同じようなことをしてみたのですが、やっぱりPHPエラーで記事編集を出来ませんでした…。
WordPressでは、2.5から2.5.1になるときに大幅な修正が加えられたのですが、もしかしてその影響で「get_nested_categories()」関数を直接たたけなくなった、ということなのでしょうかねぇ?
あまりにコードがワケワカメで、どこからどのモジュールをincludeしているのかさっぱり理解できていません…。
ちなみに、少なくとも現時点では、本件に関する不具合は「Yuriko.Net」には上がっていないようです。
…まさか俺の環境だけってことはないよね!?!?











4個のコメント
ウチでは、テスト環境、本番環境ともに問題ないですね。単純にアップグレードにミスっている可能性があるので、再度 2.5.1 のファイル群を上書きインストールしてみてください。
wp-admin/includes/*.php 群は、wp-admin/includes/admin.php から呼ばれていて、過去との互換性を保つため、wp-admin/admin-function.php が wp-admin/includes/admin.php を呼んでいます。この連鎖が切れると、関数が見つからなくなるので、一部ファイルの転送に失敗している可能性がありそうです。
残念ながら私の環境(ここと「週刊 e217.net」の両方とも)では、ご指摘の通りWordPress 2.5.1のファイル群を再度上書きインストールしても無駄でした。
もしかして「.tar.gz」のほうをダウンロードしたのが悪いのかと思い、「.zip」のほうで入れ直してみましたが、全く状況は変わりませんでした。
で、ソースを見直してみたのですが、本文中で申し上げた「
wp-admin/includes/template.php」とやらで、関数「get_nested_categories()」が見あたらなくなってしまいました…。# ついでにいうと、2.5.1のパッケージそのものに
# そんな関数何処にも含まれていなかった(!)。
昼間見たのは幻だったのか?
間違えて、開発環境の別のプロジェクトの中身を見て、このようなことを申し上げてしまったのかもしれません。
…では何故、ゆりこ様のところでは動いているのか、不思議ですねぇ。
…しばらくはおうちに帰るまで編集はあきらめるか。とほほ。
再度調査してみたところ、ウチでは「正しく 2.5.1 にアップグレードできない」ことが判明しました。wp-admin 内部の更新が甘かったようです……。
で、きちんとアップグレードしたところ、確かに「投稿更新で画面描画でエラーになる」ことが判明しました。原因はまさに
get_nested_categories()が存在しないことです。内部 API を勝手に使う方が悪いのですが、0.0.1 のアップグレードで消してしまうとはけしからんです!!早めに修正版を出したいと思いますが、どう修正すればいいか、悩むところです。
get_nested_categories()関数の有無で動作を変えるのがラクですが、存在しないときの代替コードをどうすればいいか、よく分かりません (2.5 時代の関数をそのままコピペして動くとは思えないし)。というか、WordPress はさっさと PHP5 専用にして、内部 API は
private修飾子をつけてもらいたいものですすみません。どうやらこちらのほうにトラック・バック(ピンバック?)を送っていただいたようですが、何故か記事に反映されておりません。
「Simple Trackback Validation」プラグインではapprove、つまり承認扱いになっているはずなのですが、「Spam Karma 2」プラグインの段階で、スパム扱いにも承認扱いにもなっておりません。
DBにも残っていないようです…。
もしかしたら、先日ご教示いただきました「内容が短いトラバを拒否するプラグイン」の改造にしくじった可能性もありますので、先ほど一時的に当該プラグインを無効化しました。
もし差し支えなければ、トラック・バックを再送していただけると助かります。
申し訳ありません。
で、本題ですが…
今回はマイナー・ヴァージョンアップの割にやけに修正点が多いと思いきや、コードまで劇的に変わっているという点についてはソースを見るまで全く気づきませんでした。
自分にはどうしようもありませんので、気長にご対応をお願いしますぐらいしか申し上げることが出来ませんが…。
こうなったら、モバイル用に超小型PCでも購入した方がいいかなぁ? そうすればイー・モバイルの7.2Mbps端末も活きますし(ぉぃ)。
1個のトラックバック/ピンバック
[...] 【WordPress】「Ktai Style」での投稿記事の新規作成や編集に失敗… [...]