Ho creato alcune tassonomie personalizzate e devo mostrare TUTTI i termini, quello che ho ottenuto finora è mostrare le tassonomie selezionate / scelte in un tipo di post personalizzato ma ho bisogno che vengano visualizzati tutti, che sia selezionato o meno. In modo che in seguito possa creare un filtro che filtri in base ai termini contenuti in un valore di tipo di post personalizzato.
<?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 } } } ?>
Quello che ho finora.
Grazie in anticipo!
Commenti
- A che punto non funziona? Quanto funziona nel modo in cui ' ti piace?
- Funziona, il problema è che posso mostrare solo SELEZIONATO termini in un tipo di post personalizzato. Voglio che tutti mostrino se selezionati o meno, non ' t voglio avere un tipo di post fittizio che abbia tutto selezionato solo per mostrarli.
Risposta
Devi passare un argomento aggiuntivo a . Limpostazione predefinita è nascondere i termini “vuoti”, termini che non sono assegnati a nessun post.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Commenti
- Grazie mille! Ma voglio chiederti una cosa, perché dovresti creare un array allinterno di una variabile invece di dichiararlo sopra dove viene mostrato il primo array?
- Semplicità. Se larray di argomenti fosse più complesso, lo avrei dichiarato prima (molto probabilmente), ma per un singolo argomento questo è solo il modo più semplice per farlo. Dovrebbe funzionare ugualmente bene in entrambi i casi.
- Grazie mille 🙂 questo mi ha pensato molto. Lo apprezzo davvero!
- Funziona !! Ora posso vedere cosa sta succedendo ' con tutte le opzioni di tassonomia! Alcuni plugin creano strutture complesse al loro interno.
Risposta
Dalla 4.5.0, le tassonomie dovrebbero essere passate tramite il argomento “tassonomia” nellarray $ args quindi:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
dove i termini che non hanno post sono nascosti per impostazione predefinita.
Risposta
Questo codice recupera tutte le tassonomie personalizzate di categorie e sottocategorie utilizzando 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; ?>