Obtener taxonomía personalizada desde un tipo de entrada personalizada
Tengo un tipo de entrada personalizada (custom post type) llamado email_block y una taxonomía personalizada llamada block_type. Necesito recorrer todos los bloques de correo electrónico para averiguar qué taxonomía personalizada (block_type) tienen. Sé cómo obtener todos los tipos de entrada personalizados email_block, pero estoy teniendo dificultades para encontrar a qué block_type pertenecen.
Este es el código que tengo hasta ahora. Estoy usando un campo de relación de Advanced Custom Fields para filtrar qué bloques de correo electrónico quiero mostrar.
<?php
$posts = get_field('block_selector');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $post): // la variable debe llamarse $post (IMPORTANTE) ?>
<?php setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span>Campo personalizado desde $post: <?php the_field('author'); ?></span>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); // IMPORTANTE - reinicia el objeto $post para que el resto de la página funcione correctamente
endif; ?>
¿Te refieres a get_the_terms()?
<?php
$terms = get_the_terms( $post->ID, 'block_type' );
foreach($terms as $term) {
echo $term->name;
}
?>
¿O lo he simplificado demasiado?

esta es la mejor forma de hacerlo
<?php
$taxonomy = 'movies-category';
$terms = get_object_term_cache( $post->ID, $taxonomy );
$output = '';
foreach($terms as $term) {
if(!empty($output))
$output .= ' | ';
$output .= '<span class="cat"><a href="'. esc_url( get_term_link( $term )). '">'.$term->name.'</a></span>';
}
echo $output;
?>

¿Hay alguna forma de conocer la jerarquía de las taxonomías personalizadas y pasarla a la salida?

Puedes consultar este recurso https://developer.wordpress.org/reference/functions/get_term_parents_list/
O https://wordpress.stackexchange.com/a/25035/185919
