現在リニューアル中の和菓子ブログは、一つの和菓子レビューについて、複数のカテゴリを設定しています。
まず、和菓子屋、和菓子の種類、和菓子の味、イベントなどの大カテゴリを作成します。
そのそれぞれの大カテゴリ下に具体的な和菓子屋名だとか、種類だとかの小カテゴリを作成し、そこに、ブログ記事をカテゴリ登録しています。
そうすると、小カテゴリのカテゴリアーカイブは、エントリー一覧でも良いのですが、大カテゴリをエントリー一覧にしてしまうと、全記事一覧が、複数出来てしまうような形になり、具合が悪いです。
そこで、特定のカテゴリアーカイブについては、サブカテゴリの一覧を表示させ、その他のカテゴリアーカイブは、エントリー一覧を表示させるカスタマイズを行いました。
カスタマイズは、自己責任で、よろしくです。
概要
mtsetVarBlockで、categoryBasenameの値を代入し、mt:if で、条件分岐させる
以下は、カスタマイズ手順。
※<>は、全角なので、注意!
各カテゴリの出力データに、カテゴリフォルダ名の値を持たせる
mtsetVarBlockを使って、categoryBasenameの値を代入する。
カテゴリアーカイブテンプレートの始めに、以下を記述。
<mt:setVarBlock name="category_name"><$mt:categoryBasename$></mt:setVarBlock>
意味は、「category_name」に、「categoryBasename」の値を代入せよ。
category_nameは、分かりやすく、適当に決めた名前。
<$mt:categoryBasename$>は、カテゴリのフォルダ名。
カテゴリを特定出来るなら、<$mt:categoryLabel$>、<$mt:categoryDescripsion$>でも良いが、カテゴリのフォルダ名が、一番変更されない可能性が多いので、<$mt:categoryBasename$>にした。
カテゴリアーカイブテンプレートは、カテゴリの数だけHTMLなどのファイルを出力する。
カテゴリが、10個あれば、その10個のカテゴリについて、カテゴリアーカイブテンプレートに沿ったファイルを一つずつ、計10個出力する。
上記の記述をカテゴリアーカイブテンプレートに追加することによって、出力を10回繰り返す時に、それぞれの出力で、それぞれのカテゴリの値を保持出来る。
後は、その保持したカテゴリの値が、条件にあえばこちらのテンプレート、条件にあわなければそちらのテンプレート、というように、条件分岐させることで、異なるテンプレートを出力出来る。
元のテンプレート
<mt:Entries>
<$mt:include module="共通ブログ記事の概要"$>
</mt:Entries>
カスタマイズ後のテンプレート
<mt:if name="category_name" eq="apple">
<mt:subCategories>
<mt:subCatIsFirst><ul></mt:subCatIsFirst>
<li><a href="<$mt:categoryArchiveLink$>"><$mt:CategoryDescription$></a></li>
<mt:subCatIsLast></ul></mt:subCatIsLast>
</mt:subCategories>
<mt:else>
<mt:Entries>
<$mt:include module="共通ブログ記事の概要"$>
</mt:Entries>
</mt:if>
カテゴリが複数の場合は、
<mt:if name="category_name" eq="apple">
部分が、
<mt:if name="category_name" like="apple|orange">
となる。
eqが、like となり、「|」で区切る。
タイトル部分もカスタマイズ
また、タイトルも、記事一覧ではおかしいので、カテゴリ一覧に変更する。
元のテンプレート。
<h1 id="page-title" class="category-header"><$mt:CategoryDescription$>記事一覧</h1>
変更後のテンプレート
<mt:if name="category_name" like="apple|orange">
<h1 id="page-title" class="category-header"><$mt:CategoryDescription$>内カテゴリ一覧</h1>
<mt:else>
<h1 id="page-title" class="category-header"><$mt:CategoryDescription$>記事一覧</h1>
</mt:if>
以上のカスタマイズで、指定したappleとorangeのカテゴリについては、カテゴリに所属する記事一覧ではなく、サブカテゴリが表示される、はずです。
たぶん。
※管理人もスタンダード・プレミアムを利用中!
▼ さくらのレンタルサーバ
コメントする