¿Mostrar todos los términos de una taxonomía personalizada?

13

Hice unas cuantas taxonomías personalizadas y debo mostrar TODOS los términos, lo que logré hasta ahora es mostrar las taxonomías seleccionadas / elegidas en un tipo de publicación personalizada, pero las necesito todas para mostrar, ya sea Seleccionado o no. Para que luego pueda hacer un filtro que filtre según qué términos contiene un valor de tipo de publicación personalizado.

<?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 
                }
              }
            }  
            ?>

Lo que tengo hasta ahora.

Gracias de antemano!

    
pregunta David H 04.03.2014 - 15:15

3 respuestas

30

Debe pasar un argumento adicional a get_terms() . El valor predeterminado es ocultar términos "vacíos": términos que no se asignan a ninguna publicación.

$terms = get_terms([
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
]);
    
respondido por el s_ha_dum 04.03.2014 - 15:42
5

Desde la versión 4.5.0, las taxonomías deben pasarse a través del argumento "taxonomía" en la matriz $ args para que:

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

donde los términos que no tienen publicaciones están ocultos de forma predeterminada.

    
respondido por el Lawrence Oputa 21.07.2017 - 14:34
1

Este código obtiene todas las taxonomías personalizadas de categorías y subcategorías usando 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; 
   ?>
    
respondido por el amit gangrade 14.02.2017 - 09:54

Lea otras preguntas en las etiquetas