Ich habe eine hierarchische Taxonomie namens "geografische Standorte". Es enthält Kontinente auf einer ersten Ebene und dann die Länder für jeden einzelnen. Beispiel
Europe
- Ireland
- Spain
- Sweden
Asia
- Laos
- Thailand
- Vietnam
etc.
Mit get_terms () habe ich es geschafft, die vollständige Liste der Begriffe auszugeben, aber die Kontinente werden mit den Ländern in einer großen, flachen Liste verwechselt.
Wie kann ich eine hierarchische Liste wie oben ausgeben?
taxonomy
list
terms
hierarchical
mike23
quelle
quelle
Antworten:
In Verbindung
wp_list_categories
mit dem'taxonomy' => 'taxonomy'
Argument können hierarchische Kategorielisten erstellt werden, es wird jedoch auch die Verwendung einer benutzerdefinierten Taxonomie unterstützt.Codex-Beispiel:
Anzeigen von Begriffen in einer benutzerdefinierten Taxonomie
Wenn die Liste flach angezeigt wird, ist es möglich, dass Sie nur ein wenig CSS benötigen, um die Listen aufzufüllen, damit Sie ihre hierarchische Struktur sehen können.
quelle
Mir ist klar, dass dies eine sehr alte Frage ist, aber wenn Sie eine tatsächliche Struktur von Begriffen aufbauen müssen, kann dies eine nützliche Methode für Sie sein:
Verwendung ist wie folgt:
quelle
$into[$cat->term_id] = $cat;
in$into[] = $cat;
der ID des Begriffs, wie der Array - Schlüssel ärgerlich ist (man kann nicht das erste Element erhält leicht die 0 - Taste) und nutzlos (Sie bereits das Speichern von$cat
Objekt und Sie können die ID erhalten Nutzung desterm_id
GrundstücksIch kenne keine Funktion, die das tut, was Sie wollen, aber Sie können so etwas aufbauen:
Ich habe das nicht getestet, aber Sie können sehen, worauf ich hinaus will. Mit dem obigen Code erhalten Sie nur zwei Ebenen
EDIT: ahh ja du kannst mit wp_list_categories () machen was du willst.
quelle
wp_list_categories()
, um Ihre GET-Parameter hinzuzufügen. Oder erstellen Sie besser einen Filter für die Funktion, um die gewünschten Bits hinzuzufügen. Fragen Sie mich nicht, wie Sie das machen, da ich es noch nicht verstanden habe :(wp_list_categories
Sie die Ausgabe besserSie können wp_list_categories () mit dem Argument 'taxonomy' verwenden.
quelle
Da ich das selbe aber suchte, um Konditionen für einen Beitrag zu bekommen, habe ich dies endlich kompiliert und es funktioniert bei mir.
Was es tut:
• Es werden alle Begriffe eines Taxonomienamens für einen bestimmten Beitrag abgerufen.
• Für eine hierarchische Taxonomie mit zwei Ebenen (z. B. Ebene 1: 'Land' und Ebene 2: 'Städte') wird ein h4 mit Ebene 1 erstellt, gefolgt von einer ul-Liste von Ebene 2 und dies für alle Elemente der Ebene 1.
• Wenn die Taxonomie nicht hierarchisch ist, wird nur eine ul-Liste aller Elemente erstellt. Hier ist der Code (ich schreibe ihn für mich, also habe ich versucht, so allgemein wie möglich zu sein, aber ...):
Zum Schluss rufen Sie die Funktion mit diesem Befehl auf (offensichtlich ersetzen Sie my_taxonomy durch yours):
finishingLister('my_taxonomy');
Ich tue nicht so, als wäre es perfekt, aber wie gesagt, es funktioniert für mich.
quelle
Der folgende Code generiert ein Dropdown-Menü mit Begriffen, kann aber auch jedes andere Element / jede andere Struktur generieren, indem Sie die Variable $ outputTemplate bearbeiten und die Zeilen str_replace bearbeiten:
quelle
Ich hatte dieses Problem und keine der Antworten hier hat aus dem einen oder anderen Grund für mich funktioniert.
Hier ist meine aktualisierte und funktionierende Version.
Und Nutzung:
quelle
Ich habe @popsi-Code verwendet, der sehr gut funktioniert hat und der effizienter und einfacher zu lesen ist:
Verwendung :
quelle
Sei sicher, dass
hierarchical=true
an Ihrenget_terms()
Anruf weitergeleitet wird.Beachten Sie, dass dies
hierarchical=true
die Standardeinstellung ist. Stellen Sie also sicher, dass sie nicht überschrieben wurdefalse
.quelle
get_terms()
gibt eine vollständige Liste der Begriffe zurück (wie im OP angegeben), jedoch keine hierarchische Liste, die die angeforderte Eltern-Kind-Beziehung anzeigt.Hier habe ich eine Dropdown-Auswahlliste mit vier Ebenen und verstecktem ersten Element
quelle