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

4 jul 2012, 01:05:38
Vistas: 16.4K
Votos: 2

¿Existe una manera sencilla de obtener todas las taxonomías registradas y, para cada taxonomía, obtener todos los términos, y para cada término, obtener el conteo de posts, sin tener que recuperar todos los datos de los posts?

Supongo que definitivamente es posible. También asumo que requeriría una consulta de base de datos bastante larga usando $wpdb.

0
Todas las respuestas a la pregunta 2
0

Puedes hacer esto simplemente con get_terms - esto te permite obtener todos (o algunos) de los términos de una (o más) taxonomías.

Por defecto excluye los términos 'vacíos', por lo que tendrás que configurar los argumentos adecuadamente.

 //Array de taxonomías para obtener términos
 $taxonomies = array('category','post_tags','my-tax');
 //Establecer argumentos - no 'ocultar' términos vacíos.
 $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 contiene los términos que están vacíos.

Si deseas obtener un array de taxonomías registradas programáticamente puedes usar get_taxonomies()

4 jul 2012 01:48:28
0
<?php
// tu nombre de taxonomía
$tax = 'cat';

// obtener los términos de la taxonomía
$terms = get_terms( $tax, $args = array(
  'hide_empty' => false, // no ocultar términos vacíos
));

// recorrer todos los términos
foreach( $terms as $term ) {

    // Obtener el enlace del término
    $term_link = get_term_link( $term );

    if( $term->count > 0 )
        // mostrar enlace al archivo del término
        echo '<a href="' . esc_url( $term_link ) . '">' . $term->name .'</a>';

    elseif( $term->count !== 0 )
        // mostrar nombre
        echo '' . $term->name .'';
}
?>
17 oct 2017 03:43:10