Movable Type 備忘録
EntryCategory プラグイン
- Next Page: CommentSubscribe プラグイン
- Prev Page: タグクラウドのフォントサイズの計算式
こんばんわ^^
小粋空間さんとこで、デフォルトの MTEntryCategory ファンクションタグをブロックタグとして利用できるプラグインが公開されてました。
どういうことかというと、元々の MTEntryCategory タグはエントリに関連付けられた、プライマリカテゴリ名称を取得するためだけのタグでした。
それをブロックタグとして利用することで、カテゴリ名称だけでなく、URL や カテゴリ ID などカテゴリに関連するタグも使えるようになるわけですね ( ̄∇ ̄)b
たとえば、プラグインを使用せずプライマリカテゴリの URL、カテゴリ名称を取得しようとしたら以下のようになります。
<MTEntryCategories>
<mt:setvarblock name="cat_link"><$MTCategoryArchiveLink$></mt:setvarblock>
<mt:setvarblock name="cat_name"><$MTCategoryLabel$></mt:setvarblock>
</MTEntryCategories>
<a href="<mt:getvar name="cat_link" index="0">"><mt:getvar name="cat_name" index="0"></a>
まず、赤字の部分でエントリに関連付けられたすべてのカテゴリ名称とその URL をピックアップします。
そして青字、緑字のように上記でピックアップしたリスト(配列)のインデックス 0 番目のデータを取得することで実現可能です。
それが以下のようなタグで済みます。
<MTEntries>
<MTEntryCategory>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>
</MTEntryCategory>
</MTEntries>
カンタンですね ( ̄∇ ̄)b
ただし、気をつけることはデフォルトの MTEntryCategory と同一タグ名称なので、既に使用中の場合はテンプレートを書き換える必要があります。
わたしのサイト(配布してるテンプレート含む)では、エントリにカテゴリが関連付けされてるか否かを判断するために MTEntryCategory タグを利用しているため、残念ですがプラグインのインストールは見合わせました。
ですので、ちゃんとご自分のテンプレートを確認してから利用した方がよいですよ。
このプラグインはデフォルトタグとして取り込んで欲しいですね ( ̄∇ ̄)
Trackback Pings(0)
No trackbacks found.
Comments(2)
-
#2: Posted by bzbell
[RES]
>>1 yujiro さん
こんばんわ^^
先日の MT4LP5 はご苦労様でした

わたしは参加できなかったけど大盛況に終わったようで何よりです
> ちなみに、プラグインのファイル名と、それにあわせて「EntryCategory」という文字を3ヶ所(下記)、「EntryPrimaryCategory」などに書き変えれば、多分併用できます。
ありがとうございますぅ

yujiro さんがおっしゃる方法で実は使ってたりしてます
たぶん yujiro さんがあえてタグ名を別名にしなかったのも MTEntryCategory タグの機能を差し替えたかったのだと、勝手に解釈したのでタグ名称変更については触れませんでした。
でも嬉しいです

ありがとうございました


こんばんは。
ご紹介ありがとうございました。
ちなみに、プラグインのファイル名と、それにあわせて「EntryCategory」という文字を3ヶ所(下記)、「EntryPrimaryCategory」などに書き変えれば、多分併用できます。
:
(略)
:
package MT::Plugin::EntryCategory;
:
(略)
:
my $plugin = MT::Plugin::EntryCategory->new ({
:
(略)
:
$r->{EntryCategory} = \&_hdlr_entry_category;
:
(略)
: