WordPressの記事一覧で親カテゴリーに子カテゴリーも混ざって表示される

いつ以来か分からないほど、ウェブ関連記事です。

今年に入ってから非常にありがたいことにコンスタントにウェブ案件が増える一方で、久々に本腰入れて取り組もうとするもんだから、あれこれ記事を探しまくったり、エンジニアさんに聞いてみたりと、かなりの周回遅れを実感しつつも真面目に取り組んでおります。

ちょっとしたことで備忘録を残しておこうと思ったものをちょいちょい更新して残していきたいと思います。

記事一覧に親カテゴリーと子カテゴリーが混ざって表示される

WordPressの記事一覧ページでカテゴリーごとに分類したとき、親カテゴリーの一覧ページを表示したはずが、親カテゴリーにチェックをつけていないにも関わらず、子カテゴリーが表示されるのをなんとかして欲しいという依頼がありました。

これまでそれが当たり前だし別に気にすることも無く過ごしてきたわけですが、運用の仕方によっては邪魔なこともあるよなぁと思って対応してみました。

しかし、いざ記事を探してもなかなか出てこない。

カテゴリーのリスト一覧を出力する中で、子カテゴリーを除外するというのは出てくるのだが、記事一覧の中から子カテゴリーだけを除外するとなると全然見当たらなくて「いや~、これ仕様上で厳しいかもしんないので、もうちょい時間くださいー」なんて返答しようかと思ったところで仲良くしているエンジニアさんからのアドバイス。

function my_parse_tax_query( $query ) {
	if ( ! is_admin() && $query->is_main_query() && $query->is_category() ) {
		$query->tax_query->queries[0]['include_children'] = false;
	}
}
add_action( 'parse_tax_query', 'my_parse_tax_query' );

「これをfunctions.phpに入れたらどうでしょ?」

色々探して悩んでいたのが嘘のように即解決でした。

ただ、エンジニアさんも参考にした記事があったようで、これをこうして…って感じで教えてもらって無事完了。

今後も機会があれば使わせてもらおうかなと思います。