Antworten:
Die Funktion, die Sie suchen, ist get_term_by
. Sie würden es als solches verwenden:
<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>
Dies führt dazu, $term
dass es sich um ein Objekt handelt, das Folgendes enthält:
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Der Codex leistet hervorragende Arbeit bei der Erklärung dieser Funktion: http://codex.wordpress.org/Function_Reference/get_term_by
Dies liefert eine Antwort, wenn die Taxonomie nicht verfügbar / unbekannt ist .
In meinem Fall gab es bei der Verwendung von get_term_by einige Fälle, in denen nur der Term Slug (keine Term-ID oder Taxonomie) vorhanden war. Was mich hierher geführt hat. Die Antwort löste mein Problem jedoch nicht ganz.
$taxonomy
// We want to find the ID to this slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
// If term object is returned, break out of loop. (Returns false if there's no object)
if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
break;
}
}
$term_id = $term_object->name;
echo 'The Term ID is: ' . $term_id . '<br>';
var_dump( $term_object );
The Term ID is: 32
object(WP_Term)
public 'term_id' => int 32
public 'name' => string 'Example Term'
public 'slug' => string 'example-term'
public 'term_group' => int 0
public 'term_taxonomy_id' => int 123
public 'taxonomy' => string 'category'
public 'description' => string ''
public 'parent' => int 0
public 'count' => int 23
public 'filter' => string 'raw'
Das Konzept erhält wie folgt ein Array von $taxonomies
, durchläuft das Array und IF get_term_by()
gibt eine Übereinstimmung zurück. Anschließend wird die foreach-Schleife sofort verlassen.
Hinweis: Ich habe versucht, nach einer Methode zu suchen, um die zugehörige Taxonomie (ID oder Slug) von Term Slug abzurufen. Leider kann ich in WordPress keine verfügbare Methode finden.
Danke, das hat bei mir funktioniert.
Ich habe eine Funktion erstellt und benutze sie bei Bedarf immer wieder.
function helper_get_taxonomy__by_slug($term_slug){
$term_object = "";
$taxonomies = get_taxonomies();
foreach ($taxonomies as $tax_type_key => $taxonomy) {
// If term object is returned, break out of loop. (Returns false if there's no object);
if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
break;
}else{
$term_object = "Warn! Helper taxonomy not found.";
}
}
return $term_object;
}