Hice algunas taxonomías personalizadas y necesito mostrar TODOS los términos, lo que logré hasta ahora es mostrar las taxonomías que se seleccionan / eligen en un tipo de publicación personalizada, pero necesito que se muestren todos, ya sea que esté seleccionado o no. Para que luego pueda hacer un filtro que filtre según los términos que contiene un valor de tipo de publicación personalizada.
<?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!
Comentarios
- ¿En qué punto falla esto? ¿Cuánto funciona de la manera que ' le gustaría?
- Funciona, el problema es que solo puedo mostrar SELECTED términos en un tipo de publicación personalizada. Quiero que todos muestren si están seleccionados o no, no ' t quiero tener un tipo de publicación ficticia que tenga todo seleccionado solo para mostrarlos.
Respuesta
Debes pasar un argumento adicional a . El valor predeterminado es ocultar los términos «vacíos», términos que no se asignan a ninguna publicación.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Comentarios
- ¡Muchas gracias! Pero quiero preguntar algo, ¿por qué crearía una matriz dentro de una variable en lugar de declararla arriba donde se muestra la primera matriz?
- Simplicidad. Si la matriz de argumentos fuera más compleja, la habría declarado primero (lo más probable), pero para un solo argumento, esa es la forma más sencilla de hacerlo. Debería funcionar igual de bien de cualquier manera.
- Muchas gracias 🙂 eso me pensó mucho. ¡Realmente lo aprecio!
- ¡¡Funciona !! ¡Ahora puedo ver lo que ' está sucediendo con todas las opciones de taxonomía! Algunos complementos crean una estructura compleja allí.
Respuesta
Desde 4.5.0, las taxonomías deben pasarse a través del argumento taxonomía en la matriz $ args así:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
donde los términos que no tienen publicaciones están ocultos por defecto.
Respuesta
Este código recupera todas las taxonomías personalizadas de categorías y subcategorías utilizando 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; ?>