Ich habe einige benutzerdefinierte Taxonomien erstellt und muss ALLE Begriffe daraus anzeigen. Bisher habe ich die Taxonomien angezeigt, in denen ausgewählt / ausgewählt wurde Ein benutzerdefinierter Beitragstyp, aber ich muss alle anzeigen, ob er ausgewählt ist oder nicht. Damit ich später einen Filter erstellen kann, der nach den Begriffen filtert, die ein benutzerdefinierter Beitragstypwert enthält.
<?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 } } } ?>
Was ich bisher habe.
Vielen Dank im Voraus!
Kommentare
- Ab wann schlägt dies fehl? Wie viel davon funktioniert so, wie Sie es ' möchten?
- Das Problem ist, dass ich nur das AUSGEWÄHLTE anzeigen kann Begriffe in einem benutzerdefinierten Beitragstyp. Ich möchte, dass alle anzeigen, ob sie ausgewählt sind oder nicht. ' möchte keinen Dummy-Beitragstyp haben, bei dem alles ausgewählt ist, nur um sie anzuzeigen.
Antwort
Sie müssen ein zusätzliches Argument an . Standardmäßig werden „leere“ Begriffe ausgeblendet – Begriffe, die keinen Posts zugewiesen sind.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Kommentare
- Vielen Dank! Aber ich möchte etwas fragen, warum Sie ein Array innerhalb einer Variablen erstellen sollten, anstatt es über der Stelle zu deklarieren, an der das erste Array angezeigt wird?
- Einfachheit. Wenn das Argumentarray komplexer wäre, hätte ich es zuerst (höchstwahrscheinlich) deklariert, aber für ein einzelnes Argument ist dies nur der einfachste Weg, dies zu tun. In beiden Fällen sollte es genauso gut funktionieren.
- Vielen Dank 🙂 Das hat mich sehr beschäftigt. Ich weiß das wirklich zu schätzen!
- Funktioniert !! Jetzt kann ich sehen, was ' mit allen Taxonomieoptionen los ist! Einige Plugins erstellen dort eine komplexe Struktur.
Antwort
Seit 4.5.0 sollten Taxonomien über das übergeben werden Argument Taxonomie im Array $ args, also:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
wobei Begriffe ohne Beiträge standardmäßig ausgeblendet sind.
Antwort
Dieser Code ruft alle benutzerdefinierten Taxonomien für Kategorien und Unterkategorien mit get_terms()
ab:
<?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; ?>