WordPress から Yahoo! ブログ検索に Ping を打ってもインデックスされないことでずっと悩んでいました。原因を探るべく 3 か月ほど前に試行錯誤した結果、どうにかインデックスされるようになりました。(参照:【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 )しかし、手動で Ping を送るのは面倒。ということで、既存のプラグインをちょこっと改造することで、自動化することに成功しました。
テスト運用してきて問題ないようなので、 WordPress から Yagoo! ブログ検索に Ping を送るために既存プラグインを改造する方法を公開します。(元のプラグインが GNU GENERAL PUBLIC LICENSE だから公開しても問題ないはずですよね。)このプラグインの改変を行うことにより、通常の投稿にて Yahoo! ブログ検索へ認識可能な Ping を送信してくれますので、 Yahoo! ブログ検索にインデックスされるようになるはずです。
初めに書いておきますが、何か問題が起こっても、インデックスされなくても自己責任でお願いします。
目次
Yahoo! ブログ検索にインデックスさせるための Ultimate Plugins Smart Update Pinger 改造手順
1) まず、【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 の 2) ヘッダ内の RSS 1.0 の設定 の改変を行っておく。
2) 次に Ultimate Plugins Smart Update Pinger をダウンロードしてください。メルアドを求められますが、 Ultimate Plugins Smart Update Pinger を改造するので必要です。 Smart Update Pinger の日本語版だと、予約投稿時に WordPress のデフォルトの Ping 送信機能が働いてしまうので、 Yahoo! ブログ検索に Ping を送ることができません。
3) 2) でダウンロードし解凍した ultimate-plugins-smart-update-pinger フォルダに下記ファイルを解凍してたもの( smart-update-pinger_ybs.php )を入れてください。 ultimate-plugins-smart-update-pinger.php と同じレベルになるように。
→ smart-update-pinger_ybs.php.zip
4) ultimate-plugins-smart-update-pinger.php の編集する。
・ 107 行目と 117 行目の 2 ヶ所の
$SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log;
の後ろに下記を追加。
require_once('smart-update-pinger_ybs.php');
$SUP_output_log = send_ping_ybs("http://api.my.yahoo.co.jp/rss/ping?u=".get_permalink($id)).$SUP_output_log;
・ 173 行目
$client->useragent .= ' -- WordPress/'.$wp_version;
↓
$client->useragent .= ' -- ○○○ /1.0.0';
○○○は任意の文字列。( goo ブログ検索にて WordPress からの Ping を拒否しているための対処。)
・ 1 行目
<?
→ <?php
プラグインを有効化したときにエラーになるのを防ぐ。(既存バグ?)
5) 上記の変更を加えた ultimate-plugins-smart-update-pinger フォルダを WordPress プラグインフォルダにアップロードし、有効化してください。
これで WordPress から Yahoo! ブログ検索へ Ping を送られるはずです。プラグインがうまく有効化できないときは、改造した ultimate-plugins-smart-update-pinger.php を保存するときに「バックスラッシュ」が「エンマーク」に変わってしまっている可能性がありますので、 WordPress 管理画面のプラグインの編集から該当箇所を再度確認してください。
smart-update-pinger_ybs.php 内で行っていること
smart-update-pinger_ybs.php では「【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 」の 1) の動作を自動的に行っています。具体的には、「 http://api.my.yahoo.co.jp/rss/ping?u= 最新記事の URL 」のサイトを読み込み、その文字列に「 Refresh requested 」があるかどうかを確認し、ログを吐き出します。
Ultimate Plugins Smart Update Pinger にて Ping を送信することの利点
a) 投稿の編集時に Ping を送らなくなる。
WordPress デフォルトの Ping 送信機能は編集時にも Ping を送っています。それゆえ、 Ping スパマー状態になりブログ検索にインデックスされないのではないかと考察しています。
b) Ping の送信元を偽装できる。
a) の理由にて WordPress は goo ブログ検索では Ping を拒否されているが、それを回避できる。
c) 予約投稿時にも Ultimate Plugins Smart Update Pinger の機能を使って Ping を送信する。
Yahoo! ブログ検索には以上の改変でインデックスされると思いますが、 goo ブログ検索にインデックスされるようにするにはさらなる改変が必要です。下記記事を参考にしてください。
→【祝!】 goo ブログ検索インデックス! 〜 WordPress を Yahoo! ブログ検索させる方法 その 8 〜