Отображение подкатегорий текущих подкатегорий в Woocommerce

Я пытаюсь показать подкатегории в текущей подкатегории в Woocommerce, например этот веб-сайт.

У меня есть две родительские категории «Продукты» и «Секторы». Затем у меня есть ссылка на меню, которая ведет к обоим.

Когда я нахожусь в разделе «Продукты», я хочу видеть изображение подкатегории, заголовок категории, а затем все подкатегории с заголовком и ссылки на них.

Например, родительской категорией является «Продукция», «Строительство» - подкатегорией, а «Герметики и клеи, гидроизоляция, пенопласты…» - подкатегориями.

Герметики и мастики - это подкатегория, а СИЛИКОНОВЫЙ ГЕРМЕТИК УКСУСНЫЙ, НЕЙТРАЛЬНЫЙ СИЛИКОНОВЫЙ ГЕРМЕТИК, АКРИЛОВЫЙ ГЕРМЕТИК… являются подкатегориями…

Вот скриншот, который лучше объясняет:

введите здесь описание изображения


person Alvaro    schedule 03.09.2019    source источник


Ответы (1)


Код, который будет использоваться здесь, очень похож на ваш предыдущий вопрос. Но мы используем конкретную ловушку действия с некоторыми изменениями, чтобы получить подкатегории подкатегорий:

// Displaying the sub-subcategories of the current subategories
add_action('woocommerce_after_subcategory', 'display_subsubcategories_list', 20, 1 );
function display_subsubcategories_list( $category ) {
    $taxonomy = 'product_cat';

    // Get sub-subcategories of the current subcategory
    $terms    = get_terms([
        'taxonomy'    => $taxonomy,
        'hide_empty'  => true,
        'parent'      => $category->term_id
    ]);

    if( count($terms) > 0 ) :

    echo '<ul class="subcategories-list" style="list-style: none; border: solid 1px #ddd; border-bottom: none;">';

    // Loop through product sub-subcategories WP_Term Objects
    foreach ( $terms as $term ) {
        $term_link = get_term_link( $term, $taxonomy );

        echo '<li class="'. $term->slug .'" style="border-bottom: solid 1px #ddd;"><a href="'. $term_link .'">'. $term->name .'</a></li>';
    }

    echo '</ul>';

    endif;
}

Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Примечания. Перехватчик действия woocommerce_after_subcategory находится в content-product_cat.php файле шаблона, который обрабатывает подкатегории, отображаемые как продукты (с изображением и связанным названием термина).
Для этого в ваших основных категориях должна быть установлена ​​опция «Тип отображения» на «Подкатегория».

person LoicTheAztec    schedule 03.09.2019
comment
Еще один вопрос, где я могу изменить цвет шрифта и цвет фона заголовка подкатегории (белый цвет шрифта и черный фон, как на скриншоте)? - person Alvaro; 03.09.2019