ページ 11

WordPress Integrator 導入エラー

Posted: 2009年9月10日(木) 03:27
by ryota
coreserver
Apache 1.3.37
PHP 5.2.5
MySQL 5.1.22-rc
MODx 1.0.0J
WordPress 2.8.4
フレンドリーURL ON

ルートにMODxをインストール。
/wpにWordpress1.2.8をインストール
ドキュメント名blogを作成、コンテンツを[!WordPressIntegrator!]にして保存。
その他設定はhttp://nanabit.net/modx/wordpress-integrator/に沿ってしております。

しかしhttp://hogehoge.com/blog/にアクセスをすると

Fatal error: Call to a member function register() on a non-object in /virtual/hoge/public_html/hogehoge.com/wp/wp-includes/widgets.php on line 427

というエラーが出てしまいます。
私の力量ではどこまでOKになっていて、何が原因でその先に行けないのかが分かりません。
どなたか、対処法が分かる方がいらっしゃいましたらご教授願えませんでしょうか。

よろしくお願いいたします。

Re: WordPress Integrator 導入エラー

Posted: 2009年9月10日(木) 08:33
by yama
画像

こちらで試してみたところ、同様のエラーが出ましたがglobal宣言を追加して解決しました。global宣言の追記については解説ページの末尾のほうに書いてありますが、見落とされやすいかもしれません。

http://nanabit.net/modx/wordpress-integrator/
上記ページの末尾のほうに
WordPressのアップグレード後などで、WordPressIntegratorにない新しいグローバル変数が追加された場合に、Fatal error: Call to a member function ~といったエラーが発生することがあります。該当の変数名を調べ、スニペットにglobal宣言を追加すれば解決します。
このような記述があります。エラーの内容を見ると
/wp/wp-includes/widgets.php on line 427
このようになっているので、line 427つまりwidgets.phpの427行目で問題が起きていることが分かります。427行目を見ると直前で「global $wp_widget_factory;」とされているので、これをwordpress integratorスニペット中のglobal宣言が羅列されているあたりに適当に追記します。追記するとこのエラーは出なくなりますが、また別のエラーが出るので同じようにコードを追ってglobal宣言を追記します。
global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates, $_wp_deprecated_widgets_callbacks;
これを追記しました。

Re: WordPress Integrator 導入エラー  【解決済み】

Posted: 2009年9月10日(木) 13:43
by ryota
いつもありがとうございます。
おかげさまで無事解決いたしました。
yama様にはいつも助けていただいて感謝感謝です。