Cómo obtener todas las taxonomías Y todos los términos para cada taxonomía con el conteo de puestos cero

2

¿Hay una forma fácil de obtener cada taxonomía registrada y para cada taxonomía registrada, obtener todos los términos de esa taxonomía y, para cada término, obtener el recuento de publicaciones, sin obtener todos los datos de la publicación?

Supongo que es definitivamente posible. También supongo que requiere una consulta de base de datos masivamente larga utilizando $wpdb .

    
pregunta Michael Ecklund 04.07.2012 - 00:05

2 respuestas

6

Puede hacerlo con solo get_terms : esto le permite obtener todos (o algunos) de los términos de una (o más) taxonomías.

De forma predeterminada, excluye los términos 'vacíos', por lo que deberá establecer los argumentos adecuadamente.

 //Array of taxonomies to get terms for
 $taxonomies = array('category','post_tags','my-tax');
 //Set arguments - don't 'hide' empty terms.
 $args = array(
     'hide_empty' => 0
 );

 $terms = get_terms( $taxonomies, $args);
 $empty_terms=array();

 foreach( $terms as $term ){
     if( 0 == $term->count )
          $empty_terms[] = $term;

 }

 //$empty_terms contains terms which are empty.

Si desea obtener una serie de taxonomías registradas mediante programación, puede utilizar get_taxonomies()

    
respondido por el Stephen Harris 04.07.2012 - 00:48
1
<?php
// your taxonomy name
$tax = 'cat';

// get the terms of taxonomy
$terms = get_terms( $tax, $args = array(
  'hide_empty' => false, // do not hide empty terms
));

// loop through all terms
foreach( $terms as $term ) {

    // Get the term link
    $term_link = get_term_link( $term );

    if( $term->count > 0 )
        // display link to term archive
        echo '<a href="' . esc_url( $term_link ) . '">' . $term->name .'</a>';

    elseif( $term->count !== 0 )
        // display name
        echo '' . $term->name .'';
}
?>
    
respondido por el ztvmark 17.10.2017 - 02:43

Lea otras preguntas en las etiquetas