WordPress.org

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

es:Function Reference/get term by

Descripción

Get all Term data from database by Term field and data.

Advertencia: $value (valor) no contendrá escapado-HTML (HTML-escape) para el $campo ($field) 'name' (nombre). De necesitarlo, deberá hacerlo usted mismo.


El $field (campo) por defecto es 'id', por lo tanto, es posible que también puedas usar null (nulo) para field (campo), pero recomendamos que esto no se realice.

Si $value (valor) no existe, el valor retornado será false (falso). Si $taxonomy (taxonomía) existe y la combinación de $field (campo) y $value (valor) existe, será retornado el Term (Término).

Uso

<?php get_term_by$field$value$taxonomy$output$filter ?>

Parámetros

$field
(string) (requerido) Ya sea 'id', 'slug', 'name', o 'term_taxonomy_id'
Default: 'id'
$value
(string|integer) (requerido) Buscar este valor de term
Default: None
$taxonomy
(string) (opcional) Taxonomy Name category, post_tag, link_category, nav_menu or something custom
Default: '' (cadena vacia)
$output
(string) (opcional) Constante OBJECT (objeto), ARRAY_A, o ARRAY_N
Default: OBJECT
$filter
(string) (opcional) default is raw or no WordPress defined filter will applied.
Default: 'raw'

Valores Retornados

(mixto) 
Columna de Términos (objeto o array(arreglo)) desde la base de datos. Puede retornar false si $taxonomy (taxonomía) no existiera o el $term (termino) no fue encontrado. Si esto no ocurre entonces retornará un objeto (por defecto) o un arreglo (array) de campos dependiendo de lo puesto en el parámetro $output (salida).

Los campos retornados son:

  • term_id (Ver la advertencia a continuación)
  • name (nombre)
  • slug
  • term_group
  • term_taxonomy_id
  • taxonomy (taxonomía)
  • description (descripción)
  • parent (padre)
  • count (conteo)

Advertencia: confusión cadena de texto vs. enteros! Los campos con valores, incluyendo term_id son retornados en formato de cadena de texto. Antes de su uso, typecast numeric values to actual integers, otherwise WordPress will mix up term_ids and slugs which happen to have only numeric characters!

Ejemplos

Taxonomy_name es el nombre de la taxonomía, no el term_name y es requerida; el id (term_id) es el ID de el term, no post_id;...

Recordar:
↓ Tipo de Taxonomía (e.g. post_tag)
Terms en esta taxonomía:
→ noticias
→ webdev
→ ...

Ejemplo para tomar términos por nombre y tipo de taxonomía (taxonomy_name como categoría, post_tag o taxonomía personalizada).

// Toma el término con nombre ''news'' en la taxonomía Categorías 
$category = get_term_by('name', 'news', 'category')

// Toma el término con el nombre ''news'' en la taxonomía Tags
$tag = get_term_by('name', 'news', 'post_tag')

// Toma el término con el nombre ''news'' en una taxonomía personalizada
$term = get_term_by('name', 'news', 'my_custom_taxonomy')

// Get term by name ''Default Menu'' from theme's nav menus.
// (Alternative to using wp_get_nav_menu_items)
$menu = get_term_by('name', 'Default Menu', 'nav_menu');

By id (term_id, not post_id):

// Toma el término por id (''term_id'' en la taxonomía Categorías.
get_term_by('id', 12, 'category')

...


Wrong example in this page history

Advertencia: El siguiente ejemplo esta mal (ver en este historial de pagina):

get_term_by( 'id', (int) $post->ID, 'taxonomy_name' ); // retorna null (nulo)

Este ejemplo trata de tomar los términos por ID (term_id) pero usa un ID de un post como instancia de un ID de termino.

Ahora este ejemplo muestra el modo correcto para tomar el/los term(s) para un post usando el post ID:

// get_term_by( 'id', $category_id, 'category' )
global $post;

$my_categories   = array();
$post_categories = get_the_category( $post->ID );

foreach ( $post_categories as $post_category ) {
	$my_categories[] = get_term_by( 'id', $post_category->cat_ID, 'category' );
}

// O:
$my_category = get_term_by( 'id', $post_categories[0]->cat_ID, 'category' );

Notas

  • Advertencia: $value no es escapado por 'name' $field. Debes hacerlo tu mismo, si lo necesitas.
  • See sanitize_term_field() The $context param lists the available values for 'get_term_by' $filter param.
  • Usos: sanitize_term() Cleanses the term based on $filter context before returning.
  • Usos globales: (object) $wpdb
  • get_term_by() retorna un simple objeto WP_Term. Because of core changes from v4.1 - 4.3, it's now possible for multiple terms to match the supplied name or slug parameters. The WP_Term Object returned will be the first matching term found by mySQL, there is no indication that other matching terms may exist. If there is any possibility of multiple terms having the same name or slug in your application, you should use get_terms() instead of get_term_by().

Anotaciones de Cambios

Desde: 2.3.0

Source File

get_term_by() is located in wp-includes/taxonomy.php.

Relacionado

See also index of Function Reference and index of Template Tags.