Comment obtenir un nom de terme de taxonomie par la limace?

23

Si je connais un slug de terme de taxonomie, comment puis-je obtenir le nom de ce terme?

Carson
la source
voulez-vous créer un lien, un titre, ???
xLRDxREVENGEx

Réponses:

39

La fonction que vous recherchez est get_term_by. Vous l'utiliseriez comme tel:

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

Cela se traduit par $termêtre un objet contenant les éléments suivants:

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

Le codex explique très bien cette fonction: http://codex.wordpress.org/Function_Reference/get_term_by

tollmanz
la source
tu m'as battu. C'est exactement ce que je ferais.
xLRDxREVENGEx
1
Et si vous n'avez pas la limace taxinomique?
EkoJR
2

Cela fournit une réponse lorsque la taxonomie n'est pas disponible / inconnue .

Dans mon cas, lors de l'utilisation de get_term_by , il y avait des cas où il n'y avait que le terme Slug (pas d'ID de terme ou de taxonomie). Ce qui m'a conduit ici. Cependant, la réponse fournie n'a pas tout à fait résolu mon problème.

Solution pour vide $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 );

Résultat

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'

Comme suit, le concept obtient un tableau de $taxonomies, boucle à travers le tableau et IF get_term_by()renvoie une correspondance, il sort alors immédiatement de la boucle foreach.

Remarque: J'ai essayé de rechercher une méthode pour obtenir la taxonomie associée (ID ou Slug) de Term Slug, mais malheureusement je ne trouve rien de disponible dans WordPress.

EkoJR
la source
0

merci, cela a fonctionné pour moi.

J'ai créé une fonction et je l'utilise encore et encore au besoin.

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
la source