Afficher tous les termes d'une taxonomie personnalisée?

13

J'ai créé quelques taxonomies personnalisées et je dois afficher TOUS les termes, ce que j’ai réalisé jusqu’à présent est de montrer les taxonomies sélectionnées / choisies dans un type de publication personnalisé, mais j’ai besoin que toutes les affichent, que ce soit sélectionné ou non. Pour pouvoir ensuite créer un filtre qui filtre en fonction des termes que contient une valeur de type de publication personnalisée.

<?php 
$args=array(
  'public'   => true,
  '_builtin' => false
);
$output = 'names'; // or objects
$operator = 'and';
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    $terms = get_terms($taxonomy);
        foreach ( $terms as $term) {
?>
        <li><br><a href="#"><input type="checkbox" name="profile[]" value=""><?php echo $term->name; ?> <br/></a></li>
       <?php 
                }
              }
            }  
            ?>

Ce que j'ai jusqu'à présent.

Merci d'avance!

    
posée David H 04.03.2014 - 15:15

3 réponses

30

Vous devez passer un argument supplémentaire à get_terms() . La valeur par défaut est de masquer les termes "vides" - les termes qui ne sont affectés à aucun article.

$terms = get_terms([
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
]);
    
réponse donnée s_ha_dum 04.03.2014 - 15:42
5

Depuis la version 4.5.0, les taxonomies doivent être passées via l’argument ‘taxonomy’ dans le tableau $ args afin:

$terms = get_terms( array(
    'taxonomy' => 'post_tag',
    'hide_empty' => false,
) );

où les termes sans publication sont masqués par défaut.

    
réponse donnée Lawrence Oputa 21.07.2017 - 14:34
1

Ce code extrait toutes les taxonomies personnalisées de catégories et de sous-catégories à l'aide de get_terms() :

<?php $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'parent' =>0)); 
   foreach($wcatTerms as $wcatTerm) : 
   ?>
<ul>
   <li>
      <a href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a>
      <ul class="megaSubCat">
         <?php
            $wsubargs = array(
               'hierarchical' => 1,
               'show_option_none' => '',
               'hide_empty' => 0,
               'parent' => $wcatTerm->term_id,
               'taxonomy' => 'product_cat'
            );
            $wsubcats = get_categories($wsubargs);
            foreach ($wsubcats as $wsc):
            ?>
         <li><a href="<?php echo get_term_link( $wsc->slug, $wsc->taxonomy );?>"><?php echo $wsc->name;?></a></li>
         <?php
            endforeach;
            ?>  
      </ul>
   </li>
</ul>
<?php 
   endforeach; 
   ?>
    
réponse donnée amit gangrade 14.02.2017 - 09:54

Lire d'autres questions sur les étiquettes