私はカスタム分類法を持っています:product_range
そしてそれは3つのレベルがあります:
(1 - 親)商品
(2 - 子供)製品カテゴリ
(3 - 孫)製品サブカテゴリー
ユーザーがどのページにいるかに応じて異なるコンテンツを表示する必要があります。ユーザーが親ページに表示されているかどうかを確認してから表示する必要があります。孫のページに戻ります。
これまでのところ、ユーザーが親ページにいるか子ページにいるかに応じて異なるコンテンツを表示することになりますが、さらに1レベル深くする必要があります。
<?php
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
if($term->parent > 0) {
// THIS IS THE CHILD PAGE
include(locate_template('product-range-category-index.php'));
}
else {
// THIS IS THE PARENT PAGE
include(locate_template('associated-product-ranges.php'));
}
?>
get_ancestors()
を試してください。
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$ancestors = get_ancestors( $term->term_id, 'product_range', 'taxonomy' );
$hierarchy_levels = count( $ancestors );
switch ( $hierarchy_levels ) {
case 0:
// THIS IS THE PARENT CATEGORY
// DO YOUR STUFF
break;
case 1:
// THIS IS THE PARENT CATEGORY
// DO YOUR STUFF
break;
case 2:
// THIS IS THE PARENT CATEGORY
// DO YOUR STUFF
break;
}
もう1つの解決策(ただし制約)は、url構造に基づいて、ユーザーが現在どの階層にいるのかを判断することです。次のように、カテゴリURLにkeep「単純」または「古典的」な階層構造を指定する必要があります。
https://example.com/parent/child/grandchild/
https://example.com/parent/child/
https://example.com/parent/