mayona

カテゴリー月別アーカイブで同階層の他カテゴリーへのリンク

0

リンクの生成がうまくいかずご質問させていただきます。

/cat1/2011/01/index.html
現在地がここ↑だとします。
カテゴリーが「cat1」で日付が2011年1月のものをリストしています。

このページに、他カテゴリーへの同階層に移動するリンクを作りたいです。

/cat1/2011/01/index.html
/cat2/2011/01/index.html
/cat3/2011/01/index.html

という感じで同月で存在してる他カテゴリーへのリンクを作りたいのですが、
以下のソースですと、
<MTCategories>
<a href="<MTArchiveLink>"><MTCategoryLabel></a> /
</MTCategories>
記事の存在の有無に関わらず、カテゴリーすべての「カテゴリー月別アーカイブ」へのリンクが表示されてしまいます。

<a href="/cat1/2011/01/index.html">cat1</a> / <a href="/cat2/2011/01/index.html">cat2</a> / <a href="/cat3/2011/01/index.html">cat3</a>
cat2には2011年1月の記事がないのにリンクが生まれてしまう。

それぞれのカテゴリーの特定の月の記事の数が取得できれば、非表示にできそうですが、カテゴリー月別アーカイブテンプレートではうまく取れない状態です。

うまくお伝えできているか不安ですが、良い方法などアドバイスいただきたくよろしくお願いします。

返信(2)

| 返信する
  • カテゴリー月別アーカイブ内で,同じ月の他カテゴリーのアーカイブリンクを表示したいということでよろしいでしょうか?
    MTCategoriesで駄目なら,MTArchiveListのカテゴリー月別で,現在の年月と一致する場合のみリンクを出力するようにすればいいのではないかと思います.
    ざっくりと書くと…

    <$MTEntryDate format="%Y%m" setvar="emonth"$>
    <MTArchiveList archive_type="Category-Monthly">
      <$MTArchiveDate format="%Y%m" setvar="cmonth"$>
      <MTIf name="cmonth" eq="$emonth">
         <a href="<$MTArchiveLink$>"><$MTCategoryLabel$></a> /
      </MTIf>
    </MTArchiveList>

    …こんな感じですかね?
    即興で書いたものなので,typoがあったらごめんなさいということで(^^;

  • HashiMさま

    ありがとうございます!
    試行錯誤の上、なんとかできました。

    やはりパスなどを取得して振り分けしないとできないですよね。
    私はページ自身のArichivelinkを取得して、%Y%mの部分だけを取り出し、

    内でその文字列が入っているがあった場合にそれを表示する
    というれでいけました。
    記事の有無で判定しようとして、遠回りしました。。。(ここでは取れなそうですね)

    ソースのご提示もありがとうございます。
    流れがいっしょで安心しました。
    拙い説明をご理解いただき感謝です!

返信する

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