Google XML Sitemapsで「Bingへの通知中に問題が発生しました。」が表示された時の対処法

Google XML Sitemapsで「Bingへの通知中に問題が発生しました。」が表示された時の対処法

Google XML Sitemapsで「Bingへの通知中に問題が発生しました。」が表示された時の対処法

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行変更するだけでエラーは表示されなくなります。

Bingエラー解消

注意点があるとすれば、sitemap-core.phpを編集する時は”文字コードをUTF-8にする”ということくらいです。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です