ワードプレス覚え

 ブログを構築する際そうしてもやりたいことが「カテゴリー(あるいはタグ)毎に見た目を変えたい」と言うことだ。MTの場合そういうプラグインがあったようだが、MTの場合はブログのあるディレクトリの下位ディレクトリに別のブログをいくつも入れ子にできるのでそっちのほうが手っ取り早くてそうしていた。

 WPは同じディレクトリの下位にディレクトリを作ってそこに別のブログを入れようとするとガチンコしてうまく動かなかった。(例えば/koshihikara のブログがあって、/koshihikara/kouza に講座用のブログを入れたら動かなかった)MTはデータベースがブログ毎に別になるから整合性が取れないのだろうか。

 それもあって全てのカテゴリを1ブログに収めたわけだが、そうなるとどうにかしてカテゴリ毎に見た目を変えなくてはならない。で、WPはそれが簡単にできる。出来るんだが、普通の規模のサイトなら簡単だった。それはこういうやりかた。(仕事でやるときはこれが一番簡単なのでこうやっていたんだ)

デフォルトで archive.php というのがある。これを category-カテゴリID.php にリネームしていじくる。

 コシヒカラーもこれで簡単にできるとばっかり思っておった。ところがどっこい、甘かったっちゃ。例えば新潟語講座、上級編だの中級編だのと「大カテ」「小カテ」と入れ子になっている。上のやりかたで

category-新潟語講座ID.php

を作っても、小カテの中級編に直接飛ぶとデフォルトの外観になってしまう。つまり

category-新潟語講座ID.php,
category-新潟語講座初級編ID.php,
category-新潟語講座中級編ID.php,
category-新潟語講座上級編ID.php

の4つを作らなくてはならない。そこ、いいじゃん別に暇なんだから作ればとか言わない。たしかに作る暇は十二分にある(ってかたいした手間ではない)んだがなんかこう、納得いかないんである。だって上の4つのファイル名前が違うだけで中身一緒らねっか。馬鹿みたいらねっか。むりくり上中下で見た目を変えても良いんだが、なんかむなしい。こんげむなしいことを今後他カテゴリにもしていかなならんのかいな?と思うと嫌になる。

 他にもいろいろ方法はあるようなんだがとりあえず以下の方法でやった。
デフォルトの archive.php を適当にリネーム(default-archive.php など)
archive.php の中身は下記に換える。

<?php
$post = $wp_query->post;
if ( in_category(‘新潟語講座ID’) || in_category(‘初級編ID’) || in_category(‘中級編ID’) || in_category(‘上級編ID’)) {
include(TEMPLATEPATH . ‘/講座用テンプレート名.php’);
}
else if ( in_category(‘グルメID’)) {
include(TEMPLATEPATH . ‘/グルメ用テンプレート名.php’);
}
else if ( in_category(‘観光’)) {
include(TEMPLATEPATH . ‘/観光用テンプレート名.php’);
}
else {
include(TEMPLATEPATH . ‘/default-archive.php’);
}
?>

 で、それぞれのテンプレートを作り使用しているテーマのテンプレートのディレクトリにアップする。
 これで、とりあえずいいんでないかい?

 まぁヘッダ部分しか変えないってならここまでしなくてもいいのかもしれない。でもいまさら講座とか投稿の日付とか必要ないし、こちょこちょいじれるからこっちのほうがいいかな。これだとフッターやサイドバーもカテゴリ毎変えたくなったとき楽かなぁと。まぁいいや、とりあえず動いたし。もっとスマートな方法があったら教えて欲しい。

 やっぱ本くらい買った方が良かったのだろうか… ただ経験上本を買わなきゃ出来ないことって結局本買っても出来ないんだよなぁ。たとえばリナックスとかフラッシュのアクションスクリプトとかJAVAとか。いくつ本が無駄になったか…