<?php

// Получаем текущие рубрики из меню
$categories = get_categories_from_menu_exact_order('rubrics');
$current_term = get_queried_object();

// Получаем ID текущей категории или категорий поста
$current_term_ids = [];
if (is_single()) {
    $current_term_ids = wp_get_post_categories($current_term->ID);
} elseif (is_category()) {
    $current_term_ids[] = $current_term->term_id;
}

    foreach ($categories ?? [] as $cat) {
        if ($cat->slug === 'uncategorized') continue;
        $icon = get_field('icon', 'category_' . $cat->term_id);
        $bg_image = get_field('bg_image', 'category_' . $cat->term_id);

        if($bg_image){

            $class = in_array($cat->term_id, $current_term_ids) ? 'is-active' : '';

            echo "<a href='" . get_category_link($cat->term_id) . "' class='menu-vertical__item " . $class . "'>
                    <span class='menu-vertical__item-icon'><img src='" . $icon . "' alt=''></span>
                    <span class='menu-vertical__item-text'>$cat->name</a></span>
              </a>
            ";
        }    
    }
