Come ottenere il nome di un termine tassonomia dalla lumaca?


22

Se conosco un termine slug tassonomia, come posso ottenere il nome di quel termine?


vuoi creare un link, titolo, ???
xLRDxREVENGEx

Risposte:


38

La funzione che stai cercando è get_term_by. Lo useresti come tale:

<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>

Ciò si traduce in $termessere un oggetto contenente quanto segue:

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

Il codice fa un ottimo lavoro spiegando questa funzione: http://codex.wordpress.org/Function_Reference/get_term_by


Mi hai battuto sul tempo. Questo è esattamente quello che vorrei fare.
xLRDxREVENGEx

1
E se non hai la lumaca della tassonomia?
EkoJR

2

Questo fornisce una risposta quando la tassonomia non è disponibile / sconosciuta .

Nel mio caso, quando si utilizza get_term_by , ci sono stati alcuni casi in cui c'era solo il termine Slug (nessun Term ID o tassonomia). Che mi ha portato qui. Tuttavia, la risposta fornita non ha risolto del tutto il mio problema.

Soluzione per vuoto $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 );

Risultato

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'

Come segue, il concetto ottiene una serie di $taxonomies , scorre attraverso la matrice e IF get_term_by()restituisce una corrispondenza, quindi si interrompe immediatamente dal ciclo foreach.

Nota: ho provato a cercare un metodo per ottenere la tassonomia associata (ID o Slug) da Term Slug, ma sfortunatamente non riesco a trovare nulla disponibile in WordPress.


0

grazie, questo ha funzionato per me.

Ho creato una funzione e la uso ripetutamente secondo necessità.

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;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.