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が減らしたい方どうぞ。

wp.Vicuna Ext SEO Title Tag対応、他

ほとんどデフォルトで使わせて頂いているが、どうしてもpluginの追加などでソースを触らなければならない場面がある。
今回 wp.Vicuna Ext.1.0 が脱ベータとのことで、バージョンアップされていたので、それにあわせて現状の備忘録を作っておく。

今のところ関係しているpluginは、
SEO Title Tag
WordPress Plugins/JSeries ≫ wp-otenki
Google Sitemap Generator for WordPress v2 Final
だけだった。少な。

タグ追加 (RORサイトマップ用)
<link rel=”alternate” type=”application/atom+xml” href=”<?php bloginfo(‘atom_url’); ?>” title=”Atom cite contents” />
の下に
<link rel=”alternate” type=”application/rss+xml” href=”http://kuniharumaki.com/sitemap.xml” title=”ROR” />
対象ファイル: head.php
Google Sitemap Generatorを導入したので、一応追記してみたものの、MSN Botが来ないので、効果の程は不明。。。
robots.txtにも書いたし、もしかしたらこっちは不要かも。

タグ追加 (wp-otenki用)
対象ファイル: index.php, single.php
<li class=”date”><?php the_time(‘Y-m-d G:i:s (D)’) ?></li>
の下に、
<li class=”weather”><?php do_action(‘wp-otenki’); ?></li>

titleタグ書き換え (SEO Title Tag用)
<title><?php if (function_exists(‘seo_title_tag’)) { seo_title_tag(); } else { bloginfo(‘name’); wp_title();} ?></title>
対象ファイル: 404.php, archive.php, category.php, index.php, page.php, single.php

titleタグ書き換え (若干の見た目変更)
<title><?php bloginfo(‘name’); ?> – search: <?php echo wp_specialchars($s, 1); ?></title>
対象ファイル: search.php

メンテの頻度が高いようであればパッチでも作りますか。