Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Не работает "Тип Отображения"

Тема в разделе "Вопросы новичков", создана пользователем zaharbaz, 18 мар 2016.

  1. zaharbaz

    zaharbaz

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    С какого-то перепуга не работает Тип отображения, который отвечает за вывод: категории/товары/и то и другое
    Какой бы вариант я не выбрал, не важно в настройках вукомерса или в самой категории, всегда отображаются товары.

    Подскажите, в чем может быть причина? конфликт в functions? Может кто сталкивался, я уже голову сломал
    p.s. кэш чистил
     
    Последнее редактирование: 18 мар 2016
  2. zaharbaz

    zaharbaz

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    Кажется причина вот в этом коде:
    PHP:
    // Show empty category
    function woocommerce_product_subcategories$args = array() ) {
        global 
    $woocommerce$wp_query$_chosen_attributes;
        
    $defaults = array(
            
    'before'  => '',
            
    'after'  => '',
            
    'force_display' => false
        
    );
        
    $args wp_parse_args$args$defaults );
        
    extract$args );
        
    // Main query only
        
    if ( ! is_main_query() && ! $force_display ) return;
        
    // Don't show when filtering
        
    if ( sizeof$_chosen_attributes ) > || ( isset( $_GET['max_price'] ) && isset( $_GET['min_price'] ) ) ) return;
        
    // Don't show when searching or when on page > 1 and ensure we're on a product archive
        
    if ( is_search() || is_paged() || ( ! is_product_category() && ! is_shop() ) ) return;
        
    // Check cateogries are enabled
        
    if ( is_product_category() && get_option'woocommerce_show_subcategories' ) == 'no' ) return;
        if ( 
    is_shop() && get_option'woocommerce_shop_show_subcategories' ) == 'no' ) return;
        
    // Find the category + category parent, if applicable
        
    if ( $product_cat_slug get_query_var'product_cat' ) ) {
            
    $product_cat get_term_by'slug'$product_cat_slug'product_cat' );
            
    $product_category_parent $product_cat->term_id;
        } else {
            
    $product_category_parent 0;
        }
        
    // NOTE: using child_of instead of parent - this is not ideal but due to a WP bug ( http://core.trac.wordpress.org/ticket/15626 ) pad_counts won't work
        
    $args = array(
            
    'child_of'      => $product_category_parent,
            
    'menu_order'    => 'ASC',
            
    'hide_empty'    => 0,
            
    'hierarchical'  => 1,
            
    'taxonomy'      => 'product_cat',
            
    'pad_counts'    => 1
        
    );
        
    $product_categories get_categories$args  );
        
    $product_category_found false;
        if ( 
    $product_categories ) {
            foreach ( 
    $product_categories as $category ) {
                if ( 
    $category->parent != $product_category_parent )
                    continue;
                if ( ! 
    $product_category_found ) {
                    
    // We found a category
                    
    $product_category_found true;
                    echo 
    $before;
                }
                
    woocommerce_get_template'content-product_cat.php', array(
                    
    'category' => $category
                
    ) );
            }
        }
        
    // If we are hiding products disable the loop and pagination
        
    if ( $product_category_found == true && get_option'woocommerce_hide_products_when_showing_subcategories' ) == 'yes' ) {
            
    $wp_query->post_count 0;
            
    $wp_query->max_num_pages 0;
        }
        if ( 
    $product_category_found ) {
            echo 
    $after;
            return 
    true;
        }
    }

    Он отображает пустые категории. Но вместе и с ними отображает все товары из дочерних категорий.
    Как можно было бы видоизменить этот код, чтобы он отображал только пустые категории, а товары не трогал?
     
  3. zaharbaz

    zaharbaz

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    Вопрос решен. Код показывающий пустые категории заменен на этот:
    PHP:
    add_filter'woocommerce_product_subcategories_hide_empty''show_empty_categories'10);
    function 
    show_empty_categories $show_empty ) {
    $show_empty true;
    // You can add other logic here too
    return $show_empty;
    }


    Можно закрывать
     
    • Нравится Нравится x 1