45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

Atomフィードのid

コメント
0件
トラックバック
0件

Movable Type 3.x デフォルト・テンプレートのAtomフィードで不具合が見つかったらしい。

Six Apart :: Movable Type 3.x デフォルト・テンプレートのAtomフィードの不具合について

drry+@-> :: Movable Type のデフォルト Atom フィードテンプレートを駄目出し

二つの記事で大まかに理解した。
どうやらフィードの中には一つのサイトに固有のidが必要らしい。
そのサイト固有のidをMovableTypeは「ブログのホスト」「再構築時の年」「ブログの相対URL」「ブログのID」から作っているらしい。
その内「ブログのホスト」「ブログの相対URL」「ブログのID」はサイトをリニューアルでもしない限り簡単に変わらない。
しかし「再構築時の年」は一年間で変わる。
2005年、2006年、2007年と一年ごとに「再構築時の年」が変わり、それに伴なってidも変わる。
idがかわるという事は、2005年のサイト、2006年のサイト、2007年のサイトがそれぞれが別のサイトとして扱われるという事だ。

フィードを使わない人間にはよくわからないけど、フィードを使ってる人間には大変らしい。
つまり、サイトの運営者より訪問者が困るらしい。
客人に迷惑をかけてはいけません。


対策は SixApart と drry+@-> からの引用です。
drry+@-> の方が丁寧です。

下がデフォルト・テンプレート内の変更箇所です。この<id>~</id>を書き換えます。

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTDate format="%Y"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

「再構築時の年」は新しい記事を投稿にあわせて変わります。
なので新しい記事を投稿しても変わらない、一番古い記事の投稿時の年を「再構築時の年」の代わりに使いたいと思います。

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<MTArchiveList archive_type="Monthly" sort_order="ascend" lastn="1"><$MTArchiveDate format="%Y"$></MTArchiveList>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

しかし、ブログの一番古い記事が2006年より前の方にこの方法はオススメできません。
2006年より前からブログを始めていると、2006年中に再構築した時点で2005年以前のidから2006年のidに既に変わっています。
そこから一番古い記事の年号にあわせてidを作り直すと2006年のidからまた変わってしまいます。
なので一番無難なのは、現在の2006年のidを今後も使いつづけていく方法です。
そのためには2006を直接指定します。

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,2006:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

これなら少なくとも今フィードを取得している人がこの先困る事はありません。

もっとも、フィードを取得している人がいなければどちらの方法でも良いんですけどね。
ここみたいに(笑

コメント[0]

コメントはまだありません。

コメント投稿フォーム

コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。

コメント投稿フォーム

トラックバック[0]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは