Vytvořil jsem několik vlastních taxonomií a musím z nich ukázat VŠECHNY termíny, čeho jsem doposud dosáhl, je zobrazení taxonomií, které jsou vybrány / vybrány v vlastní typ příspěvku, ale potřebuji, aby se všechny zobrazily, ať už je vybraný nebo ne. Abych později mohl vytvořit filtr, který filtruje podle toho, které výrazy obsahuje vlastní hodnota typu příspěvku.
<?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 } } } ?>
Co zatím mám.
Díky předem!
Komentáře
- V jakém okamžiku to selže? Kolik z toho funguje tak, jak se vám ' líbí?
- Funguje to tak, že mohu zobrazit pouze VYBRANÉ výrazy ve vlastním typu příspěvku. Chci, aby všechny zobrazovaly vybrané nebo ne, nechci ' chtít mít fiktivní typ příspěvku, který má vše vybráno jen proto, aby se zobrazilo.
Odpověď
Je třeba předat další argument . Výchozí nastavení je skrýt „prázdné“ výrazy – výrazy, které nejsou přiřazeny k žádným příspěvkům.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Komentáře
- Děkuji moc! Ale chci se na něco zeptat, proč byste vytvořili pole uvnitř proměnné místo toho, abyste jej deklarovali výše, kde je zobrazeno první pole?
- Jednoduchost. Pokud by pole argumentů bylo složitější, deklaroval bych to jako první (s největší pravděpodobností), ale pro jediný argument je to nejpřímější způsob, jak to udělat. Mělo by to fungovat stejně dobře v obou směrech.
- Díky moc 🙂 to mě hodně napadlo. Opravdu si toho vážím!
- Funguje !! Nyní vidím, co se ' děje se všemi možnostmi taxonomie! Některé doplňky tam vytvářejí složitou strukturu.
Odpověď
Od verze 4.5.0 by taxonomie měly být předávány prostřednictvím Argument „taxonomy“ v poli $ args, takže:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
kde jsou ve výchozím nastavení skryty výrazy, které neobsahují žádné příspěvky.
Odpověď
Tento kód načte všechny vlastní taxonomie kategorií a podkategorií pomocí 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; ?>