hide_empty категории в Woocommerce не работают

#woocommerce #categories

#woocommerce #Категории

Вопрос:

Я использую этот короткий код для отображения подкатегорий, и он работает нормально.
Но я хотел бы скрыть пустые категории, а hide_empty не работает.

 function woocommerce_subcats_by_id( $atts ) {
    extract( shortcode_atts( array(
        'parent_cat_id' => '',
    ), $atts ) );
 
    $idbyid = get_term_by('id', $parent_cat_id, 'product_cat');
    $product_cat_ID = $idbyid->term_id;
      
    $args = array(
        'taxonomy' => 'product_cat',
        'child_of' => $product_cat_ID,
        'hide_empty' => true
        
    );
    $subcats = get_terms($args);
    $content = '<ul class="woodmart-woocommerce-layered-nav">';
      foreach ($subcats as $sc) {
        $link = get_term_link( $sc->slug, $sc->taxonomy );
          $content .= '<li class="woodmart-woocommerce-layered-nav"><a class="layered-nav-link" href="'. $link .'"><span class="swatch-inner"><span class="layer-term-name">'.$sc->name.'</span></span></a></li>';
      }
    $content .= '</ul>';
    return $content;
}
add_shortcode( 'show_sub', 'woocommerce_subcats_by_id' );
 

Ответ №1:

Хотя вы не написали начало своей функции. Я предполагаю, что это так

 function woocommerce_subcats_by_id($atts){

    extract( shortcode_atts( array(
          'parent_cat_id' => '',
    ), $atts ) );
 
    $idbyid = get_term_by('id', $parent_cat_id, 'product_cat');
    $product_cat_ID = $idbyid->term_id;
      
    $args = array(
        'taxonomy' => 'product_cat',
        'child_of' => $product_cat_ID,
        'hide_empty' => true
        
    );
    $subcats = get_terms($args);
    $content = '<ul class="woodmart-woocommerce-layered-nav">';
      foreach ($subcats as $sc) {
        $link = get_term_link( $sc->slug, $sc->taxonomy );
          $content .= '<li class="woodmart-woocommerce-layered-nav"><a class="layered-nav-link" href="'. $link .'"><span class="swatch-inner"><span class="layer-term-name">'.$sc->name.'</span></span></a></li>';
      }
    $content .= '</ul>';
    return $content;
}
add_shortcode( 'show_sub', 'woocommerce_subcats_by_id' );
 

И он скрывает пустые категории.

Комментарии:

1. Привет @Unce Все еще не скрывает пустые категории. Я думаю, что забыл вставить функцию в свой первый пост.

2. Привет, не могли бы вы отредактировать свой пост, чтобы он включал начало функции. Также может быть, что у вас включен другой плагин, который фильтрует ваш запрос.

3. Я пытался отключить все плагины и использовал тему по умолчанию, но она продолжает показывать пустые подкатегории. Может быть, мне нужно где-то разместить СЧЕТЧИК в коде? ($subcats->count > 0)

4. Вы уверены, что ваши категории пусты?

5. Да, у нас есть пара пустых категорий. Но они отображаются:-(