WordPress 2.6.1 とWordPressIntegrator

7bitさんのWordPressIntegratorですが、スニペットとプラグインの設置以外にWordPress側の改造が必要になるのがちょっと面倒ですね。これがまた、WordPressのバージョンアップが結構頻繁にあり、その度にWordPressIntegratorと一緒に使うための改造点が変わってしまうと言う複雑さ... 念のため、最新版のWordPress 2.6.1 日本語版を改造した時の悪戦苦闘(最近は慣れてきましたが...笑)の奇跡を下記に記しておきます。必ずしもこの順に改造をする必要は無いのですが、私が出るエラーメッセージを見ながら対処した奇跡そのものを書いてあります。他の方の参考になれば...

なお、使ったMODxのバージョンはSVN版(rev.3938)で、WordPressIntegratorは1.2.0です。
  1. まずはWordPress側を何も修正しないで使うと...

    画面(フロントエンド)上に以下のエラーメッセージが表示されます。

    Fatal error: Call to a member function main() on a non-object in /hogehoge/public_html/wp261/wp-includes/functions.php on line 1111
  2. 「wp-settings.php」の4箇所の「=& new」を「= new」に変更...

    表示されるエラーが以下に変わります。

    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « PHP Parse Error »

    PHP error debug
    Error: Invalid argument supplied for foreach()
    Error type/ Nr.: Warning - 2
    File: /hogehoge/public_html/wp261/wp-includes/classes.php
    Line: 148
    Line 148 source: foreach ( $GLOBALS['wp_taxonomies'] as $taxonomy => $t )

    Parser timing
    MySQL: 0.0056 s (13 Requests)
    PHP: 0.2713 s
    Total: 0.2769 s
  3. WordPressIntegratorスニペットに「global $wp_taxonomies;」を追加...

    表示されるエラーが以下に変わります。

    Fatal error: Call to a member function set_404() on a non-object in /hogehoge/public_html/wp261/wp-includes/classes.php on line 296
  4. 「wp-settings.php」の1箇所の「=&」を「=」に変更...

    画面(フロントエンド)上のエラーは無く正常に表示されますが、MODxのイベントログに以下が発生します。

    Redefining already defined constructor for class WP_Dependencies
  5. 「wp-includes/class.wp-dependencies.php」の中にある「function __construct() {}」の行をコメントアウト...

    MODxのイベントログのエラーが以下に変わります。

    Assigning the return value of new by reference is deprecated
  6. 「wp-includes/」ディレクトリ内の「cache.php/query.php/theme.php」の3つのファイルに1箇所ずつある「=& new」を「= new」に変更...

    MODxのイベントログのエラーが以下に変わります。

    Redefining already defined constructor for class WP_Object_Cache
  7. 「wp-includes/cache.php」の以下の3行をコメントアウト...

    function WP_Object_Cache() {
    return $this->__construct();
    }

で、無事にノーエラーで動作するようになりました!

---
(2008/09/11 00:35)
WordPress 2.6.2 が出ましたので、こちらもチャレンジしましたが、上記と同様のやり方でノーエラーで動作させることができましたよ~
---
(2008/12/15 12:46)
WordPress 2.7 が出ましたので、こちらのバージョンも確認してみました。上記の手順に加えて、「wp-includes/http.php」の以下の3行をコメントアウトする必要がありましたが、それ以外は特別問題なく動作させることができました~!
function WP_Http() {
$this->__construct();
}

---
(2009/03/23 14:43)
WordPress 2.7.1 が出ましたので、こちらもチャレンジしましたが、2.7 と同様のやり方でノーエラーで動作させることができましたよ~
---
(2010/02/25 12:51)
WordPressのバージョンアップのたびに対応するのが億劫になったので、もう追いかけるのをやめてしまいました。WordPressIntegratorの使い方はこのあたりを参考にして下さい。
blog_ranking_banner.gif
ネット | comments (4) | trackbacks (1)

comments

tkfm(管理者) | 2008/11/19 03:52 PM
magmagさん

こっちにコメント頂いてたんですね~
WordPress Integrator 動いたようで何よりです。
magmag | 2008/11/18 11:16 PM
遂に動きました。
いろいろありがとうございました。
tkfm(管理者) | 2008/10/01 06:19 PM
yassi さん

お役に立てたようで嬉しいです~

preg_match関数の部分は、以前修正が必要だったこともあったんですが、
なぜか今の環境では修正しなくても動いてます...

MODxの0.9.6.2からMySQLの文字コード周りの修正が入っていますので、
コレが原因かなぁ~と想像しています。
yassi | 2008/09/30 04:01 PM
2.6.2に移行してからログが消えず悩んでいたところ、こちらを拝見しclass.wp-dependencies.phpの修正が必要であることが分かりました。
ありがとうございます m(__)m
手元の環境では上記の修正に加えて、wp-includes/wp-db.phpの620行目あたりの
preg_match("/^\\s*(insert|delete|update|replace) /i",$query)

preg_match("/^\\s*(set|insert|delete|update|replace) /i",$query)
に変更する必要がありました (^_^;

comment form

trackback url

http://tkfm.net/sb.cgi/334

trackback

自転車で通勤しましょ♪ブログ | 2009/01/30 12:33 AM
MODxのイベントログ対策
MODxにログインしてみたら、イベントログが溢れるくらい大きくなっていた。もちろん、エラーログだ。なぜこんなことになったのだろうか?色々と直していたはずなのに…。どうもちゃ...
search this site
calendar
categories
recent comments
recent trackbacks
profile
others