Wie kann ich eine Taxonomie-ID oder einen Namen nur mit dem Taxonomie-Slug erhalten?
Ich schätze, ich suche nach dem Äquivalent von get_term_by() aber für Taxonomien.
Bearbeiten: Ich muss angeben, dass ich versuche, die Steuer-ID eines WooCommerce-Produktattributs zu erhalten.
Vielen Dank
WordPress bietet eine Funktion zum Abrufen der Taxonomieinformationen aus seinem Slug.
$taxonomy_details = get_taxonomy( $slug );
Dadurch werden die Taxonomiedetails als Objekt zurückgegeben, das die verschiedenen Bezeichnungen für die Taxonomie enthält. Hier ist zum Beispiel das zurückgegebene Objekt, wenn es für die Standard-Kategorie-Taxonomie aufgerufen wird, z get_taxonomy( 'category' );
Die Schnecke ist nicht dasselbe wie der Name der Taxonomie. Ihr Beispiel funktioniert nur, weil sie in diesem speziellen Fall zufällig gleich sind. get_taxonomy nimmt einen Taxonomienamen an, keinen Slug.
– Hjalmar
15. Mai 2015 um 11:26 Uhr
@Hjalmar Ich denke, das ursprüngliche Poster bezog sich auf Taxonomie-> Name als Slug und Taxonomie-> Label als Name. Ich stehe vor dem gleichen Problem wie er mit WC-Attributen.
– David
3. Oktober 2015 um 11:50 Uhr
Da die akzeptierte Antwort die Frage nicht beantwortet, gebe ich hier eine Antwort, obwohl die Frage sehr alt ist.
Das dritte (erforderliche) Argument für get_term_by() ist der Name der Taxonomie selbst, daher kann diese Funktion nicht verwendet werden.
get_taxonomies() kann auch nicht verwendet werden, da Sie dann das gesamte Rewrite-Array abgleichen müssten, auf das Sie wahrscheinlich keinen Zugriff haben.
Die einzige Möglichkeit, die ich gefunden habe, war die Verwendung des privaten Arrays $wp_taxonomies:
function get_tax_name_from_slug($slug){
foreach ($wp_taxonomies as $key => $value) {
if ($value->rewrite['slug'] === $slug){
return $key;
}
}
}
Ich hoffe wirklich, dass WordPress eine Möglichkeit bietet, dies zu tun, ohne auf ihre internen Datenstrukturen zuzugreifen.