get_term_children

函数
get_term_children ( $term_id, $taxonomy )
参数
  • (int) $term_id ID of term to get children.
    Required:
  • (string) $taxonomy Taxonomy name.
    Required:
返回值
  • (array|WP_Error) List of term IDs. WP_Error returned if `$taxonomy` does not exist.
定义位置
相关方法
_get_term_childrenget_category_childrenget_childrenget_page_childrenget_term_field
引入
2.3.0
弃用
-

get_term_children: 这个函数检索一个特定术语的所有子术语的ID数组。它需要两个参数:父术语的ID和该术语所属的分类法的名称。它返回一个子术语ID的数组。

将所有术语的子代合并为一个单一的ID数组。

这个递归函数将把$term的所有子项合并到同一个术语ID数组中。只对有层次的分类法有用。

如果$term在$taxonomy中不存在,将返回一个空数组。

function get_term_children( $term_id, $taxonomy ) {
	if ( ! taxonomy_exists( $taxonomy ) ) {
		return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
	}

	$term_id = (int) $term_id;

	$terms = _get_term_hierarchy( $taxonomy );

	if ( ! isset( $terms[ $term_id ] ) ) {
		return array();
	}

	$children = $terms[ $term_id ];

	foreach ( (array) $terms[ $term_id ] as $child ) {
		if ( $term_id === $child ) {
			continue;
		}

		if ( isset( $terms[ $child ] ) ) {
			$children = array_merge( $children, get_term_children( $child, $taxonomy ) );
		}
	}

	return $children;
}

常见问题

FAQs
查看更多 >