¿Cómo puedo obtener el ID de categoría por el nombre de categoría?

22 jul 2012, 00:18:17
Vistas: 43.7K
Votos: 6

Tengo algunas categorías con el mismo nombre [algunas de ellas son subcategorías]. Y quiero obtener un array de IDs para cierto nombre de categoría. Intenté esto:

$term = get_term_by('name', $cat_name, 'category');

pero parece que get_term_by() solo devuelve el primer término que coincide con la consulta.

0
Todas las respuestas a la pregunta 2
1
14

Utiliza get_terms(), que internamente usa WP_Term_Query. Para una lista completa de todos los parámetros disponibles, consulta la documentación de WP_Term_Query::__construct

// Obtener *IDs* de términos con nombres que *coinciden* con "my_name"
$term_ids = get_terms([
    'fields' => 'ids',
    'taxonomy' => 'category',
    'name' => 'my_name',
    'hide_empty' => false,
]);

// Obtener *objetos* de términos con nombres que *coinciden* con "my_name"
$terms = get_terms([
    'taxonomy' => 'category',
    'name' => 'my_name',
    'hide_empty' => false,
]);

// Obtener *objetos* de términos con nombres que *contienen* "my_name"
$terms = get_terms([
    'taxonomy' => 'category',
    'name__like' => 'my_name',
    'hide_empty' => false,
]);
22 jul 2012 02:15:15
Comentarios

Muchas gracias. Antes de tu respuesta hice: `$id = array(); $args = array(
'hide_empty' => 0, );

$categories = get_categories( $args );

foreach($categories as $c){ if ($c->name == $cat_name){ $id[] = $c->term_id; } }`

Shimon S Shimon S
22 jul 2012 14:06:42
0
10

get_cat_ID( $cat_name ) ¡puede hacer el trabajo! Ejemplo:

<?php
     $category_id = get_cat_ID('Nombre de la Categoría');
     $q = 'cat=' . $category_id;
     query_posts($q);
     if (have_posts()) : while (have_posts()) : the_post();

     the_content();

     endwhile; endif;
?>

¡MÁS Detalles!

31 dic 2012 08:36:58