Jeg lavede et par brugerdefinerede taksonomier, og jeg har brug for at vise ALLE vilkårene fra det. Det, jeg opnåede indtil videre, viser de taxonomier, der er valgt / valgt i en brugerdefineret posttype, men jeg har brug for dem alle for at vise, om den er valgt eller ej. Så jeg senere kan lave et filter, der filtrerer efter hvilke vilkår en brugerdefineret posttypeværdi indeholder.
<?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 } } } ?>
Hvad jeg har hidtil.
På forhånd tak!
Kommentarer
- På hvilket tidspunkt mislykkes dette? Hvor meget af det fungerer, som du ' kunne lide?
- Det fungerer, problemet er, at jeg kun kan vise de VALGTE termer i en brugerdefineret posttype. Jeg ønsker, at alle skal vise, om de er valgt eller ej, jeg vil ikke ' ikke have en dummy-posttype, der har alt valgt bare for at vise dem.
Svar
Du skal videregive et ekstra argument til . Standard er at skjule “tomme” termer – udtryk, der ikke er tildelt nogen indlæg.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Kommentarer
- Mange tak! Men jeg vil spørge noget, hvorfor skulle du oprette en matrix inde i en variabel i stedet for at erklære den over, hvor den første matrix vises?
- Enkelhed. Hvis argumentarrayet var mere komplekst, ville jeg have erklæret det først (sandsynligvis), men for et enkelt argument er det bare den mest ligefremme måde at gøre det på. Det skal fungere lige så godt på begge måder.
- Mange tak 🙂 der tænkte mig meget. Jeg sætter stor pris på det!
- Fungerer !! Nu kan jeg se, hvad ' foregår med alle taksonomimulighederne! Nogle plugins skaber en kompleks struktur derinde.
Svar
Siden 4.5.0 skal taksonomier sendes via taksonomi argument i $ args array så:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
hvor udtryk, der ikke har nogen indlæg, er skjult som standard.
Svar
Denne kode henter alle kategorier og underkategorier tilpassede taksonomier ved hjælp af 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; ?>