¿Cómo obtener un nombre de término de taxonomía por la babosa?

22

Si conozco un término taxonomía babosa, ¿cómo puedo obtener el nombre de ese término?

Carson
fuente
¿Quieres crear un enlace, título, ???
xLRDxREVENGEx

Respuestas:

38

La función que estás buscando es get_term_by. Lo usarías como tal:

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

Esto da como resultado $termun objeto que contiene lo siguiente:

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

El códice hace un gran trabajo al explicar esta función: http://codex.wordpress.org/Function_Reference/get_term_by

tollmanz
fuente
me ganaste Esto es exactamente lo que haría.
xLRDxREVENGEx
1
¿Qué pasa si no tienes la babosa de taxonomía?
EkoJR
2

Esto proporciona una respuesta cuando la taxonomía no está disponible / se desconoce .

En mi caso, cuando usé get_term_by , hubo algunos casos en los que solo existía el término Slug (sin ID de término o taxonomía). Lo que me llevó hasta aquí. Sin embargo, la respuesta proporcionada no resolvió mi problema.

Solución para vaciar $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 );

Resultado

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'

De la siguiente manera, el concepto obtiene una matriz de $taxonomies, recorre la matriz, y si IF get_term_by()devuelve una coincidencia, se rompe inmediatamente del bucle foreach.

Nota: Intenté buscar un método para obtener la taxonomía asociada (ID o Slug) de Term Slug, pero desafortunadamente no puedo encontrar nada disponible en WordPress.

EkoJR
fuente
0

Gracias, esto funcionó para mí.

Creé una función y la uso una y otra vez según sea necesario.

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
fuente