Movable Type 備忘録

 

 カテゴリ内の最新エントリ一覧を表示する

自由度の高さで定評のあるMovableType(ムーバブルタイプ)ですが、そんなMovableType(ムーバブルタイプ)にもできないことがあります。

説明の前に、その例を挙げてみます。 以下は、同じカテゴリ内に属する最新エントリ5件を表示しようとしています。

<MTEntries lastn="5" category="<$MTEntryCategory$>">
<ul>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</ul>
</MTEntries>

なぜ、このコードではダメなのか分かりますか!?

実はMTEntriesコンテナタグの属性である category 属性では、変数を受け付けてくれません。

<MTEntries lastn="5" category="<$MTEntryCategory$>">

青い字の部分で、指定したカテゴリ名に属するエントリを表示させようとしています。
一見問題なさそうに見えます。

以前、何度もトライしたのですがまったくフィルタリングされないので諦めていました。
でも、やっぱり不便に思う人も多く、これを可能にするプラグインがありました。

そんな便利なMTTagInvokeプラグインをご紹介します。

今回参考にさせていただいたサイトは、ぐーたら on MT様です。

▼MTTagInvokeプラグインの入手はこちらから▼
http://www.nonplus.net/software/mt/MTTagInvoke.htm

カスタマイズ方法

まず、MTTagInvokeプラグインをサーバーにアップロードします。
上記URLからダウンロードしたファイルを展開して、mt/plugins の中にアップロードしてください。

- 2006.08.12 追記 -

MovableType(ムーバブルタイプ)3.3をお使いの人は、MTTagInvoke.plをテキストエディタで開いて、以下のように修正してください。

25行目
修正前
MT::Template::Context->add_container_tag(TagName => \&MTTagName );
修正後
MT::Template::Context->add_container_tag(TagInvokeName => \&MTTagName );

青い字の TagName が、MovableType(ムーバブルタイプ)3.3のタグ機能と名前がぶつかってしまうため、赤い字のように名前を変更します。 どんな名前に変更しても構いませんが、その際、他とかぶらないような名前にしてくださいね。

修正したら保存してサーバにアップロードしてください。

今回参考にしたサイトは、小粋空間様です。

- 2006.09.09 追記 -

MTTagInvokeプラグインがバージョンアップされて、上記修正をしなくてもよくなりました。 その代わり、MovableType(ムーバブルタイプ)3.3 と共存するために、一部タグ名称が変更されたようです。

MTTagAttribute -> MTTagInvokeAttribute
MTTagContent -> MTTagInvokeContent

以上、気をつけてください。

カテゴリ内の最新記事一覧を表示する例を記します。
以下のコードを個別エントリ・アーカイブの、カテゴリ内の最新エントリ一覧を表示させたい部分に追加します。

<ul>
<MTTagInvoke tag_name="MTEntries">
<MTTagInvokeAttribute name="category"><$MTEntryCategory$></MTTagInvokeAttribute>
<MTTagInvokeAttribute name="lastn">5</MTTagInvokeAttribute>
<MTTagInvokeContent>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTTagInvokeContent>
</MTTagInvoke>
</ul>

青い字の部分では、MTTagInvokeプラグインをMTEntriesコンテナタグに適用することを意味しています。
赤い字の部分では、MTEntriesコンテナタグのcategory属性に<$MTEntryCategory$>の指定と、lastn属性に最新エントリ5件分を指定しています。
緑の字の部分では、MTTagInvokeプラグインを適用したことで、<MTEntries>が<MTTagInvokeContent>に置き換わったと思ってください。

後は、いつもの保存して再構築を行います。

以上で、カテゴリ内の最新エントリ一覧を表示することができました。
わたしの個別エントリ・アーカイブでも一覧表示していますが、上記コードを外部にファイル化して、個別エントリ・アーカイブ内でインクルードしたら、まったく表示されません。

どうやら、個別エントリ・アーカイブ・テンプレートに直接埋め込んでおかないとダメなようですね。
また、同じカテゴリ内にエントリを追加しても、過去のエントリの最新エントリ一覧には反映されませんでした。その都度、個別エントリ・アーカイブを再構築しないとダメです。

 Trackback Pings(3)

from movabletype

少数人数の会社に求められるスタッフの要素 Prototype.js を使って、MovableTypeで最新記事を表示する MovableTypeを自動的に...

from Movable Type テンプレート 無料配布 - 商用BLOG専門店

MTTagInvoke0.9がMTTagInvoke1.0へバージョンアップし、色々と変更がありました。エラーとかも。

from How To? MyPC?and..Diary

・MT3.2で設定したタグ(プラグイン不使用で表示) " onmouseover...

 Comments(2)

#1: Posted by 玉川 泉 [RES]

 テンプレート8を使わせていただこうと現在、カスタマイズをしております。渋いデザインでとても気にいっています。
 ご質問をお願いします。カテゴリ内の最新エントリ一覧を表示したいと思い、ご推奨のMTTagInvokeプラグインをインストールし、ホームページご掲載のコードをペーストして、再構築したのですが、以下のようなエラーメッセージがでてしまいます。
「テンプレート「メインページ」の再構築に失敗しました: <MTIfArchiveTypeEnabled>タグでエラーが発生しました: <$MTCategoryLabel$>タグが適切なコンテキスト外で使われました。」
 中央カラムの最新エントリーの下に表示させようとしたのですが、だめでした。場所を変えてみたり、いろいろ試したのですが、うまくいきません。
対応策をご指導ください。

#2: Posted by bzbell [RES]

>>1 玉川 泉 さん

はじめまして^^

こちらのカテゴリ内の最新エントリ一覧を表示する②を試してみてはどうでしょう。

上記はMTEntryCategoryEntriesプラグインというのを使ってまして、わたしも使っています。
テンプレート的にもすっきりしたかんじになるのでオススメです( ̄∇ ̄)b

とはいっても、MTTagInvokeプラグインは割りと重宝するプラグインなので、ほっとけませんね。

右上にContactというリンクがります。
それはメールフォームなのですが、玉川 泉さんがカスタマイズした部分を抜粋して送ってもらえますか。
現状ではなんとも答えられないので…。

 Post a Comment

コメント用フィード