Obtener ID de categoría desde el slug de categoría (no funciona)

11 abr 2013, 23:07:41
Vistas: 26.3K
Votos: 11

Encontré este código, que aparentemente obtiene el ID de categoría desde el slug de la categoría:

  $category = get_category_by_slug('category-name'); 
  $id = $category->term_id;

Pero cuando intento implementarlo en el siguiente código, no funciona:

<?php
//listar términos en una taxonomía personalizada usando wp_list_categories 

$category = get_category_by_slug( 'military' );

$args = array(
  'taxonomy'     => 'product_cat',
  'orderby'      => 'name',
  'show_count'   => 0,
  'pad_counts'   => 0,
  'hierarchical' => 1,
  'title_li'     => '',
  'depth'        => 2,
  'child_of'     => $category->term_id
);

?>

<ul class="test">
<?php wp_list_categories( $args ); ?>
</ul>

Estoy intentando mostrar solo las categorías hijas de una categoría padre específica. Si simplemente escribo el ID de la categoría para "child_of" entonces funciona perfectamente. Pero usando el código anterior, continúa mostrando todas las categorías. Desafortunadamente necesito hacerlo mediante el slug, no mediante el ID.

¿Alguna idea?

0
Todas las respuestas a la pregunta 1
5
21

No puedes usar get_category_by_slug() con una taxonomía personalizada. Necesitas usar get_term_by().

$category = get_term_by( 'slug', 'military', 'product_cat' );
11 abr 2013 23:13:48
Comentarios

Ah, no me había dado cuenta de eso. ¡Gracias! Sin embargo, intenté reemplazar la línea $category = get_category_by_slug... para que coincida con lo que escribiste arriba, y aún no funcionó. ¿Necesito cambiar también la línea "child_of"?

LBF LBF
11 abr 2013 23:24:10

¿Puedes hacer un dump del objeto $category para asegurarte de que existe? var_dump( $category ); Después de la llamada a get_category_by_slug().

Chris_O Chris_O
11 abr 2013 23:28:11

Hice el dump y me dio esto: object(stdClass)#771 (10) { ["term_id"]=> string(3) "144" ["name"]=> string(31) "Military Bands" ["slug"]=> string(11) "military" ["term_group"]=> string(1) "0" ["avhec_term_order"]=> string(1) "0" ["term_taxonomy_id"]=> string(3) "144" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(238) "Watch Straps" ["parent"]=> string(1) "0" ["count"]=> string(3) "163" }

LBF LBF
12 abr 2013 01:19:38

¡Ah! Había escrito mal "category" en mi código cuando escribí tu nueva línea. Ugh. Siempre son los errores tontos. Gracias, ¡esto funcionó!

LBF LBF
12 abr 2013 01:30:14

Ver por ejemplo sin mayúsculas exageradas: get_category_by_slug cómo obtener el ID.

Charles Charles
2 jun 2016 17:50:30