カテゴリーアーカイブで親カテゴリーに子カテ記事を表示させない

またまたWordPressネタ(^^;)

FOX通信をMTからWordPressに変更して困ったのが、
カテゴリーの親子関係。

MTの場合、カテゴリーの親子関係はあくまで親は親、子は子なので、
デフォルトのままでも親カテゴリーに子カテの記事は出てこなかったのに、
WordPressだと子カテゴリーの記事まで全部ひっくるめて表示されちゃう。

確かに子カテゴリーも親カテゴリーの一部と言えなくもないから、
理屈としては間違っちゃいないんだけど…鬱陶しいことこの上なし。

ということで例のごとく「wordpress 親カテゴリー 子カテゴリー 表示しない」で検索したら、
毎度おなじみWordpressのフォーラムでこんなトピック発見。

WordPress › フォーラム » 親カテゴリーに子カテゴリーのエントリーを表示させたくない.
お世話になります。 投稿ページの親カテゴリーページには、子カテゴリーのエントリーも表示されてしまいます。 親カテゴリーA 子カテゴリーB 子カテゴリーC 子カテゴリーD とあると、Aをクリックすると、AからDまでのエントリーがすべて表示されますが、 これをカテゴリーAクリックでは、カテゴリーAしかでないようにしたいのですが、 ご教授よろしくお願いします。

ありがたいことに解決済みの質問だった&コードまでしっかり書かれてたので、
さっそくFOX通信でも実装したです。

if ( is_category() ) {
$cat = get_query_var( 'cat' );
$paged = get_query_var( 'paged' );
query_posts( array( 'category__and' => array( $cat ), 'paged' => $paged ) );
}

上記のコードを、カテゴリーテンプレートのif( have_posts() )よりも前に記述するだけ。

ちなみにこれはカテゴリーテンプレート内でquery_postsを実行して、
カテゴリー内のエントリを再取得する、という処理のコード、だそうです。

まだちゃんとコードが読み切れてないんだよねえ(^^;)
書かれてることはなんとなくニュアンス的にはわかるけど、
厳密にコード解析まで至らない感じ(^^;)
自分で本見ずに一からコードかけたらもっと移転作業早くなると思うんだけどな、、、

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です