お知らせ

Movable Type プロフェッショナル・スタイル MT4.1対応 2008年4月8日

Movable Typeプロフェッショナル・スタイル」が発売されました。
Movable Typeの第一線に関わる人々の共著で、Movable Typeをビジネスサイト構築に活かすテクニックが満載です。
Movable Typeでサイト構築を行っているWeb制作会社等の方々にお勧めです。

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

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

| コメント(5) | トラックバック(1)

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

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

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

Recents_2_10.zip

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

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

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

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

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

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

include_blogs="x,y,z" 検索対象のBlogのIDを指定します。
「include_blogs="all"」とすると、すべてのBlogを対象に検索します。
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>

トラックバック(1)

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

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

コメント(スレッド1件,コメント5件)

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

No.2 showBOO Author Profile Page: (無題)

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

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

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

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

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

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

No.3  Author Profile Page: (無題)

>showBOOさん
こんにちは。

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

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

No.4 showBOO Author Profile Page: (無題)

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

ありがとうございます!

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

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

No.5  Author Profile Page: (無題)

>showBOOさん
こんにちは。

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

No.6 showBOO Author Profile Page: (無題)

なるほど。。。

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

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

コメントする