無料WordPressテーマSightにRSSフィードのバグがあるようなので回避策

いまここではWPSHOWERの無料のWordPressテーマ、Sight 1.0をほぼそのまま使っています。とても気に入っているのですが、残念なことにRSS feedのtitle文字列がおかしなことになっていました。”a very nasty problem with my RSS feed” とか “double name” とか言われている症状です。なのでちょっとだけいじってみました。一応、回避できたと思います。

If you use the Sight 1.0 theme and have a problem with the title of the RSS feed, maybe you can fix it with the following patch.

症状 (symptom)

症状は具体的にはこんな感じ。http://amanesi.com/feed/ からRSSフィードがとれますが、そのtitleを見ると、

CSM NetCSM Net | CSM Net

のようになってしまっていました。正しくは “CSM Net” であるべき。一個で十分ですよね。(いまはそうなってると思います。)

さてその原因です。Sightのテーマは各ページにSEO対策したタイトルをつけてくれるのですが、そのコード(seo_title()という関数)が、少なくともRSSフィードに対してうまく働いていないようです。

回避策 (workaround)

管理メニューの “Appearance > Editor > Templates > Theme Functions (functions.php)” で、wp_titleにseo_titleをadd_filterしている行を見つけ、コメントアウトしました。

変更前のfunctions.php (original)

	return $newtitle;
}
add_filter('wp_title', 'seo_title');

function new_excerpt_length($length) {

変更後のfunctions.php (patched)

	return $newtitle;
}
/* add_filter('wp_title', 'seo_title');
*/

function new_excerpt_length($length) {

これでhttp://amanesi.com/feed/ のtitleは、

CSM Net

となりました。ひとまず fixed!

注意: RSSフィードはキャッシュされるようで、上記のコードを書き換えたからといって瞬時にフィードに反映されるわけではないようでした。エントリの変更などすれば反映されるんじゃないかな、と思います。

なお、こうするとフィードのタイトルの書き換えが止まるだけでなく、ページやポストのタイトルもSEOされなくなってしまいます。でも、ここではもともと他のSEOプラグインを試してみたかったのでむしろちょうどいい。ということで、title書き換えはAll in One SEO Packを使ってみています。