最近ずっとWordpress触ってます。仕事の関係で。ハイ。 正直Wordpressでガッツリサイト構築するのは初なのでいろいろと壁にぶち当たりながら進めています。 で、そこで一番悩んだとこをメモ。
一番悩んだのは何かといいますと、カテゴリごとに分岐させること。
現在の案件では全てWordpressで構築なのですが、「blog」と「通常ページ」を両立させる形で構築しなければいけませんでした。Wordpressにはシングルポストを作成する機能とページを作成する機能があるので単純にそれを使えば良いかと考えていましたが、サイトの構成上の問題ですべてシングルポストで処理しないといけないような感じになってしまいまして。
そこで私が取った手段は、「blog」はblogというカテゴリをつくり、diaryとか何たらの細かいカテゴリは「blog」以下のサブカテゴリで対応。「通常ページ」は普通に「about」とかカテゴリーを作ってそこにポストしていくという形をとりました。
でそうすると、「blog」を開いたときはローカルナビゲーション部分に子カテゴリの一覧を表示させ、「通常ページ」を開いたときはそのカテゴリに属するページの一覧を出力させるように分岐させなければいけません。あと「blog」のときだけ投稿日とコメントフォームを表示させるとか。分岐させるにはカテゴリIDでの振り分けが必要ですが、それを出力させる関数がありません。てことで自作。
//自分のカテゴリーIDを表示
function cat_id(){
foreach((get_the_category()) as $cat) {
eturn $cat->cat_ID;
}
}
//親カテゴリーIDを表示
function parent_cat_id() {
$cat = get_the_category();
$cat = $cat[0];
$parent_cat = $cat->category_parent; //親カテゴリIDを取得
if ($parent_cat != 0) {
//親カテゴリをもつ場合
return $parent_cat;
}
}
この二つの関数でカテゴリ分岐関係はほとんど解決しました。
なんか自分のWordpressブログ(2in.corg)より力入れてる気がしてきた。 早いとこ2inc.orgも開設したいのですがデザインすらできてない…。 連休中になんとかできないかな、、台風で停電とかならないと良いですが。
http://blog.2inc.org/mt-tb.cgi/123
comment
この関数はcategory.phpでも使用可能なのでしょうか? 自分のやり方がおかしいのかもしれませんが、カテゴリIDが表示できないのです。ぜひご教授をお願いできないでしょうか? <?php function cat_id(){ foreach((get_the_category()) as $cat) { return $cat->cat_ID; } } ?> こんな感じで挿入しているのですが・・・。
この関数をfunction.phpに書いてから、category.phpにparent_cat_id()とかかけばOKだったと思います。
//自分のカテゴリーIDを表示 function cat_id(){ foreach((get_the_category()) as $cat) { eturn $cat->cat_ID; } } 最後のreturnのr抜けてないですか