web-dev-qa-db-fra.com

Obtenir l'ID de la catégorie slug (ne fonctionne pas)

J'ai trouvé ce code, qui obtient apparemment l'ID de catégorie de la catégorie slug:

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

Mais lorsque j'essaie de l'implémenter dans le code suivant, cela ne fonctionne pas:

<?php
//list terms in a custom taxonomy using 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>

J'essaie de ne montrer que les catégories enfants d'une catégorie parent spécifique. Si je tape juste l'ID de catégorie pour "child_of" alors cela fonctionnera parfaitement. Mais en utilisant le code ci-dessus, il continue d'afficher toutes les catégories. Malheureusement, je dois le faire via slug, pas via ID.

Des idées?

6
LBF

Vous ne pouvez pas utiliser get_category_by_slug() avec une taxonomie personnalisée. Vous devez utiliser get_term_by() .

$category = get_term_by( 'slug', 'military', 'product_cat' );
10
Chris_O