WordPress 2.0.5 Trackback Problem
ようやく WordPress を 2.0.5 にアップデートしました。 🙂
話題のトラックバック飛ばない、、という問題も同時に検証してみました。
結論を先に言うとコアにはおそらく問題がありません。 2.0.5 のトラックバックのロジックは正常に動いています。 ただし、2.0.5 に限らずなのですが、WordPress によるトラックバック送信で現在以下の問題があるようです。
- 試験的に自サイトもしくは WordPress サイトに飛ばしてみたが飛んでいない?? → 十中八九 Akismet に捕獲されています。
- トラックバック URL を設定後に、「保存して継続」もしくは「保存」「公開」を押下で、画面が真っ白になる。 → おそらくサーバのメモリリミットの上限を超えています。
- 同上の操作で、画面が編集画面に戻るが「通知済みピン」にはいらずテキストボックスに URL がはいったままになる。 → execute-pings.php が落ちています。
Akismet に関しては、どうも最近日本語トラックバックの誤認が多いように思います・・・。 とりあえず、トラックバックのテストといういみでは Akismet はかまさないほうがベターです。 問題が分かりづらくなります。
ということで、試験をしたいかたは以下のスクリプトを設置してその URL に対してトラックバックをうつとよいです。 受信した際にログがでますので、確実にトラックバックの試験が出来ます。 (このスクリプトもずいぶん懐かしいな。。 🙂
生POSTデータを含む全てのデータを取得する PHPスクリプト
POST されてきたデータを、日付時分秒.txt に保存する スクリプトです。 XML-RCP とか、ブログの ping のデバッグ用などにどうぞ。 POST の ROW データ も保存します。
設置したディレクトリに書き込み属性をつけるのを忘れずに・・・。 同じディレクトリにログが出るようになっています。 このログに計上があれば正しくトラックバックの送信が出来ています。 このログがだせるが相手に届かないときはおそらく、相手サーバの問題だと思います。
メモリリミットに関しては、設定の上限自体はレンタルサーバの場合これはもうどうしようもないです。
対処としてはプラグインをはずすなどして WP をスリムにするとか…。 特に do_action で public_post など投稿時に動く hook を使っているものが要注意です。 もちろん、それ以外投稿で動かないプラグインもスクリプトの定義自体でもメモリ使いますので大きめのプラグインをはずすのも少しは効果があるかもしれません。(本当に微々たるものだと思いますが…)
本格的には、実行時に大きくメモリをとるプラグインを省メモリに改造してみるのもおもしろいでしょう。 コア側も、イベント的に動かないプラグインは定義自体もしないように出来ると良いですね。
ちなみに、wp-otenki などはメインロジックを別プロセス非同期呼びにしてメモリを節約していたりします。 うちのサーバが弱いだけなんですが。 😛
最後 execute-pings.php が落ちる件。 execute-pings.php はトラックバックなどを本体と非同期で処理する開始スクリプトです。 詳しい内容は割愛しますが、要は本体のバックグラウンドでトラックバック処理(多くは相手サーバのうけ待ちで時間かかる)を行い、本体の処理を速く終わらせようという試みです。
でもって、この送信をつかさどる execute-pings.php がおちることがあるようです。 トラックバック送信が出来ない場合は、 wp-admin/execute-pings.php をブラウザから手動で起動してみてください。 もしかすると、エラーが表示されているかもしれません。 ちなみに、正常に動くと画面は「真っ白」になります。
kohaku さんのところでおきている症状でしたが、何かのプラグインにより(??)
#3267 (PHP Error in template-functions-links.php) – WordPress Trac – Trac
という症状が execute-pings.php 実行時にでることがあるようです。(トラックバック実行時にこける。しかし通常通りWP本体から実行されると非同期のためエラーが画面に出ない)
shutdown の hook を使うプラグインのエラーだと思われるのですが、PHP のバージョン(?)によっては register_shutdown ファンクション内で作成済みの WP のオブジェクトが破棄されてしまう、このためそのオブジェクトのメソッドを呼ぼうとすると、ぬるぽするということみたいです。 (インスタンス作るときに参照書きでつくると良いという裏技的な修正が上記にあります。 しかし、kohaku さんのところではきかなかった模様)
kohaku さんがいろいろ検証してくれたのですが、プラグインを全てはずして戻したところ直ってしまった!!という、冬の怪現象が起きてしまったため原因は特定できておりません。。 なぞぞーん。
以上、トラックバックに関して調べた結果です。 まだ何かありそうなので他に情報がありましたら教えてください。 🙂
検証にお付き合いいただきました、kohaku さん、aka さん、おでさん ありがとうございました。
ではおでさん、合コンおねがいします(締めの挨拶)
From: WordPress:トラックバックが出来ない! | マゼランな航海 - 2009/1/14 Wednesday (Pingback)
[…] hiromasa.zone :o) » WordPress 2.0.5 Trackback Problem […]
From: interior house painting Bishops Cleeve - 2018/8/8 Wednesday (Trackback)
arms length management organisations (almo) painters
hiromasa.zone :o)
[続きを読む]