トップ > Movable Type > Category

Category: カテゴリー・アーカイブなど

カテゴリアーカイブのパンくずリスト

June 2, 2005  [ Category ]

パンくずリストの作り方はググるといくつか出てくる。で、そのなかで、MT hxxks - サブカテゴリとパンくずリスト (2)にて真琴さんは 親カテゴリのページを表示させたときだけ、「>」が2つ連続で出てきます との問題に対して、その解決策を提示している。

元となったソースは以下。

<p>
<a href="<$MTBlogURL$>"><$MTBlogName$></a> &#62;
<MTParentCategories glue="&#62;" exclude_current="1">
  <MTIfNonZero tag="MTCategoryCount">
    <a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a>
    <MTElse>
      <MTCategoryLabel>
    </MTElse>
  </MTIfNonZero>
</MTParentCategories>
&#62; <$MTArchiveTitle$>
</p>

で、ここで問題になったのが、 要するに、 exclude_current="1" を指定した場合、区切りが発生しない場合 ( = トップレベルカテゴリ ) でも 1 つは glue 属性の区切り文字が現れてしまう、ということのようです。  と指摘されているが、正確には <MTParentCategories glue="&#62;" exclude_current="1"> の前後に手動で区切り文字を1つずつ入れているために、MTParentCategories からの出力がないトップレベルカテゴリの場合には区切り文字が2つ連続することになる。

で、2つばかり回避策を提示されていたが、もうひとつ回避策を思いついたので記載。トップカテゴリの場合には区切り文字が余分が出てしまうなら <MTParentCategories glue="&#62;" exclude_current="1"> の前後で手動で入れている区切り文字の1つをトップカテゴリの場合には表示しないようにすればいいのではないかと。

つまりはこんな感じ。

<p>
<a href="<$MTBlogURL$>"><$MTBlogName$></a><MTHasParentCategory> &#62;</MTHasParentCategory>
<MTParentCategories glue="&#62;" exclude_current="1">
  <MTIfNonZero tag="MTCategoryCount">
    <a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a>
    <MTElse>
      <MTCategoryLabel>
    </MTElse>
  </MTIfNonZero>
</MTParentCategories>
&#62; <$MTArchiveTitle$>
</p>

こんな感じで自サイトでは使ってみている。

 )
XREAAD