URLで指定されている年月をトピックパスに表示する

この記事は公開日より10年以上経過しているため、現在の内容と異なる可能性があります。

よくある企業サイトの「お知らせ」ページでは、カテゴリ(もしくは小ブログ)として「お知らせ」を作成して、その中にエントリーを登録していきます。
この方法ですと、トピックパス(パンくずリスト)は、下記のようになります。

ブログ名>お知らせ(カテゴリ)>エントリータイトル

エントリー記事が多いサイトですと、エントリーを年単位、年月単位で分割して展開したいことがあります。

ブログ名>お知らせ(カテゴリ)>2013年>エントリータイトル

ver1.7.0以前でこれを実現しようとしますと、子カテゴリとして2013年を作成する必要がありました。

子カテゴリを作成しない方法

次のバージョンver1.7.1(仮)から、URLに使われるURLコンテキストから年、月、日をグローバル変数として扱えるようになります。
追加されたローバル変数とともにテンプレートエンジン IFブロックを使うことで、年月をトピックパスに表示させます。
ポイントは、年月の値が無い場合に「2013年」の「年」の字や、「月」の字を表示させないようにしています。

%{DATE_YEAR}:年
%{DATE_MONTH}:月
%{DATE_DATE}:日

<p id="topicpath"><!-- BEGIN_MODULE Topicpath id="topicPath" -->
<!-- BEGIN blog:loop -->
<!-- BEGIN glue -->
&gt;
<!-- END glue -->
<a href="{url}">{name}</a>
<!-- END blog:loop -->
<!-- BEGIN category:loop -->
<!-- BEGIN glue -->
&gt;
<!-- END glue -->
<a href="{url}">{name}</a>
<!-- END category:loop -->
<!-- BEGIN_IF [%{DATE_YEAR}/nem/] -->
<!-- BEGIN_IF [%{DATE_MONTH}/nem/] -->
&gt;
<a href="%{CATEGORY_URL}%{DATE_YEAR}/%{DATE_MONTH}/">%{DATE_YEAR}年%{DATE_MONTH}月</a>
<!-- ELSE -->
&gt;
<a href="%{CATEGORY_URL}%{DATE_YEAR}/">%{DATE_YEAR}年</a>
<!-- END_IF -->
<!-- END_IF -->
<!-- BEGIN entry -->
<!-- BEGIN glue -->
&gt;
<!-- END glue -->
<a href="{url}">{title}</a>
<!-- END entry -->
<!-- END_MODULE Topicpath --></p>

同じタグ付けがされている記事