2013-04-12 5 views
0

woocommerce 플러그인을 사용하여 Wordpress 테마에 일부 사용자 정의를 추가하려고합니다. 나는 상점 페이지를 양식화하여 제품의 맨 위에 또는 왼쪽을 따라 범주 목록을 갖기 위해 노력하고 있습니다. woocommerce admin 설정의 카탈로그 페이지에서 category 옵션을 사용 가능하게하면 content_product_cat2.php 템플리트 파일을 사용하여 woocommerce 제품 루프 내에 제품 범주 축소판을 표시합니다. 나는 그 PHP 파일을 옮기고 그것을 편집하고 결과를 얻기 시작했다. 미리보기 이미지를 제거했지만 제목을 표 형식 또는 루프 외부에서 가져올 수 없습니다. 나는 features.php에 몇 가지 후크를 추가하는 것을 열어 둔다.하지만 나는 그랬던 것처럼 보이는 woocommerce 후크 레퍼런스의 후크를 보지 못했다. 아마도이 템플릿을 편집하고 고리 앞에 놓기 위해 후크를 사용하는 것입니다. 임 메신저 게시 이유가 확실하지 않습니다. 나는 다른 사람이 경험이 알고 ...사용자 정의 레이아웃 용 woocommerce 템플릿 파일 편집

<?php 
/** 
* The template for displaying product category thumbnails within loops. 
* 
* Override this template by copying it to yourtheme/woocommerce/content-product_cat.php 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  1.6.4 
*/ 




global $woocommerce_loop; 

// Custom Edits 

if (is_shop() && in_array($category->slug, array('fakeie'))) { 
return; 
} 


// Store loop count we're currently on 
if (empty($woocommerce_loop['loop'])) 
$woocommerce_loop['loop'] = 0; 

// Store column count for displaying the grid 
if (empty($woocommerce_loop['columns'])) 
$woocommerce_loop['columns'] = apply_filters('loop_shop_columns', 4); 

// Increase loop count 
$woocommerce_loop['loop']++; 
?> 
<li class="product <?php 
if ($woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0) 
    echo 'last'; 
elseif (($woocommerce_loop['loop'] - 1) % $woocommerce_loop['columns'] == 0) 
    echo 'first'; 
?>"> 

<?php do_action('woocommerce_before_subcategory', $category); ?> 

<a href="<?php echo get_term_link($category->slug, 'product_cat'); ?>"> 



    <h3 style="float:left;"> 
     <?php echo $category->name; ?> 
     <?php if ($category->count > 0) : ?> 
      <mark class="count">(<?php echo $category->count; ?>)</mark> 
     <?php endif; ?> 
    </h3> 

    <?php 
     /** 
     * woocommerce_after_subcategory_title hook 
     */ 
     do_action('woocommerce_after_subcategory_title', $category); 
    ?> 

</a> 

<?php do_action('woocommerce_after_subcategory', $category); ?> 

</li> 

감사합니다 얘들 아 :에 여기에 그것을 사용하는 메신저 Here is a link to the page.는 PHP 파일의 내용입니다.

EDIT- 좋아요. 그래서 내가 깨달은 것은 content_product_cat.php 파일을 편집하는 것이 최선의 방법이 아닐 수 있습니다. Jay는 content_product.php 파일을 편집하는 것이 더 바람직하다고 아래에서 언급합니다. 내가 처음에 이것 또한 좋은 해결책으로 생각한 것은 내가 무엇을하기 위해 찾고있는 것을 성취하지 못한다는 것을 깨달았습니다. content_product.php를 편집하면 루프 내에서 편집이 이루어지기 때문에 루프 전에 표시 할 카테고리가 필요하므로 루프의 그리드 포맷을 이해하지 못하도록합니다. 새로운 아이디어는 무엇입니까 ???

답변

2

한 가지 대안은 기본 woocommerce 카테고리보기를 비활성화하고 템플릿을 사용하지 않을 수 있다는 것입니다. 대신 사용자 정의 코드를 작성하고 카테고리 목록을 가져 와서 원하는 스타일로 스타일을 지정하여 woocommerce 제품 표에 추가 할 수 있습니다. 아래는 당신이 그것을하는 방법입니다.

<?php $all_categories = get_categories('taxonomy=product_cat&hide_empty=0&hierarchical=1'); 
        foreach ($all_categories as $cat) { 
         if($cat->category_parent == 23) {       
                 $category_id = $cat->term_id; 
          $thumbnail_id = get_woocommerce_term_meta($cat->term_id, 'thumbnail_id', true); 
          $image = wp_get_attachment_url($thumbnail_id); 
           echo '<li><a href="'. get_term_link($cat->slug, 'product_cat') .'"><img src="'.$image.'" alt="'. $cat->name .'"/><div>'. $cat->name .'</div></a>'; 
         } 
        } 
?> 
+0

괜찮아 보이지만 조금 혼란스러워 ... 위의 코드를 추가하는 파일은 무엇입니까? –

+0

/woocommerce/templates/content-product.php 이것은 woocommerce가 제품 격자를 생성하는 데 사용하는 템플릿입니다 .... –

+0

고마워요. content-product.php 파일에 복사했는데 범주가 표시되지 않았습니다. 여러 줄 위치에서 시도해 보았지만 성공하지 못했습니다. 나는 이것이 더 나은 해결책이라고 생각하지만 그것을 작동시키지 못하고있다. –

0

당신은 당신의 functions.php에 추가 할 수 http://wordpress.org/support/topic/plugin-woocommerce-excelling-ecommerce-category-list :

add_action('woocommerce_before_shop_loop','showcats'); 


function showcats() 
{ 
    //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin) 

$taxonomy  = 'product_cat'; 
$orderby  = 'name'; 
$show_count = 0;  // 1 for yes, 0 for no 
$pad_counts = 0;  // 1 for yes, 0 for no 
$hierarchical = 1;  // 1 for yes, 0 for no 
$title  = ''; 

$args = array(
    'taxonomy'  => $taxonomy, 
    'orderby'  => $orderby, 
    'show_count' => $show_count, 
    'pad_counts' => $pad_counts, 
    'hierarchical' => $hierarchical, 
    'title_li'  => $title 
); 

?> 
<ul> 
<?php wp_list_categories($args); ?> 
</ul> 
<? 
} 

function showcatlist() 
{ 
    if(is_shop()) showcats(); 
} 

함수 showcats은에서 채택이다. 자세한 내용은 http://codex.wordpress.org/Template_Tags/wp_list_categories을 참조하십시오. 목록의 스타일을 변경하려면

title_li 매개 변수를 빈 문자열로 설정하여 가장 바깥 쪽 항목과 목록을 제거 할 수 있습니다. 주문 목록 (ol) 또는 정렬되지 않은 목록에 출력을 래핑해야합니다 (위의 예 참조). 목록 출력을 전혀 원하지 않으면 style 매개 변수를 none으로 설정하십시오.

wp_list_categories 대신 get_categories http://codex.wordpress.org/Function_Reference/get_categories을 사용하고 html 출력을 직접 작성하십시오. 처음에는 정답을 제공하는 사람 Jay Bhatt과 동일합니다.

관련 문제