web-dev-qa-db-fra.com

Comment obtenir toutes les taxonomies ET toutes les conditions pour chaque taxonomie avec Post count Zero

Existe-t-il un moyen facile d'obtenir chaque taxonomie enregistrée et pour chaque taxonomie enregistrée, d'obtenir tous les termes de cette taxonomie et, pour chaque terme, d'obtenir le décompte des publications, sans récupérer réellement toutes les données de publication?

Je suppose que c'est certainement possible. Je suppose également que cela nécessite une requête de base de données très longue utilisant $wpdb .

2
Michael Ecklund

Vous pouvez le faire avec juste get_terms - cela vous permet d'extraire tout (ou certains) des termes d'une (ou plusieurs) taxonomie.

Par défaut, les termes "vides" sont exclus, vous devez donc définir les arguments de manière appropriée.

 //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 vous souhaitez obtenir un tableau de taxonomies enregistrées par programme, vous pouvez utiliser get_taxonomies()

6
Stephen Harris
<?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 .'';
}
?>
1
ztvmark