¿Cómo obtener todas las taxonomías de un tipo de publicación?


46

¿Como puedo obtener taxonomías de un tipo de publicación?

Si tengo un tipo de publicación eventy necesito encontrar la lista de taxonomías que se adjuntan a ese tipo de publicación. ¿Cómo los encuentro?

Respuestas:


36

Hola chicos, creo que lo tengo! Después de mirar un par de funciones en el archivo taxonomy.php en WordPress, encontré esta función get_object_taxonomies();que funcionó :)

Aquí esta la función

function get_post_taxonomies($post) {
    // Passing an object
    // Why another var?? $output = 'objects'; // name / objects
    $taxonomies = get_object_taxonomies($post, 'objects');

    /*// Passing a string using get_post_type: return (string) post, page, custom...
    $post_type  = get_post_type($post);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    /*// In the loop with the ID
    $theID      = get_the_ID();
    $post_type  = get_post_type($theID);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    // You can also use the global $post

    // edited to fix previous error $taxonomies
    // edited to force type hinting array
    return (array) $taxonomies; // returning array of taxonomies
}

2
Consulte esto para obtener más información: codex.wordpress.org/Function_Reference/get_object_taxonomies
Manny Fleurmond

wow ... es bueno saber acerca de get_object_taxonomies (). simplemente me ayudó a secuestrar template_redirect
helgatheviking

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

la forma más fácil será simplemente ordenarlos usando un bucle foro foreach.
Sisir

Sí, estoy obteniendo el uso del bucle foreach pero $taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) ); foreach( $taxonomies as $taxonomy ) : // Gets every "category" (term) in this taxonomy to get the respective posts $terms = get_terms( $taxonomy ); ?> <ul class="specials"><?php foreach( $terms as $term ) : ?> <li><h2 ><?php echo $term->name; ?></h2>
obtengo el

9

get_categories hará el trabajo.

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 

(¡Creo que si entendí bien la pregunta!)
agregué amablemente el

3
La cosa es que no tengo ningún nombre de taxonomía, eso es lo que quiero averiguar. Solo tengo el nombre del tipo de publicación. Por el nombre del tipo de publicación, quiero averiguar todas las taxonomías que están unidas a ella. ¡Gracias de cualquier manera!
Sisir

1

¿Has intentado algo? ¿algo como esto?

<?php 

$args=array(
  'object_type' => array('event') 
); 

$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    echo '<p>'. $taxonomy. '</p>';
  }
}
?>

1
Analicé la get_taxonomies();función en el códice, pero tiene una documentación muy pobre y no tenía idea de cómo puedo pasar los tipos de publicación.
Sisir

Lo sentimos, este código devuelve todas las taxonomías registradas en WordPress.
Sisir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.