2013-07-05 2 views
2

여기 괜찮은 솔루션을 찾는 데 어려움을 겪었 기 때문에 이것에 대한 생각이 들기를 바랍니다.woocommerce 여러 카테고리를 가진 제품, 사이드 바에있는 활성 카테고리

woocommerce shop이 있으며 왼쪽에 사이드 바가 있고 오른쪽에 제품이 있습니다. 제품에는 여러 범주가있을 수 있습니다. 예를 들어, 제품 "Burger"는 "Food"및 "Fastfood"카테고리에 있습니다.

왼쪽에는 '음식'과 '퀵 푸드'라는 두 가지 'Burger'카테고리가 있습니다. 나는 "음식"카테고리로 이동합니다. 사이드 바의 왼쪽에서 카테고리 음식을 강조 표시합니다.

(start loop going through categories) 

if(get_query_var('product_cat') == $cat->slug) - echo <li class="active"> 
else - echo <li class="active"> 

(end loop) 

그래서 카테고리 "음식"이 강조 표시되어 있습니다. 그런 다음 제품 "버거 (Burger)"를 선택합니다. "Burger"제품이 "Fastfood"범주에도 있으므로 "Fastfood"범주가 활성 상태로 표시됩니다.

활성 카테고리는 원래 제품 ("식품")에서 선택한 카테고리를 기반으로해야합니다. "Fastfood"카테고리로 이동하여 "Burger"를 선택하면 "Fastfood"가 활성화되어 있어야합니다. "Burger"를 "Food"에서 열면 "Food"가 활성 카테고리 여야합니다.

내 시도는 모든 제품을 표시 할 때 현재 범주로 permalink (<?php the_permalink(); ?>)의 범주를 변경하는 것입니다.하지만 올바른 방법으로 느끼지 않습니다.

누가 더 나은 해결책을 가지고 있을지도 모릅니다.

좋은 하루 되시길 바랍니다!


편집 : ... (이하 "잘못된"범주에 나를 리디렉션)

$custom_permalink = get_settings('siteurl')."/".get_query_var('product_cat')."/".basename(get_permalink()); 

는 슬프게도이 작동하지 않습니다

나는 오른쪽 카테고리에 영구 링크를 만들어 관리했습니다 하지만 어쨌든이 해킹을 좋아하지 않아 :) ..


답변

5

나는 그것을 얻었다. 이것이 내가 한 것입니다 :

사용자 정의 템플릿 파일 /yourtheme/woocommerce/content-product.php에서 a href가 변경됩니다. 범주가 설정되어있는 경우 "모든 제품"viewening 경우 아무도 없기 때문에

// HOOK FOR CORRECT ACTIVE SIDEBAR ELEMENT WHEN PRODUCT HAS MULTIPLE CATEGORIES 
    if(get_query_var('product_cat') == ""){ 
     $product_categries = get_the_terms($post->ID, 'product_cat'); 
     foreach ($product_categries as $category) { 
      $cur_cat = $category->slug; 
     } 

     $custom_cat = $cur_cat; 
    }else{ 
     $custom_cat = get_query_var('product_cat'); 
    } 

    $custom_permalink = get_permalink(5).$custom_cat."/".basename(get_permalink()); 

가 나는 또한이 경우, (확인 : (현재 선택한 카테고리를 사용하여) 새로운 고유 주소를 생성

코드 제품을 반복하고 카테고리를 사용하여 permalink에서 사용합니다.)

id가 5 인 get_permalink는 기본적으로 내 상점 페이지이므로 상점에서 permalink를 변경하면 동적으로 유지됩니다. 이미 못생긴 해킹이기 때문에 여기에 하드 코드 된 것을 좋아하지 마십시오.

제품을 포장하는 href 앞에이 코드를 입력하십시오. 제 경우에는 42 행 (Woocommerce V2.0.10)이었습니다. 그런 다음

<a href="<?php echo $custom_permalink; ?>"> 
난 당신이 같은 문제에 직면 할 때이 당신을 도움이되기를 바랍니다

<a href="<?php the_permalink(); ?>"> 

에서이 A HREF 변경!

관련 문제