以前からアクセスログで気になっていたのが、/feed へのアクセスで404を返すケースがあったこと。ブラウザで直接アクセスするとちゃんとソースはあるし、Google Readerでそれを拾うこともできていたので気にはしつつも放置していた。
が、Google Readerも今月いっぱいで終了するということでFeedlyの設定をしていて気が付いた。Feedlyにこのブログの /feed を検索させても拾ってくれない。たまたま設定を試みて気が付いたのだけど、これがなぜだかわからない。
WordPressではヘッダに記述されるRSS2.0のリンクだけでなく、他にも裏側でフィードのページがあるということを知ったので、念のためFeedlyにいろいろ設定して試してみると、どうも /feed と /feed/rss へのアクセスは見つけることができないらしいことがわかった。RSS1.0とRSS2.0だけ読めない。なんでぞ。
いろいろ考えてみたのだけど結局どうすれば良いのかわからなかったので、ブログのヘッダにはatomへのリンクだけを記述することにして、デフォルトで記述されてるフィードへのリンクは表示しないようにした。
まずはfunctions.phpの最下段に、デフォルトのフィードへのリンク出力をやめるようにする記述を追加して保存する。
remove_action('wp_head', 'feed_links', 2 ); remove_action('wp_head', 'feed_links_extra', 3);
これでRSS2.0用の記述がコメント欄用フィードの記述も含めて消える。そうして、header.phpにatomだけを表示するように記述を追加。記述する箇所は以前にフィードの記述があったところということで、ショートカットアイコンの記述の次の行にする。
<link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> ATOM Feed" href="<?php bloginfo('atom_url'); ?>" />
ちなみにフィードの種類をどう設定すればよいかは、『WordPressオリジナルテーマ作成_03 – カスタマイズ(ヘッダー) | WordPressのテーマ作成やプラグインの情報サイト WPonit』を参考にした。bloginfoに設定できるフィードの呼び出しに関する情報は以下のようになる。
atom_url = http://example/home/feed/atom
rss2_url = http://example/home/feed
rss_url = http://example/home/feed/rss
pingback_url = http://example/home/wp/xmlrpc.php
rdf_url = http://example/home/feed/rdfWordPressオリジナルテーマ作成_03 – カスタマイズ(ヘッダー) | WordPressのテーマ作成やプラグインの情報サイト WPonit
要するに私の場合、bloginfo(“rss2_url”) を bloginfo(“atom_url”) に変更したということ。あと、linkタグにあるtype指定、atomの場合は application/atom+xml となるので間違えないようにする。残りの作業としては、author部分で表示しているフィードへのリンクを /feed としていたので、該当する箇所のリンクを /feed/atom に修正。 author部分のRSSへのリンクは残したまま、FeedlyへAtomを登録するためのボタンを追加した。
そういうわけで /feed が404になってしまった原因は不明だけども、消極的対応ということでお茶を濁した。他は知らないのだけど、/feed でRSSリーダーへ登録できる場合はそちらでも問題ないかと思います。これはもうFeedly限定対応かもしれない。なんでぞ(本日2回目)。
そうそう、Google Readerに /feed で登録されていた場合でFeedlyへ移行した場合は問題ないもよう。これだからますますわからないのであった。