Google Sitemap Generator – Ultimate Tag Warrior – Tags Addon Plugin の出力内容を一部修正

2007-08-09更新
ウチの環境だけかもしれないが、同名で別IDのtagが存在しているせいで、sitemap.xmlに同一URLが複数出力されてしまっていたため、SQLにdictinctを追加した。
さらに、日本語表記のタグを使っているので、 URLEncode処理を追加。


Ultimate Tag WarriorGoogle Sitemap Generator も素晴らしいプラグインだ。
導入してからGoogle botも的確にページを拾っていってくれている気がする。さらに、UTWが持つタグ情報をSitemapに同時出力してくれるWordPress Google Sitemap Generator – Ultimate Tag Warrior – Tags Addon Plugin(長い名前だ)を導入することで、さらにGoogleに渡せるSitemapが充実する。しかも初期設定さえしてしまえば、あとは意識すらしなくて良い。

ただ、今日ログを眺めていたときにGooglebotが拾っていったURLで404エラーが出てる。結構出てる。Google様に嫌われたらどうしよう!
SQLを見てみたらtagテーブルに存在する全てのタグ名を拾ってきて出力しているようだ。
UTWの使い方が悪いのかもしれないが、どの記事にも割り当てられていないタグが存在するために、それを拾いに来たGooglebotに404を返してしまっている。
なんとなく気持ち悪いので、記事で使われているタグのみをSitemapに含めるように修正。

(今回の対象バージョンは2.1)
113行目のSQLを修正。
[php num=113]
$utwtags=$wpdb->get_results(“SELECT tag FROM ” . $UTWtabletags);
[/php]

POST2TAGテーブルと結合して、記事が存在するタグだけ取り出し。
[php num=113]
$utwtags=$wpdb->get_results(“SELECT distinct tags.tag FROM ” . $UTWtabletags . ” tags, ” . $UTWtablepost2tag . ” p2t WHERE tags.tag_ID = p2t.tag_id”);
[/php]

日本語タグをURLエンコード。$utwtag->tag部分に。
[php num=116]
$utw_tag = GetUTWTagUrl(urlencode($utwtag->tag), $UTWhome, $UTWbaseurl, $UTWuseprettyurls, $UTWtrailing);
[/php]

少しでも404が減らしたい方どうぞ。

コメント

タイトルとURLをコピーしました