個別エントリ・カテゴリアーカイブにカテゴリリスト表示を追加

Movabletypeにて個別エントリ・カテゴリアーカイブの所属するカテゴリは表示されているのですが、他のカテゴリは表示されていません。
別のカテゴリを見たいときはいったんトップページに戻ってから再度カテゴリを選択する必要があります。
そこで、個別エントリ・カテゴリアーカイブにカテゴリリストを表示し、おまけに自分が属するカテゴリを強調する方法を考えました。


わたしのBLOGは全てPHPですので、PHPを前提として書きます。応用すればPHPでなくても可能だとは思いますが、動作確認していませんのでご了承ください。
カテゴリリストをどのページでも利用できるようにするために、[インデックス・テンプレート]に新しいインデックス・テンプレートを作ります。
テンプレートの名前、出力ファイル名は任意につけて頂いてかまいません。
今回は、下記のとおりとします。
テンプレートの名前:カテゴリリスト
出力ファイル名:archives/CatList.php
[インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する]にチェックします。これは投稿するたびにリストを書き換える必要があるためにチェックしておきます。
テンプレートの中身は下記のとおりです。

<MTSubCategories>
<MTSubCatIsFirst><ol></MTSubCatIsFirst>
<MTIfNonZero tag=”MTCategoryCount”>
<li><div class=”bold<$MTArchiveCategory$>”><MTHasParentCategory>└<MTElse>●</MTElse></MTHasParentCategory><a href=”<$MTCategoryArchiveLink$>” title=”<$MTCategoryDescription$>”><MTCategoryLabel></a> (<$MTArchiveCount$>)</div>
</MTIfNonZero>
<MTSubCatsRecurse max_depth=”3″>
</li>
<MTSubCatIsLast></ol></MTSubCatIsLast>
</MTSubCategories>

説明:
カテゴリのリストをサブカテゴリを含めて表示するようにします。
<div class=”bold<$MTArchiveCategory$>”>の部分でスタイル(boldカテゴリ名)を適用するという宣言を入れて起きます。
次にカテゴリアーカイブのテンプレートを修正します。
<HEAD>部にスタイルを宣言します。
<STYLE type=”text/css”>
<!–
.bold<$MTArchiveTitle$> {
font-weight: bold;
color: red;
}
–>
</STYLE>

説明:
スタイル(.boldカテゴリ名)を宣言します。
カテゴリリストを表示したい部分に下記のように追加します。
<?php include “http://BLOGのURL/archives/CatList.php”; ?>

説明:
MTIncludeで試みたのですが、なぜかエラーが発生してリビルドが出来ませんでした。そのため、PHPincludeで読み込んでいます。
これでカテゴリーアーカイブのページにカテゴリリストが追加され、自分のカテゴリが強調表示されるようになりました。
次に個別エントリのテンプレートを修正します。
<HEAD>部にスタイルを宣言します。
<STYLE type=”text/css”>
<!–
<MTEntryCategories glue=”, “>
.bold<$MTCategoryLabel$>
</MTEntryCategories>
{
font-weight: bold;
color: red;
}
–>
</STYLE>

説明:
自分の属するカテゴリを全て列挙しスタイル(.bold属するカテゴリ名)を宣言します。
カテゴリリストを表示したい部分に下記のように追加します。
<?php include “http://BLOGのURL/archives/CatList.php”; ?>

これでカテゴリーアーカイブのページにカテゴリリストが追加され、自分の属するカテゴリが強調表示されるようになりました。複数のカテゴリに属している場合もOKのはずです。

個別エントリ・カテゴリアーカイブにカテゴリリスト表示を追加」への1件のフィードバック

コメントを残す