お知らせ

Movable Type 5 Webサイト製作ガイドVolume 12009年12月7日

Movable Type 5 Webサイト製作ガイドVolume 1」を発売しました。
Movable Type 5を基本からしっかりマスターしたい方のための書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

最近のコメント/トラックバックをエントリーとともに表示するプラグイン(MT4専用)

| コメント(9) | トラックバック(3)

「最近のコメント/トラックバックをエントリーとともに表示するプラグイン」のMovable Type 4専用版を公開します。

2009年12月5日
このプラグインはMovable Type 5でも動作します。

1.プラグインのダウンロードとインストール

以下のリンクをクリックすると、プラグインのファイルをダウンロードすることができます。

Recents_2_11.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ダウンロードが終わったら、ファイルを解凍します。
すると、「Recents」というフォルダができますので、そのフォルダを丸ごとMovable Typeの「plugins」ディレクトリにアップロードします。

2.追加されるテンプレートタグ

このプラグインをインストールすると、以下のテンプレートタグが追加されます。

・MTEntriesRecentlyCommented/MTEntriesRecentlyPinged
最近にコメント(MTEntriesRecentlyCommented)/トラックバック(MTEntriesRecentlyPinged)があったエントリーを出力するコンテナタグです。
以下のアトリビュートを指定することができます。

include_blogs="x,y,z" 検索対象のブログのIDを指定します。
「include_blogs="all"」とすると、すべてのブログを対象に検索します。
include_blogs="children"
(Movable Type 5以降)
ウェブサイトのテンプレートでこれらのタグを使う際に、ウェブサイト配下のすべてのブログを対象に検索します。
include_blogs="siblings"
(Movable Type 5以降)
ブログのテンプレートでこれらのタグを使う際に、同じウェブサイトの配下に属するすべてのブログを対象に検索します。
include_with_website="1"
(Movable Type 5以降)
ウェブサイトのテンプレートでこれらのタグを使う際に、ウェブサイト自身も検索対象に含めます。
「include_blogs="children"」のモディファイアと併用します。
exclude_blogs="x,y,z" 検索から除外するBlogのIDを指定します。
lastn="x"最大でx個のエントリーを出力します。
comment_lastn="x"
(MTEntryRecentlyCommentedタグの場合)
ping_lastn="x"
(MTEntryRecentlyPingedタグの場合)
最近のコメント/トラックバックを最大でx個まで検索します。
lastn="x"と同時に指定した場合は、lastnとcomment_lastn(またはping_lastn)のどちらかの条件を満たした時点で出力が終わります。
per_entry="x"エントリー1つにつき、最大でx件のコメント/トラックバックを出力します。
sort_order="descend|ascend"見つかったエントリーを、最近コメント/トラックバックがあったものから順に表示するか(descend)、その逆にするか(ascend)を指定します。
指定しない場合は、sort_order="descend"を指定したのと同じになります。
mode="force"標準では、カテゴリー・アーカイブ・ページと日付アーカイブ・ページでは、そのアーカイブ内のコメント/トラックバックのみを出力の対象にします。
これらのテンプレートでも全てのコメント/トラックバックを対象にしたい場合は、このアトリビュートを指定します。
mode="entry_date"日付アーカイブ・ページでは、標準では、アーカイブの期間にあったコメント/トラックバックをエントリーごとにまとめて出力します。
これを変えて、アーカイブの期間のエントリーについたコメント/トラックバックを出力するようにしたい場合は、このアトリビュートを指定します。
search_limit="x"最近のコメント/トラックバックのうち、x件までを検索の対象にします。
カテゴリー・アーカイブ・テンプレートの中でこのタグを使う場合と、日付アーカイブ・テンプレートで「mode="entry_date"」のアトリビュートを指定する場合、search_limitアトリビュートで、検索対象の件数を制限しておく方が良いです(そうしないと、コメント/トラックバックが増えるほど再構築に時間がかかるようになります)。

・MTRecentComments/MTRecentPings
個々のエントリーについた最近のコメント(MTRecentComments)/トラックバック(MTRecentPings)を出力するコンテナタグです。
MTEntriesRecentlyCommented/MTEntriesRecentlyPingedタグのコンテナの中で使います。

標準では、最近のコメント/トラックバックを、新しいものから順に出力します。
古いものから順に出力したい場合は、「sort_order="ascend"」のアトリビュートを付加します。

・MTRecentCommentCount/MTRecentPingCount
最近のコメント(MTRecentCommentCount)/トラックバック(MTRecentPingCount)の数を出力する変数タグです。
MTEntriesRecentlyCommented/MTEntriesRecentlyPingedタグのコンテナの中で使い、それらのタグに指定したアトリビュートに沿って、件数が数えられます。

3.使用例

このプラグインを利用して、最近のコメント10件をエントリーごとにまとめて表示するには、以下のようにタグを組み合わせます。

<ul>
<MTEntriesRecentlyCommented comment_lastn="10">
  <li><$MTEntryTitle$>(<$MTEntryDate$>)
      <ul>
        <MTRecentComments>
        <li><$MTCommentAuthor$>(<$MTCommentDate$>)</li>
        </MTRecentComments>
      </ul>
   </li>
</MTEntriesRecentlyCommented>
</ul>

また、最近のトラックバック10件をエントリーごとにまとめて表示するには、以下のようにタグを組み合わせます。

<ul>
<MTEntriesRecentlyPinged ping_lastn="10">
  <li><$MTEntryTitle$>(<$MTEntryDate$>)
      <ul>
      <MTRecentPings>
        <li><$MTPingBlogName$>(<$MTPingDate$>)</li>
      </MTRecentPings>
      </ul>
   </li>
</MTEntriesRecentlyPinged>
</ul>

トラックバック(3)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/965.

本日もちまちまっとブログに機能追加です。最近のコメントと最近のトラックバックを表... 続きを読む

ドアの猫穴 - 工事中 (2009年7月 8日 12:48)

ブログのバージョンアップとリニュアル作業のため、しばらく表示が崩れることがありま... 続きを読む

3月になりました。 MovableTypeを5.01にアップして、ちょうど一月です。 この間やったことと言えば、広告とブログパーツを貼ったくらい。 しかも... 続きを読む

コメント(スレッド4件,コメント9件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.2 showBOO : (無題)

Recentsプラグインを使わせて頂いております。

MT4の環境で、最近のトラックバックとして、
本記事の例をそのまま使用すると、以下のようなエラーがでてリビルド出来ないものがあります。

Can't call method "entry_id" on an undefined value at /(MTPath)/plugins/Recents/Recents.pl line 127

それが、複数のブログを運営してますが、
同じコードを入れてもリビルド完了するブログとしないブログがあり、ちょっと見当が付きません。

上記のエラーコードで何か原因が突き止められないでしょうか?

よろしくお願い致します。

No.3  : (無題)

>showBOOさん
こんにちは。

ご質問の件ですが、Recents.plの129行目と130行目の間に、以下の赤字の行を追加してみてください。

my $trackback = MT::Trackback->load($obj->tb_id);
next if (!$trackback);
$entry_id = $trackback->entry_id;

No.4 showBOO : (無題)

直りました!!
ご指摘のコードを追加することで直りました。

ありがとうございます!

よろしければ原因を教えて頂けませんでしょうか?
(難しくてちんぷんかんぷんかも知れませんが。。)

よろしくお願い致します。

No.5  : (無題)

>showBOOさん
こんにちは。

カテゴリーに対するトラックバックがあることが、エラーの原因です。
追加した行は、カテゴリーに対するトラックバックを無視するための処理です。

No.6 showBOO : (無題)

なるほど。。。

カテゴリーへのトラックバックを許可設定しているのですが、実際は表示には何も使ってません。。。

お答え頂いてありがとうございました。

No.7 日下部理恵 : Movable Type 5.0 で使えますか?

こんにちは。お忙しいのに申し訳ありません。
2.10 このバージョンは、Movable Type 5.0 に対応していますか?
もし、使えない場合は、対応版はリリースされますか?
わがままを申し上げれば、ウェブサイトとブログ、両方に対応していると嬉しいのですが。

No.8  : Re:Movable Type 5.0 で使えますか?

>日下部理恵さん
こんにちは。

まだ動作を試してはいませんが、原理的にはMT5.0でも動作するはずです。
また、ウェブサイト/ブログのどちらでも動作すると思います。

No.9 日下部理恵 : Re:Movable Type 5.0 で使えますか?

2.10 このバージョンを Movable Type 5.0 にインストールしてみました。
ブログの方では、問題なく動いています。
ウェブサイトの方は、すべてのテンプレートをダイナミックパブリッシングにしていますので、いまは、確認していません。スタティックかPerl版ダイナミックパブリッシングにした場合は、試してみるつもりです。

すばらしい!! ありがとうございました。

No.1 louis vuitton outlet : (無題)

このブログは悪くなかった

コメントする