term_is_ancestor_of( int|object $term1, int|object $term2, string $taxonomy )

Check if a term is an ancestor of another term.

Description Description

You can use either an id or the term object for both parameters.

Parameters Parameters


(int|object) (Required) ID or object to check if this is the parent term.


(int|object) (Required) The child term.


(string) (Required) Taxonomy name that $term1 and $term2 belong to.

Top ↑

Return Return

(bool) Whether $term2 is a child of $term1.

Top ↑

Source Source

File: wp-includes/taxonomy.php

function term_is_ancestor_of( $term1, $term2, $taxonomy ) {
	if ( ! isset( $term1->term_id ) ) {
		$term1 = get_term( $term1, $taxonomy );
	if ( ! isset( $term2->parent ) ) {
		$term2 = get_term( $term2, $taxonomy );

	if ( empty( $term1->term_id ) || empty( $term2->parent ) ) {
		return false;
	if ( $term2->parent === $term1->term_id ) {
		return true;

	return term_is_ancestor_of( $term1, get_term( $term2->parent, $taxonomy ), $taxonomy );

Top ↑

Changelog Changelog

Version Description
3.4.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Use conditional tag to show different content based on term being displayed.

    This example, placed in a theme’s taxonomy.php, uses Conditional Tags to show different content depending on the term being displayed. This is helpful when it is necessary to include something for any child term of a given term, instead of using taxonomy-$taxonomy-$slug.php method where you’d have to create taxonomy-$taxonomy-$slug.php files for each and every term.

    The code snip below checks to see if the term called ‘Music’ (ID 4) for the taxonmy ‘Sound’ is being processed, and if so, presents a wp_nav_menu for the Music archive page, and any subterms of Music (e.g. jazz, classical.)

    // If the taxonomy is sound and the term is music.
    if ( term_is_ancestor_of( 4, $term, 'sound' ) || is_term( 4, 'sound' ) ) : ?>
      <div id="music_subnav_menu" class="subnav_menu">
        <?php wp_nav_menu( array( 'menu' => 'Music' ) ); ?>
    <?php endif; ?>

You must log in before being able to contribute a note or feedback.