Ik heb een paar aangepaste taxonomieën gemaakt en ik moet ALLE termen eruit laten zien, wat ik tot nu toe heb bereikt, is het tonen van de taxonomieën die zijn geselecteerd / gekozen in een aangepast berichttype, maar ik moet ze allemaal laten zien, of het nu is geselecteerd of niet. Zodat ik later een filter kan maken dat filtert op welke termen een aangepast berichttype bevat.

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

Wat ik tot nu toe heb.

Alvast bedankt!

Opmerkingen

  • Op welk punt mislukt dit? In hoeverre werkt het zoals u ' wilt?
  • Het probleem is dat ik alleen de GESELECTEERDE termen in een aangepast berichttype. Ik wil dat ze allemaal laten zien of ze zijn geselecteerd of niet, ik wil niet ' een dummy-berichttype hebben waarin alles is geselecteerd om ze te laten zien.

Antwoord

Je moet een extra argument doorgeven aan . De standaardinstelling is om “lege” termen te verbergen – termen die aan geen berichten zijn toegewezen.

$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]); 

Reacties

  • Heel erg bedankt! Maar ik wil iets vragen: waarom zou je een array binnen een variabele maken in plaats van het te declareren boven waar de eerste array wordt getoond?
  • Eenvoud. Als de argumentarray complexer was, zou ik deze eerst hebben gedeclareerd (hoogstwaarschijnlijk), maar voor een enkel argument is dat gewoon de meest eenvoudige manier om het te doen. Het zou hoe dan ook even goed moeten werken.
  • Heel erg bedankt 🙂 dat vond ik erg leuk. Ik waardeer het echt!
  • Werkt !! Nu kan ik zien wat er aan de hand is ' met alle taxonomie-opties! Sommige plug-ins creëren daarin een complexe structuur.

Answer

Sinds 4.5.0 moeten taxonomieën worden doorgegeven via de taxonomy argument in de $ args array dus:

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

waarbij termen die geen posts hebben standaard verborgen zijn.

Answer

Deze code haalt alle aangepaste taxonomieën van categorieën en subcategorieën op met 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; ?> 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *