如何检查用户是否位于分类术语父级、子级或孙级页面?

时间:2017-08-14 作者:Neelam Khan

我有一个自定义分类法:product_range 它有三个级别:

(1-母公司)产品

(2-儿童)产品类别

(3-孙辈)产品子类别

我需要根据用户所在的页面显示不同的内容,如何检查用户是否在父页面上,然后显示内容,如果用户在子页面上,则显示其他内容,如果用户在孙页面上,则再次显示其他内容。

到目前为止,根据用户是在父页面还是子页面上,我有一个显示不同内容的页面,但我需要更深入一层:

<?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 个回复
最合适的回答,由SO网友:ClemC 整理而成

尝试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;
}
另一个解决方案(但有限制)是根据url结构确定用户当前所在的层次结构。约束条件是你必须keep 类别URL中的“简单”或“经典”层次结构,如下所示:

  • https://example.com/parent/child/grandchild/
  • https://example.com/parent/child/
  • https://example.com/parent/

结束

相关推荐

Show post type taxonomy

我正在制作一个WordPress主题,我已经将“AVENUE”主题的帖子类型代码复制到了“FabThemes”。代码如下:<?php /* Property Listings*/ function post_type_listings() { register_post_type( \'listings\', array( \'public\' =>