как сделать по аналогии для произвольных таксономий

Оригинал
http://wp-kama.ru/function/wp_set_post_terms

add_action( 'wp_insert_post', 'update_post_terms' );
function update_post_terms( $post_id ) {
	if ( $parent = wp_is_post_revision( $post_id ) )
		$post_id = $parent;

	$post = get_post( $post_id );

	if ( $post->post_type != 'post' )
		return;

	// добавим метку по умолчанию
	wp_set_post_terms( $post_id, 'название метки', 'post_tag', true );

	// добавим категорию по умолчанию
	$categories = wp_get_post_categories( $post_id );
	$newcat    = get_term_by( 'name', 'название рубрики', 'category' );
	array_push( $categories, $newcat->term_id );

	wp_set_post_categories( $post_id, $categories );
}

У меня есть произвольная древовидная таксономия "species-race" в ней есть категории "animal", "fish", "dog"

как будет выглядеть код для "species-race" + "animal" и как быть если к примеру категории не существует и её нужно создать (интересует код для древовидной для не древовидной все просто через wp_set_post_terms() )?