If Term的论点->是否有孩子?

时间:2019-04-04 作者:Joe Landry

我正在使用此页上的代码:https://www.wpbeginner.com/wp-tutorials/how-to-display-child-taxonomy-on-parent-taxonomys-archive-page/

然而,我的自定义分类法对城市、州、国家有更深入的了解。

我需要“if($term->parent==0)”来搜索if term是否有子项,然后执行此操作,否则执行此操作。现在,父分类法显示它的父-子分类法,但我需要父分类法显示它的子分类法,子分类法显示父-子分类法。本质上,如果你理解我在各自页面上的意思,父分类法和子分类法都会显示相同的城市。

因此,如果转到密歇根州页面(父级),它将显示波士顿、底特律、大急流城等。如果转到波士顿页面(子级),它仍将显示波士顿、底特律、大急流城等,因为没有更多的子级。

<?php 
$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); 
if ($term->parent == 0) {  
wp_list_categories(\'taxonomy=YOUR-TAXONOMY-NAME&depth=1&show_count=0
&title_li=&child_of=\' . $term->term_id);
} else {
wp_list_categories(\'taxonomy=YOUR-TAXONOMY-NAME&show_count=0
&title_li=&child_of=\' . $term->parent);  
}
?>

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您可以使用get_term_children() 检查特定术语是否有子项,如果有,则显示子项;否则,显示父对象的子对象。

所以只要改变if ($term->parent == 0) { 收件人:

$children = get_term_children( $term->term_id, $term->taxonomy );
if ( ! is_wp_error( $children ) && ! empty( $children ) ) {
或者下面是我使用的完整代码:

$term = get_queried_object();
$children = get_term_children( $term->term_id, $term->taxonomy );
if ( ! is_wp_error( $children ) && ! empty( $children ) ) {
    wp_list_categories( \'taxonomy=\' . $term->taxonomy . \'&depth=1&show_count=0&title_li=&child_of=\' . $term->term_id );
} else {
    wp_list_categories( \'taxonomy=\' . $term->taxonomy . \'&depth=1&show_count=0&title_li=&child_of=\' . $term->parent );
}