我有一个自定义分类法: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\'));
}
?>
最合适的回答,由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/