takaraism

記事に、所属する特定の親カテゴリにぶら下がっているサブカテゴリー名を表示したい

0

分かりにくいタイトルですが、
記事に設定されたカテゴリー設定で
親カテゴリーから判断してチェックを入れた特定のサブカテゴリ名を表示させたいのです。

例えばカテゴリー構成が以下のようになっていて、

カテゴリ1 - サブカテA
      - サブカテB
      - サブカテC
カテゴリ2 - サブカテC
        ・
        ・

記事には カテゴリ1、サブカテA と カテゴリ2、サブカテCにチェックを入れたとします。

カテゴリ1のカテゴリーアーカイブを開いた際、
記事のカテゴリーラベルに「カテゴリ1」「サブカテA」とそれぞれ表示し、
カテゴリ2を開いたときは、
「カテゴリ2」「サブカテC」というように表示したいのです。

サブカテAを開いたときは、

<MTHasParentCategory>  
    <MTTopLevelParent>  
    <$MTCategoryLabel$>
    </MTTopLevelParent>  

<$MTCategoryLabel$>
</MTHasParentCategory>

で、所属する親カテとサブカテを引っ張り出せますが、
親カテページにいる際は、どうしても親カテしか引っ張り出せません。

mt:Ifcategoryを使ってサブカテゴリ名を直接指定する最後の逃げ道は確保しているのですが・・・

このような呼び出し方はできるのでしょうか。
ご教授いただければ幸いです。よろしくお願いいたします。

返信(1)

| 返信する
  • >takaraismさん
    こんにちは。
    以下の手順でできます。

    ●プラグインのインストール
    拙作のEntrySubCategoriesプラグインをインストールします。

    http://www.h-fj.com/mt_plugin/EntrySubCategories_1_10.zip

    ●テンプレートの書き換え
    カテゴリアーカイブテンプレートのMTEntriesタグのブロック内に、以下のような部分を入れます。

    <$mt:SetVar name="is_first" value="1"$>
    <mt:ParentCategories>
      <mt:If name="is_first" eq="1">
        <$mt:Categorylabel setvar="cat_label"$>
        <$mt:SetVar name="is_first" value="0"$>
      </mt:If>
    </mt:ParentCategories>
    <ul>
    <mt:EntrySubCategories category="$cat_label" include_current="1">
      <mt:EntryIfInCategory>
        <li><$mt:CategoryLabel$></li>
      </mt:EntryIfInCategory>
      <$mt:SubCatsRecurse$>
    </mt:EntrySubCategories>
    </ul>
    

返信する


OpenID対応しています OpenIDについて