WordPress:wp-blog-header.php を呼び出すと 404 が返ってくる現象について

404 NOT FOUND

wp-tegaki を使っていると、ログに 404 が記録されまくるのが気になっていました。

"GET /wp-content/plugins/wp-tegaki/wp-tegaki-img.php?tegaki_id=1968-0 HTTP/1.1" 404 4097 "https://www.u-1.net/2009/11/07/1968/"

画像自体は出力されるし、見た目に問題はないのですが Firebug とかでも見るとやはりステータスコード 404 を返しているようでした。

404 を返しているのに、正しく画像が送られてくるとかさすがに気持ち悪いので原因を探してみたら、スクリプト内で読んでいた wp-blog-header.php に原因があったみたいです。

外部にRecent-postsなどを提供する場合の覚書 / wordpress | NPME.jp 経由で、WordPress wp-blog-header.php Causes 404 in IE « Adrogen Blog にたどり着きました。

このページの情報によると、

<?php
require('wp-blog-header.php');

<?php
require('wp-config.php');
$wp->init();
$wp->parse_request();
$wp->query_posts();
$wp->register_globals();

と書き換えれば良いようです。IE 以外のブラウザでも発生していた現象でしたが、この変更でログにも正しく記録されるようになりました。

"GET /wp-content/plugins/wp-tegaki/wp-tegaki-img.php?tegaki_id=2898-0 HTTP/1.1" 200 6283 "-"

wp-tegaki を使っているサイトだと結構発生している現象だと思うので、ちょっとした修正で直せるなら対応しておいて損はなさそうですね。