Wie erhält man einen Taxonomiebegriffsnamen durch die Schnecke?

22

Wie kann ich den Namen eines Taxonomiebegriffs erhalten, wenn ich ihn kenne?

Carson
quelle
Möchtest du einen Link erstellen, Titel, ???
xLRDxREVENGEx

Antworten:

38

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, $termdass 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

tollmanz
quelle
Du warst schneller als ich. Genau das würde ich tun.
xLRDxREVENGEx
1
Was ist, wenn Sie keine Taxonomie haben?
EkoJR
2

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.

Lösung für leer $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 );

Ergebnis

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.

EkoJR
quelle
0

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;
}
Mahesh Chhetri
quelle