すいません。
返答ではなく同じ悩みを持つ者です。
これだけ期間が空いても返信がないということは、やはり方法はないのでしょうか?
それとも、初歩的すぎる内容なんでしょうか……?
少しの手がかりだけでも構いませんので、ご存知の方はどうかよろしくお願いいたします。
時間がないので試していないのですが、category.phpを作成してget_the_categoryなどで現在のカテゴリーIDを取得し、query_postsでコントロールとかでできませんかね。
時間ができたら試してみますが、in_categoryだと親子関係を認識できないらしいので、上記のように予想してみました、試せるようなら試してみてください。
こんな感じでいけるんじゃないでしょうか。
<?php
if (is_category()) {
$current_cat = get_query_var('cat');
if ($children = get_categories('child_of='.$current_cat)) {
$exclude = array();
foreach ($children as $child)
$exclude[] = $child->term_id;
query_posts(array('cat'=>$current_cat, 'category__not_in' => $exclude));
}
}
?>
そもそも、親子関係を解除してしまうのはダメなんでしょうか。
もしくは、子カテゴリーに並列に「その他」カテゴリーを作って、親カテゴリーに属する記事をそちらに移動してしまう手もあります。
例えば、元々「コンピューター」カテゴリー (記事数97) があって、そこで WordPress 関連記事が増えてきたため、子カテゴリーとして「WordPress」カテゴリー (記事数27) を作って分離したとします。
コンピューター (97)
└WordPress (27)
この場合、コンピューターカテゴリーのアーカイブを出すと、WordPress カテゴリーの記事も含まれてしまうので、困るということですよね。
以下のように、「コンピューターその他」カテゴリーを作って、残りの記事を移動させてしまうと、「コンピューターその他」カテゴリーを使うことで、希望の動作になるのではないでしょうか。
コンピューター (97)
├コンピューターその他 (70)
└WordPress (27)