web-dev-qa-db-ja.com

カテゴリスラッグからカテゴリIDを取得する(動作していない)

私はこのコードを見つけました。これは明らかにカテゴリスラッグからカテゴリIDを取得します。

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

しかし、それを次のコードに実装しようとすると、うまくいきません。

<?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>

特定の親カテゴリの子カテゴリのみを表示しようとしています。 「child_of」のカテゴリIDを入力しただけでは、問題はありません。しかし上記のコードを使用して、それはすべてのカテゴリを表示し続けます。残念ながら、IDではなく、slugを使ってやる必要があります。

何か案は?

6
LBF

カスタム分類法で get_category_by_slug() を使用することはできません。 get_term_by() を使う必要があります。

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