この内容はfairgroudのhottopicsに書きたいのだが、書いても直ぐに公開されないため速攻性のある有意義なものにならないので、こちら書く。後に転載するかも(面倒なのでしないかも)。でもこうやってコンテンツを作れるのにも関わらず、編集の制限で書きずらいというのはコンテンツサプライヤーとしてどうんだろうかとおもう > 含む俺。
リンク: Twitter / CATOjun: 【急募】MT4::特定のカテゴリーだけアーカイブを作 ....
【急募】MT4::特定のカテゴリーだけアーカイブを作成しない方法。
というのを聞かれたので以下に。
というか、これ本当はMTでもうちょっと分かり易い実装しておいてほしいとおもうんだけど。。。
以下のようにやります。
- 該当するアーカイブテンプレートを開く
- 「テンプレートの設定」で、アーカイブマッピングのパスをカスタムにする。
- カスタムで編集できるインプットボックスの中には実はMTタグが使えるので、特定のカテゴリーだけをカテゴリーアーカイブを出力しないならこうすると実現するかも。
<$mt:setvar name="catName" value="foo$>
<mt:setVarBlock name="thisCatName"><$mt:CategoryLabel$></mt:setvarblock>
<mt:if name="catName" eq="$thisCatName">
ーーここには出力パスは書かないーー
<mt:elseif>
ーーここには出力パスを書くーー
</mt:if>
fooは特定したいカテゴリーを書いておいて、それと現在のCategoryLabelがイコールなら出力パスはないので出力されない。elseIFなら出力パスがあるので出力される。
実際にはこれを一行にして書く必要があるけど、考えかたはこんな感じ。このままで動くかはテストしてないので、当該の人は動作確認したら教えてください。
ちなみにmt:CategoryLabelをmt:EntryCategoryに変更するとパーマリンクの抑制にもつかえる。つーかmt:IfNonCategoryっていうタグを追加しちゃうと簡単でいいかも。いくつかそれに類するプラグインもあるみたいだけど、それほど大きくプラグインなんぞ入れて制御するもんでもないような気がする。なんなら、あとで作ってもいいよ? > mt:IfNonCategory。つっても、大抵のものはOgawa::Memorandaさんとかに代表される有識者がサックリつくってくれてたりするんだよなぁー(笑)
ちなみに、単純に出力パス名を変更するだけなら、上記のパスのところを以下のURLのドキュメントを参照して変更すれば良いです。
http://www.movabletype.jp/documentation/appendices/archive-file-path-specifiers.html
問) ファイル名 index.htmlをindex_cat.htmlに変更したい。
答) 元が %y/%m/%-f だった場合は、%y/%m/%F_cat.html とする。
当然、先に書いたMTタグでの分岐の仕方をと組み合わせたら、特定のカテゴリーでだけ変更するということもできます。
もっと楽にできるよ。っていう方法がればツッコミよろしくです。
![]() |
Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 by G-Tools |

