Получение ID категории из ярлыка категории (не работает)

11 апр. 2013 г., 23:07:41
Просмотры: 26.3K
Голосов: 11

Я нашел этот код, который должен получать ID категории из ярлыка категории:

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

Но когда я пытаюсь внедрить его в следующий код, он не работает:

<?php
// выводим список терминов в пользовательской таксономии используя 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>

Я пытаюсь показать только дочерние категории определенной родительской категории. Если я просто вписываю ID категории для "child_of", тогда все работает отлично. Но при использовании кода выше, он продолжает показывать все категории. К сожалению, мне нужно сделать это через ярлык, а не через ID.

Есть какие-нибудь идеи?

0
Все ответы на вопрос 1
5
21

Вы не можете использовать get_category_by_slug() с пользовательской таксономией. Вам нужно использовать get_term_by().

$category = get_term_by( 'slug', 'military', 'product_cat' );
11 апр. 2013 г. 23:13:48
Комментарии

А, я этого не осознавал. Спасибо! Однако я попытался заменить строку $category = get_category_by_slug..., чтобы она соответствовала написанному выше, но это всё равно не сработало. Нужно ли также изменить строку с "child_of"?

LBF LBF
11 апр. 2013 г. 23:24:10

Можешь дампнуть объект $category, чтобы убедиться, что он существует. var_dump( $category ); После вызова get_category_by_slug().

Chris_O Chris_O
11 апр. 2013 г. 23:28:11

Я сделал дамп, и он выдал мне следующее: 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 апр. 2013 г. 01:19:38

Ах! Я допустил опечатку в слове "category" в своем коде, когда вводил вашу новую строку. Чёрт возьми. Всегда эти глупые ошибки. Спасибо — это сработало!

LBF LBF
12 апр. 2013 г. 01:30:14

Смотрите, например, без капслока: get_category_by_slug как получить ID.

Charles Charles
2 июн. 2016 г. 17:50:30