Come Ottenere Tutte le Tassonomie E Tutti i Termini per Ogni Tassonomia Con Conteggio Post Zero

4 lug 2012, 01:05:38
Visualizzazioni: 16.4K
Voti: 2

Esiste un modo semplice per ottenere tutte le tassonomie registrate e, per ogni tassonomia, tutti i termini associati, includendo il conteggio dei post per ogni termine, senza dover effettivamente recuperare tutti i dati dei post?

Presumo che sia sicuramente possibile. Presumo anche che richieda una query al database piuttosto lunga utilizzando $wpdb.

0
Tutte le risposte alla domanda 2
0

Puoi farlo semplicemente con get_terms - questa funzione ti permette di recuperare tutti (o alcuni) i termini da una o più tassonomie.

Per impostazione predefinita esclude i termini 'vuoti', quindi dovrai configurare gli argomenti appropriatamente.

 //Array di tassonomie per cui ottenere i termini
 $taxonomies = array('category','post_tags','my-tax');
 //Imposta gli argomenti - non 'nascondere' i termini vuoti.
 $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 i termini che sono vuoti.

Se desideri ottenere un array di tassonomie registrate in modo programmatico puoi usare get_taxonomies()

4 lug 2012 01:48:28
0
<?php
// il nome della tua tassonomia
$tax = 'cat';

// ottieni i termini della tassonomia
$terms = get_terms( $tax, $args = array(
  'hide_empty' => false, // non nascondere i termini vuoti
));

// scorri tutti i termini
foreach( $terms as $term ) {

    // Ottieni il link al termine
    $term_link = get_term_link( $term );

    if( $term->count > 0 )
        // mostra il link all'archivio del termine
        echo '<a href="' . esc_url( $term_link ) . '">' . $term->name .'</a>';

    elseif( $term->count !== 0 )
        // mostra il nome
        echo '' . $term->name .'';
}
?>
17 ott 2017 03:43:10