web-dev-qa-db-ja.com

ユーザーが分類用語の親、子、または孫のページにいるかどうかを確認するにはどうすればよいですか。

私はカスタム分類法を持っています: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'));
     }
?>
1
Neelam Khan

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/
0
ClemC