¿Cómo obtener todas las taxonomías de un tipo de entrada?
¿Cómo puedo obtener las taxonomías de un tipo de entrada?
Si tengo un tipo de entrada event
y necesito averiguar la lista de taxonomías que están adjuntas a ese tipo de entrada. ¿Cómo puedo encontrarlas?
¡Creo que lo tengo! Después de revisar algunas funciones en el archivo taxonomy.php de WordPress, encontré la función get_object_taxonomies();
que resolvió el problema :)

Consulta esto para más información: http://codex.wordpress.org/Function_Reference/get_object_taxonomies

wow... es bueno saber sobre get_object_taxonomies(). Acaba de ayudarme a intervenir template_redirect

Hola, gracias por esto pero ¿cómo ordenarlos por ID en lugar de por NOMBRE?

la forma más fácil será simplemente ordenarlos usando un bucle for
o foreach
.

Sí, estoy obteniendo los datos usando un bucle foreach pero los estoy ordenando por nombre `$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
// Obtiene cada "categoría" (término) en esta taxonomía para obtener las publicaciones respectivas
$terms = get_terms( $taxonomy ); ?>
<ul class="specials"><?php foreach( $terms as $term ) : ?>
<li><h2 ><?php echo $term->name; ?></h2>`

@dh47 Llego tarde a este hilo, pero si todavía te lo estás preguntando, creo que necesitarías hacer dos bucles foreach
: uno para ordenarlos y otro para mostrarlos. También podrías pasarlos a usort
antes de tu bucle foreach
para ordenarlos como quieras.

Aquí hay una línea para mostrar todos los términos para un objeto $post
dado (de cualquier tipo de contenido): array_map(function ($taxonomy) use($post) { return wp_get_post_terms($post->ID, $taxonomy); }, get_object_taxonomies($post))
// devuelve un array con todos los $terms bajo cualquier taxonomía

get_categories hará el trabajo.
get_categories('taxonomy=taxonomy_name&type=custom_post_type');

Disculpas por revivir una publicación antigua, pero me encontré con este problema mientras buscaba una solución para mi caso de uso.
Quería recuperar todas las taxonomías disponibles para un tipo de publicación, y también recuperar todos los términos disponibles por taxonomía.
Agradezco a Nick B por orientarme en la dirección correcta con su respuesta: https://wordpress.stackexchange.com/a/357448/198353
// obtener una lista de taxonomías disponibles para un tipo de publicación
$taxonomies = get_taxonomies(['object_type' => ['tu_tipo_de_publicacion']]);
$taxonomyTerms = [];
// recorrer las taxonomías
foreach ($taxonomies as $taxonomy)
{
// recuperar todos los términos disponibles, incluyendo aquellos no utilizados aún
$terms = get_terms(['taxonomy' => $taxonomy, 'hide_empty' => false]);
// asegurarse que $terms es un array, ya que puede ser un entero (contador) o un WP_Error
$hasTerms = is_array($terms) && $terms;
if($hasTerms)
{
$taxonomyTerms[$taxonomy] = $terms;
}
}

Utiliza get_object_taxonomies
(https://developer.wordpress.org/reference/functions/get_object_taxonomies/), que acepta como parámetro el nombre de tu tipo de entrada personalizado o un objeto de entrada:
$taxonomies = get_object_taxonomies('custom_post_type');
$taxonomies = get_object_taxonomies($custom_post_object);
get_taxonomies()
no devolverá ninguna taxonomía que sea utilizada por múltiples tipos de entradas (https://core.trac.wordpress.org/ticket/27918).

¿Has probado algo? ¿Algo como esto?
<?php
$args=array(
'object_type' => array('evento')
);
$output = 'names'; // o objects
$operator = 'and'; // 'and' u 'or'
$taxonomies=get_taxonomies($args,$output,$operator);
if ($taxonomies) {
foreach ($taxonomies as $taxonomy ) {
echo '<p>'. $taxonomy. '</p>';
}
}
?>

get_post_taxonomies()
https://developer.wordpress.org/reference/functions/get_post_taxonomies/
Esto funcionó para mí.
