Ao olhar para a classe WP_Tax_Query em /wp-includes/taxonomy.php, descobri que existe uma opção 'include_children', cujo valor padrão é true. Modifiquei minha chamada get_posts () original com o seguinte, e ela funciona muito bem:
$pages = get_posts(array(
'post_type' => 'page',
'numberposts' => -1,
'tax_query' => array(
array(
'taxonomy' => 'taxonomy-name',
'field' => 'id',
'terms' => 1, // Where term_id of Term 1 is "1".
'include_children' => false
)
)
));
Lista de mais parâmetros de consulta: enlace