Entry Category Entries Plugin
現在のエントリーのプライマリカテゴリーに属するエントリーをリストアップするMovable Typeプラグインを公開します。
EntryCategoryEntries Plugin.ja JP - Ogawa Code
このプラグインは、現在のエントリーのプライマリカテゴリーをカテゴリーに設定しているエントリーをリストアップするMTEntryCategoryEntriesコンテナタグを追加するものです。このコンテナタグは、エントリーコンテキスト、すなわちMTEntriesコンテナの内部、もしくは個別エントリーアーカイブで利用できます。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/328
みんなが MTTagInvoke で実現していたエントリーページでの「このカテゴリの最新記事一覧」がこのプラグインで簡単にできるプラグインで The blog of H.Fujimoto さんの EntryCategoriesModified プラグインと併用すれば「このカテゴリー"ほげほげ"の最新記事10件」などとして使えますね。
惜しむらくはサイドバーに表示させようとしているのですが PHP インクルードでサイドバーを呼び出すと <MTEntries> エントリーのコンテキスト外で使われた可能性があります。 といったエラーがでてしまいます。PHP インクルードを使わないと大丈夫なんですが。
MTTagInvokeは確かに便利なのですが、エラー処理が十分に行えません。例えば、<$MTEntryCategory$>が得られなかったときに、その値を使って
<MTEntries category="...">...</MTEntries>
としたときに得られる結果がどうなるか分かりません、MTEntries自身が何とかしない限り。本当はCategoryが得られなかった何もせず、得られればMTEntriesを実行するようにしたいところですよね。
こうしたことに気を使うくらいなら簡単なプラグインにした方が楽でしょ? ということで作ってみました。
PHPでインクルードの件ですが、MT*Entry*CategoryEntriesですから、エントリーコンテキストでしか使用できない仕様です。
どうしても必要ならば、サイドバー用にカテゴリーアーカイブのテンプレートをひとつ追加し、MTEntriesを使ってリストを生成しておきます。そしてそのカテゴリーアーカイブを個別エントリーアーカイブからインクルードすればよいだけです。いずれにしろ、このプラグインの守備範囲ではありません。
エントリーアーカイブページで表示しているときに、自エントリーが区別できる機能があればいいなあと思いました。
うんうん、それはそうなんですね。
MTEntryCategoryEntries Pluginは、ソースを見ると分かるように現在のエントリーのカテゴリーコンテキストを作り出してその中でMTEntriesを呼び出しているだけです。かたやrecently-pinged-on Pluginは、MTEntriesにrecently_pinged_on="XX"というオプションを指定したときだけ、MTEntriesから処理をスティールする仕組みです。
これらは既存のMTEntriesの機能を拡張するのにそれぞれ別の方法を採ってみたものです。
私としては、MTEntriesの実装がもっとconstructiveに作られていることを期待しています。もう少し詳しく書くと、あるコンテキストでのエントリーの集合を生成するgenerator、それを選別・並び替え・変更するfilter、そしてrendererの3種の組み合わせで、新しい拡張MTEntriesがユーザー・開発者の必要に応じて作り出せるのが望ましい実装だということです。
例えば、MTEntryCategoryEntriesに関して言えば、現在のエントリーのカテゴリーに属するエントリーリストを生成するgeneratorと、その中から現在のエントリーを取り除くfilter、それを新しいものから順にソートするfilter、その先頭から10件を取り出すfilter、それをテンプレートに従ってレンダリングするrendererがあれば実現できます。このgeneratorやfilterを交換すれば別の目的にも使える、というわけです。
はじめまして^^
同一カテゴリ内のエントリ一覧表示について、探していたところ貴サイトに行き着き、参考にさせて頂きました。
以前は、MTTagInvokeで実現していたのですが、過去のエントリの一覧には反映されなかったりなどの不満があったので、他プラグインを探していたところだったんです♪
ありがとうございました。
はじめて投稿させていただきます。
再構築ができなくて困っています。
MT3.2のインデックスのアーカイブページを再構築しますと
以降のエラーが出ます。対処方法がわかりません。
「テンプレート「アーカイブページ」の再構築に失敗しました: タグでエラーが発生しました: タグが適切なコンテキスト外で使われました。 」色々調べて方法を探してみたのですが、お手上げ状態です。
的外れな質問でしたら許してください。
「このコンテナタグは、エントリーコンテキスト、すなわちMTEntriesコンテナの内部、もしくは個別エントリーアーカイブで利用できます。」と書いてある通りです。
はじめまして。
MT3.31でMTEntryCategoryEntries Pluginを使わせてもらおうと思い組み込んだら、再構築の際に
Not an ARRAY reference at lib/MT/Template/ContextHandlers.pm line 1226.
とエラーが発生しました。
MT3.31では利用できないのでしょうか。
なんとなく対策しました。