今ここカスタマイズの年・月アーカイブ版です。
ブログスタイルのサイトでは、サイドメニューとして年月アーカイブへのリンクを表示してる場合が少なくないと思います。
別にサイドメニューに限らなくても良いのですが。。。そこは論点でもないやい、って感じで。
そして、そのアーカイブに目を移しながら移動してみると、確かにウロウロ出来るのですがサイドメニューの表示に変化はありません。
今、自身(閲覧者)がどのアーカイブ(年月)に居るのかをちょっと判り易くするために、移動時にはその見ているアーカイブへのリンク表示に変化を与えてみる事にしてみました。
「今ここエントリー・カテゴリー」の応用版ですね。
ユニークな文字列の選定
「年」に関しては「年」なのでそれをそのまま使う事にして、「月」の方は2007年の「3月」、2008年の「3月」と被ってしまうので、だったら「年」もくっつけてユニークな文字列にしてあげる事にします。
ただ、それだけだとちょっと不安なので好きな文字列も付加して、と。
そんな風にして表示させる例は以下。年アーカイブ、月アーカイブとふたつに分けるのもメンドイより判り辛いかと思うので、一気にまとめて表示させてみる例。
dt に挟んで出してる「年」に対しては、その dt に「id=y(+)年4桁」を割り当て。
月に対してはアンカータグに「id=m(+)年4桁月2桁」を割り当て。
スタイルシートの自動生成・適用
MT4になって、アーカイブの生成も随分ラクになりました。
ひとつのテンプレートから幾つも生成させる事が出来るので。
それも取り入れつつ、以下のようにしてCSSファイルを生成させます。
アーカイブが月別の時、年別の時で記述内容が変わる方法です。
上記をアーカイブ・テンプレートとして作成します。
名前は何でも良いですが、とりあえずこの場では「今ここ年月」とでもしておきます。
そしてアーカイブ・マッピングを作成。
- 年別・・・%y/%y.css=年別アーカイブディレクトリ内に年4桁.cssファイルを生成
- 月別・・・%y/%m/%m.css=月別アーカイブディレクトリ内に月2桁.cssファイルを生成
生成させたスタイルの適用
年・月アーカイブとして生成させているファイルに「今ここ年月.css」を適用させます。
上記を、年月アーカイブの<head>~</head>内に記述。
別々のテンプレートで出力させてる場合は、それぞれの記述を分けて書くと良いです。
上段を月別に。下段を年別に。
あとは再構築かけて、スタイルシートの生成と、年月アーカイブへのリンク表示部分にID属性を持たせればOKです。
この例は、ただ単に下線を与えてるだけなので、背景画像付けたりなどのスタイルの装飾は「今ここ年月CSS」アーカイブ内の記述で整えましょう。
あとがき
MT4になってから、年別アーカイブも正式採用されたし、おかげで随分ラクに出来るようになりました。
ひとつのアーカイブ・テンプレート内で分岐判定さえさせれば良いのだから。
アーカイブ等の条件分岐に関しては以下の資料を片手にいろいろやってみると良いです。
■アーカイブテンプレートに設定される変数 | Movable Type 4 ドキュメント
それから注意点がひとつ。
ご存知の方も多いとは思いますが念のため。
「今ここ年月」テンプレートにおいて、アーカイブマッピングの際には「%y」で4桁年になりますが、テンプレート内の記述では「%y」は下2桁になります。
2008年であれば「08」ですね。
なので、テンプレート内では大文字(%Y)を用いて4桁表示になる、という事を覚えておきましょう。
おまけ
補足として、「今ここ年月」CSSファイルで、例のままの記述だと空白改行(ホワイトスペース)が出来るので、それがイヤな場合は以下のプラグインを用いて改行を削除してしまいしょう。
■ページ先頭の改行を削除する - The blog of H.Fujimoto
上記よりプラグインをDLさせて貰って、mt/plugins ディレクトリ内にアップします。
そして以下の記述。
記述内容を「<MTApplyModifier ltrim="1"> ~ </MTApplyModifier>」で囲ってあげるだけです。
上記のプラグインは、部分的にも用いたりグローバルフィルターとして用いる事も可能なので、用途広がる素晴らしいプラグインです。