$value) { error_log("Ключ: $key => " . print_r($value, true)); if (strpos($key, 'wpf_filter_') === 0) { $raw_taxonomy = str_replace('wpf_filter_', '', $key); error_log("→ Обнаружен фильтр: $raw_taxonomy"); $slugs = is_array($value) ? $value : explode(',', $value); error_log("→ Slugs: " . implode(', ', $slugs)); // Попробуем с pa_ и без, в зависимости от существования таксономии $taxonomy = taxonomy_exists('pa_' . $raw_taxonomy) ? 'pa_' . $raw_taxonomy : $raw_taxonomy; foreach ($slugs as $slug) { $term = get_term_by('slug', $slug, $taxonomy); if ($term) { error_log("✔ Найден термин: {$term->name} (ID: {$term->term_id}) в таксономии: $taxonomy"); $filters[] = [ 'id' => $term->term_id, 'name' => $term->name, 'slug' => $term->slug, 'taxonomy' => $taxonomy, ]; } else { error_log("✖ Термин не найден: $slug в таксономии: $taxonomy"); } } } } if (empty($filters)) { error_log('Ни один активный фильтр не найден.'); } return $filters; } $context = Timber::context(); //$context['posts'] = Timber::get_posts(); $context['criteria_for_new_product'] = date('Y-m-d', strtotime('-30 days')); // Задаем количество постов для подзагрузки Ajax $context['posts_per_page'] = 12; $queried_object = get_queried_object(); if (is_product_category() || is_tax()) { $term_id = $queried_object->term_id; $context['category_type'] = 'product_cat'; $context['category_id'] = $term_id; $context['category'] = get_term($term_id, 'product_cat'); $context['category_link'] = get_term_link($term_id, 'product_cat'); $context['category_title'] = single_term_title('', false); } if (is_tax()) { $context['category_type'] = $queried_object->taxonomy; $context['category'] = get_term($term_id, $context['category_type']); $context['category_link'] = get_term_link($term_id, $context['category_type']); $context['category_title'] = single_term_title('', false); } $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => $context['posts_per_page'], 'paged' => 1, 'has_password' => FALSE ); $count_args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1, 'has_password' => FALSE ); if ($context['category_id'] != NULL) { $categories = [ 'tax_query' => array( array( 'taxonomy' => $context['category_type'], 'terms' => $context['category_id'], 'operator' => 'IN' ), array( 'taxonomy' => 'product_visibility', 'field' => 'slug', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN' ) ) ]; $args = array_merge($args, $categories); $count_args = array_merge($count_args, $categories); } $context['active_filters'] = get_active_woobewoo_filters_for_twig(); $context['posts'] = Timber::get_posts($args); $context['count'] = count(Timber::get_posts($count_args)); $context['sidebar_filters'] = Timber::get_widgets('sidebar_filters'); Timber::render('archive-product/archive-product.twig', $context); ?>