Movable Type 備忘録
Movable Type のコメント投稿をフィードで配信
- Prev Page: Movable Type のコメントを Ajax で投稿する2
- Next Page: Movable Type のログイン画面をカスタマイズ
こんばんわ^^
今回はちょっと野暮用でサクっとご紹介しちゃいます (; ̄∇ ̄A
タイトルにもあるように、コメント用の Atom フィードをわたしのサイトでも出力するようにしましたのでそのコードのご紹介です。
設置の仕方
以下の手順で設置します。
[2008.05.03] ご紹介したコード中に配布してるテンプレート用のコードが一部入ってたので修正しました。
コメント用フィードテンプレート作成
以下のコードがコメント用フィードのテンプレートになります。<$MTHTTPContentType type="application/atom+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?><feed xmlns="http://www.w3.org/2005/Atom"><title><$MTBlogName remove_html="1" encode_xml="1"$>へのコメント</title><link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" /><link rel="self" type="application/atom+xml" href="<$MTLink template="フィード(コメント)"$>" /><id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTTemplateCreatedOn format="%Y-%m-%d"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id><MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty><generator uri="http://www.sixapart.com/movabletype/"><$MTProductName version="1"$></generator><MTEntries recently_commented_on="20"><MTComments lastn="5" sort_order="descend"><entry><title type="html"><$MTCommentAuthor$> が'<$MTEntryTitle remove_html="1" encode_xml="1"$>'にコメントしました。</title><published><$MTCommentDate format_name="rfc822"$></published><updated><$MTCommentDate format_name="rfc822"$></updated><id><$MTEntryAtomID$></id><link type="text/html" rel="alternate" href="<$MTEntryLink$>#c<$MTCommentID$>"/><author><name><$MTCommentAuthor$></name><uri><mt:ignore><$MTCommentEmail$></mt:ignore></uri></author><content type="html"><div class="content"><p style="float:right;"><img src="<$MTStaticWebPath$>images/status_icons/success.gif" alt="公開" width="9" height="9" /><a href="<$MTEntryLink$>">公開</a></p><p><b>ブログ:</b> <a href="<$MTBlogURL$>"><$MTBlogName remove_html="1" encode_xml="1"$></a><br /><b>ブログ記事:</b> <a href="<$MTEntryLink$>"><$MTEntryTitle remove_html="1" encode_xml="1"$></a><br /><b>コメント投稿者:</b> <$MTCommentAuthor$><br /><b>メール:</b> <mt:ignore><$MTCommentEmail$></mt:ignore><br /><b>URL:</b><$MTCommentURL$> <br /></p><p></div><$MTCommentBody remove_html="1" encode_xml="1"$><hr /></content></entry></MTComments></MTEntries></feed>
表示確認
テンプレートをコピーしたら再構築して、ブラウザからでも RSS リーダーからでもいいですので、表示確認してください。
各自のブログのインデックステンプレートを新規作成して、上記コードをコピー & ペーストしてください。
そして、テンプレート名称は各自のお好みで構いません。たとえば、「フィード(コメント)」なんて名前にしておきます。
その際、赤字で記したコメント用フィードのテンプレート名称も合わせて変更してください。
また、出力ファイル名称にはこれもお好みで構いません。他のフィード(RSS2.0 など)と同じ場所が良いのではないでしょうか ( ̄∇ ̄)b
以上です。
コメント投稿の状況をフィードで配信するので便利かと思うのココロ。
一応 livedoor Reader、Google Reader で確認済みです。
サクっと作ったものなので、不手際などありましたらご指摘頂けると嬉しいですの (●´∀`●)
そそ、配布してるテンプレートには既に組込み済みです。
Trackback Pings(1)
- from
笑むなAikoの『お玉杓子は飲み物です』
RSSフィードのコメントRSS出力のご紹介を以前しましたが、Movable Type 備忘録 様で新しいタイプが公開されました。...




コメントテンプレート、使わせていただいてますσ(^^)。
早速質問なのですが、デフォルトでは remove_html="1" で<br /> (HTML)が全て取り除かれひとつの段落になっていますよね。
ブログコメントと同じ整形(改行)でフィードを取得するには何処をいじればよいのでしょうか?。
$MTCommentBody あたりをいじったのですが、いじるとフィードが取得できなくなってしまうんです(__;)。
>>1 Aik☆ さん
こんにちわ^^
> $MTCommentBody あたりをいじったのですが、いじるとフィードが取得できなくなってしまうんです(__;)。
えっ!? remove_html を削除すれば問題なさそうですけどね。
試しにわたしのサイトのコメント・フィードをやってみました。
ご確認ください
えっと、最初よくソースを見ないで貼り付けた時に、
<link rel="self" type="application/atom+xml" href="<$MTLink template="feeds/comment"$>" />
で再構築エラーが出たのでこの行を削除したのですが、関係あるんでしょうか。
remove_html を削除して直接URLにアクセスすると
要素内容内ではリテラル文字 ']]>' が許可されません。
リソース 'http://surak.private.coocan.jp/aiko/comments.xml' の実行エラーです。
という表示が出てフィードが出力されないのです。
なんか初歩的な処で躓いているような気が…。
ちなみにウチは atom の出力はしていないです。
>>3 Aik☆ さん
> <link rel="self" type="application/atom+xml" href="<$MTLink template="feeds/comment"$>" />で再構築エラーが出たのでこの行を削除したのですが、関係あるんでしょうか。
あちゃ
すいません。
remove_html の件とは関係ないですが、MTLink の template モディファイアには テンプレート名称を指定してください。
たとえば、'フィード(コメント)' といったかんじで。
わたしのサイトのコメント用フィードには識別子(feeds/comment)がついてるのですが、通常新規で作成した場合には識別子は付加されないんです。
それはさておき、たぶん投稿されたコメントの内容がまずいかもしれないですね
remove_html を削除したバージョンのフィードを新規作成して、その URL を教えてもらえますか。確認してみます。
>>4 bzbell さん
bzbell さん、お忙しいところ申し訳ありません。
私のほうもテンプレート名と出力ファイル名がごっちゃになっていました。
教えて頂いた通りで再構築エラーは出ませんが…。やっぱエラーになるようです。
http://surak.private.coocan.jp/aiko/Commenttest.rss
いちをIE6で確認しました。
>>4 bzbell さん
お世話様でしたm(__)m。
アドバイスいただいたように、直接次を書き換えましたら
エラー無く表示されるようになりました^_^;。
<$MTCommentBody remove_html="1" encode_xml="1"$>
↓
<![CDATA[<$MTCommentBody$>]]>
ちなみに < はそのまま書かないとダメなんですね。
最初、他に合わせて
&lt;![CDATA[<$MTCommentBody$>]]&gt;
としたら今度は中途半端にいくつかのコメントが出力され
途中からエラーになりました(O.O;)(o。o;)。
>>6 Aik☆ さん
> お世話様でしたm(__)m。
いいえぇ、どぉいたしまして
でもね、何で Aiko さんのフィードだとダメなのかその後調べてみたら、どぅやらコメントの最初の段落には <p> タグが付加されてなくって、次の段落から <p> タグが付加されてます。
だから encode_xml モディファイアで CDATA が付加されず、おしりの ]]> だけが付加されたように思います。
まぁ、どちらにしても直接埋め込むことで問題解決できて何よりです