Google XML Sitemaps (Google Sitemap Generator)はSEO対策に必須なサイトマップ生成プラグインですが、サイトマップを構築した時に「Bingへの通知中に問題が発生しました。」というエラーが表示されることがあります。
「Bingへ更新情報を通知できていないのではないか」と思われるかもしれませんが、実はこのメッセージ自体、特に問題がないんです。
これは日本語環境で起こる表示のエラーで、サイトマップの送信自体は問題なくされています。そのため、そのままにしておいても特に問題はありませんが、赤文字で表示されるしなんとなく気になりますよね。
ということで、このエラーが表示されないようにするための方法をご紹介いたします。
プラグインの修正
エラーを表示しないようにするためには、プラグインのsitemap-core.phpをちょっとだけ編集します。
1. /wp-content/plugins/google-sitemap-generator/sitemap-core.php を開きます。
2. 2221行目くらいにある以下の部分を探します。
//Ping Bing if($this->GetOption("b_pingmsn") && !empty($pingUrl)) { $sPingUrl="http://www.bing.com/webmaster/ping.aspx?siteMap=" . urlencode($pingUrl); $status->StartMsnPing($sPingUrl); $pingres=$this->RemoteOpen($sPingUrl); //Bing returns ip/country-based success messages, so there is no way to check the content. Rely on HTTP 500 only then... if($pingres==NULL || $pingres===false || strpos($pingres," ")===false) { trigger_error("Failed to ping Bing: " . htmlspecialchars(strip_tags($pingres)),E_USER_NOTICE); $status->EndMsnPing(false,$this->_lastError); } else { $status->EndMsnPing(true); } }
3. この部分を以下のように変更します。
//Ping Bing if($this->GetOption("b_pingmsn") && !empty($pingUrl)) { $sPingUrl="http://www.bing.com/webmaster/ping.aspx?siteMap=" . urlencode($pingUrl); $status->StartMsnPing($sPingUrl); $pingres=$this->RemoteOpen($sPingUrl); //Bing returns ip/country-based success messages, so there is no way to check the content. Rely on HTTP 500 only then... if($pingres==NULL || $pingres===false || strpos($pingres,"サイトマップを送信していただきありがとうございました。")===false) { trigger_error("Failed to ping Bing: " . htmlspecialchars(strip_tags($pingres)),E_USER_NOTICE); $status->EndMsnPing(false,$this->_lastError); } else { $status->EndMsnPing(true); } }
4. 変更したsitemap-core.phpをサーバーにアップロードします。
変更する場所は、「サイトマップを送信していただきありがとうございました。」という部分だけです。もともとは半角スペースが入っているので、「サイトマップを送信していただきありがとうございました。」という文字と入れ替えます。
if($pingres==NULL || $pingres===false || strpos($pingres," ")===false) {
↓
if($pingres==NULL || $pingres===false || strpos($pingres,"サイトマップを送信していただきありがとうございました。")===false) {
手順はたったこれだけです。1行変更するだけでエラーは表示されなくなります。
注意点があるとすれば、sitemap-core.phpを編集する時は”文字コードをUTF-8にする”ということくらいです。