特定の親カテゴリに属する子カテゴリがたくさんある場合(たくさんなくてもいいけど)、条件分岐で子カテゴリを指定すると数多くの指定が必要になるので非常に手間がかかる。
その上、子カテゴリが増えた場合にまたその指定も書き換えが必要なので、親カテゴリを指定する方法が便利です。
これ、本当に使いやすいです!
functions.phpに記述
if ( ! function_exists( 'post_is_in_descendant_category' ) ) { function post_is_in_descendant_category( $cats, $_post = null ) { foreach ( (array) $cats as $cat ) { $descendants = get_term_children( (int) $cat, 'category' ); if ( $descendants && in_category( $descendants, $_post ) ) return true; } return false; } }
条件分岐したい場所に記述
<?php if ( in_category(親カテゴリID) || post_is_in_descendant_category(親カテゴリID) ): ?> // 「親カテゴリ」もしくは「親カテゴリ」に属する子カテゴリーのものであった場合の出力内容 <?php else: ?> // それ以外の出力内容 <?php endif; ?>
以下の記事を参照させていただきました
ありがとうございます!
WordPressで特定の親カテゴリとその子カテゴリに所属する場合の条件分岐の方法