Movable Type 備忘録

 特定のカテゴリを表示させないようにする

作ったカテゴリをこのページでは表示したくない!! そんな時ってありませんか?

例えばわたしのサイトを例にすると、カスタマイズというサブカテゴリを作っています。
このカスタマイズカテゴリのページを表示したとき、右のカテゴリ一覧に表示させないようにするとか…。

わたしの場合は、該当カテゴリのページを表示させていても、クリックできるようにしていますが、人によっては嫌な人いますよね。

これは人それぞれの好みなので、何が良くて悪いかなんてありません。
とりあえず表示させたら嫌だっていう人のために、特定のカテゴリを表示させないようにするカスタマイズのご紹介です。

今回参考にさせてもらったサイトは、21世紀のアフィリエイト通販生活様です。

MovableType(ムーバブルタイプ)の特定のカテゴリを表示させないようにするには、プラグインを使用して、表示させたくない特定のカテゴリ名を指定する必要があります。

カスタマイズ方法

今回のカスタマイズでは、FilterCategoriesプラグインを使います。
このプラグインを使うことにより、ブログ内の全カテゴリから、指定されたカテゴリ名を省くことができます。

▼FilterCategoriesプラグインの入手はこちらから▼
http://www.staggernation.com/mtplugins/#FilterCategories

  1. プラグインをアップロードします。
    入手したFilterCategoriesプラグインをmt/plugins/ディレクトリの中にアップロードします。

  2. 表示させたくないカテゴリを指定します。
    カテゴリ名を表示するタグのアトリビュートとして、exclude="隠したいカテゴリ名"という形式で表示させたくないカテゴリ名を指定します。

    1. <MTCategories>
    2. <MTFilterCategories exclude="隠したいカテゴリ名">
    3.           :
    4.           :
    5. </MTFilterCategories>
    6. </MTCategories>

    複数のカテゴリ名を指定したい場合には、『exclude="隠したいカテゴリ名1 | 隠したいカテゴリ名2"』のように指定できます。

    1. <MTCategories>
    2. <MTFilterCategories exclude="隠したいカテゴリ名1|隠したいカテゴリ名2">
    3.           :
    4.           :
    5. </MTFilterCategories>
    6. </MTCategories>

    また、特定のカテゴリだけ表示したいという場合には、『include="表示させたいカテゴリ名"』のように指定することで、指定カテゴリのみ表示させることもできます。

    1. <MTCategories>
    2. <MTFilterCategories include="表示したいカテゴリ名">
    3.           :
    4.           :
    5. </MTFilterCategories>
    6. </MTCategories>
  3. 一通り変更したら、更新したテンプレートを保存して再構築してください。

以上で、特定のカテゴリを表示させないようにできました。

- 2006.11.03 追記 -

MovableType(ムーバブルタイプ) 3.3からは、このプラグインなしでも特定のカテゴリを表示させないなどのことができるようになりました。 AND、OR、NOTの条件を組み合わせることで、カテゴリのフィルタリングが行えます。 カンタンな例を以下に記します。

  1. カテゴリ1を除くすべてのカテゴリを表示させる場合
  2.  
  3. <MTEntries category="NOT カテゴリ1">
  4.     :
  5.     :
  6. </MTEntries>
  1. カテゴリ1とカテゴリ2以外のすべてのカテゴリ表示した場合
  2.  
  3. <MTEntries category="NOT (カテゴリ1 OR カテゴリ2)">
  4.     :
  5.     :
  6. </MTEntries>
  1. カテゴリ1またはカテゴリ2を表示した場合
  2.  
  3. <MTEntries category="カテゴリ1 OR カテゴリ2">
  4.     :
  5.     :
  6. </MTEntries>
  1. カテゴリ1かつカテゴリ2を表示した場合
  2.  
  3. <MTEntries category="カテゴリ1 AND カテゴリ2">
  4.     :
  5.     :
  6. </MTEntries>

 Trackback Pings(0)

No trackbacks found.

 Comments(2)

#1: Posted by tetsu @ November 21, 2008 [REPLY]
user-pic

はじめまして。
ソートした最新のカテゴリーを5件表示するといった制限を加えることはできるのでしょうか。

#2: Posted by Author Profile Page bzbellからtetsuへの返信 @ November 22, 2008 [REPLY]
user-pic

>>1 tetsu さん

おはよございます^^

ちょとよく分からないのですが、最新のカテゴリでソートというのは作成日付によるソートという意味でしょうか。カテゴリに関して日付によるソートはできません。

任意の順番で表示させたいのであれば手っ取り早くプラグインを使う方法があります。
http://www.h-fj.com/blog/archives/2008/10/20-164959.php
わたしは使ってませんがこのプラグインを使えば任意の順番に並べ替えることができるようですうぅ~ん
上記プラグインを使って MTCategories ブロックタグで一覧表示すればできるのではないでしょうか。( 未確認 )

また、最新!? 5 件については MTCategories ブロックタグの中でカウンタをチェックすることで 5 件分を表示することができます。
たとえば、以下のように __counter__ が 5 件以内の場合表示、それ以外は除外というようにやります。

<MTCategories>
<mt:If name="__counter__" le="5">
<$MTCategoryLabel remove_html="1" setvar="catname"$>
<mt:IfNonZero tag="MTCategoryCount">
<p><a href="<$MTCategoryArchiveLink$>"><mt:Var name="catname"></a></p>
<mt:Else>
<p><span><mt:Var name="catname"></span></p>
</mt:IfNonZero>
</mt:If>
</MTCategories>

以上です。
ちなみにわたしはプラグインを使わずにカテゴリのソートを行ってます。
カテゴリ名の先頭に <00001> というような、<> で囲った数字の羅列をを付加することで降順に表示されるようになります。
実際に使うときは以下のように remove_html モディファイアと併用することで <0001> が削除されて表示さるようになります。

<$MTCategoryLabel remove_html="1"$>

こんなかんじの内容でよかったでしょうかあせあせ

 Post a Comment

 

コメント用フィード