2013-09-05 2 views
2

나는 맞춤형 Wordpress 테마를 만들고 Woo Commerce를 장바구니 플러그인으로 사용하고 있습니다. 그것의 대부분은 잘 통합되어 있습니다 (나는 features.php에 테마에 대한 고리를 추가했으며 Woo commerce 템플릿 페이지를 테마의 woocommerce 하위 폴더로 복사했습니다.) 그러나 루프 외부에 래퍼()를 추가하려고합니다. 제품 범주 페이지와 내가 일하기 위해 편집 할 필요가있는 부분을 해결할 수는 없습니다. CSS를 통해 제품을 다시 배치하려면이 작업을 수행해야합니다. 지금까지 내가 가진 난에 CSS를 적용 할 수 있지만 나를 위해 충분히Woo commerce : 루프 외부의 제품 카테고리 페이지 편집

특정되지 않습니다 :

  • 내용 product_cat.php 및 내용 product.php 실험 (그러나 모두는 루프 내에서 작동합니다.
  • 이 다른 페이지에 대한 작동하지만 제품 cateogry에 표시되지 않습니다. 나는 랩퍼 start.php와 랩퍼 end.php 페이지에 태그를 추가 한
  • 다른 템플릿 페이지의 번호와 실험

나는 온라인으로 보았습니다.하지만 Wordpress 사이트에서는 문제에 대한 도움을 전혀 제공하지 않습니다. 도움이 될 것입니다.

친절 감사 닉

답변

7

그냥 대답을 발견 - 나는

1

이 한 가지를 수행합니다 사용자 지정 테마 루트 이름은 'woocommerce'에 폴더를 만들고 아카이브 - product.php를 수정할 필요가 있었다. 이제 템플릿을 WooCommerce 플러그인에서 사용자 지정 테마 woocommerce 폴더로 복사하고 모든 WooCommerce 템플릿 파일을 재정의 할 수 있습니다. 당신은 WooCommerce 템플릿 파일을 찾을 수 있습니다 plugins/woocommerce/template/

희망이 도움이 될 것입니다.

+0

wp-content/plugins의 템플릿 파일을 편집하지 마십시오. 그것들은 플러그인을 업데이트 할 때마다 덮어 씌워 질 것입니다. 파일을 복사하여 테마 디렉토리에 붙여 넣고 새 파일을 편집하여 안전하게 작업하십시오. – garvan

+1

@garvan Manish는 당신이 '당신의 커스텀 테마'를 사용해야한다고 암시합니다. – icc97

10

이렇게 작은 변경 사항의 경우 전체 파일을 덮어 쓸 필요가 없습니다. 먼저 WooCommerce에서 제공하는 후크를 사용해보십시오. 테마 functions.php에서이 작업을 수행 할 수 있습니다. 이 함수는 최상위 페이지 래퍼 내부에 사용자 정의 래퍼를 출력합니다. 모든 WooCommerce 페이지에 고유 한 래퍼를 추가하려면

function start_wrapper_here() { // Start wrapper 
    echo '<div class="custom-wrapper">'; 
} 

add_action( 'woocommerce_before_main_content', 'start_wrapper_here', 20 ); 


function end_wrapper_here() { // End wrapper 
    echo '</div>'; 
} 

add_action( 'woocommerce_after_main_content', 'end_wrapper_here', 20 ); 

, 당신은 위의 기능에 조건문을 추가하여이 작업을 수행 할 수 있습니다. 더 많은 조건부 태그에 대해서는 Visit this page on the WooCommerce site입니다.

function start_wrapper_here() { // Start wrapper 

    if (is_shop()) { // Wrapper for the shop page 

     echo '<div class="shop-wrapper">'; 

    } elseif (is_product_category()) { // Wrapper for a product category page 

     echo '<div class="product-category-wrapper">'; 

    } elseif (is_product()) { // Wrapper for a single product page 

     echo '<div class="product-wrapper">'; 

    } 
} 

add_action( 'woocommerce_before_main_content', 'start_wrapper_here', 20 ); 

모두 다시 닫는 것을 잊지 마십시오. 당신이 실제 톱 페이지 래퍼 (기본값 : <div id="container">)를 변경하는 wan't 경우

function end_wrapper_here() { // End wrapper 
    if (is_shop()) { 

     echo '</div>'; 

    } elseif (is_product_category()) { 

     echo '</div>'; 

    } elseif (is_product()) { 

     echo '</div>'; 

    } 
} 

add_action( 'woocommerce_after_main_content', 'end_wrapper_here', 20 ); 

, 당신은에 대한 WooCommerce 기능을 편집해야합니다. 이 함수는 일반적으로 get_template_part()을 사용하여 wrapper-start.phpwrapper-end.php 파일을 호출합니다. 이제이 함수를 오버라이드하고 우리 자신의 래퍼를 에코합니다.

function woocommerce_output_content_wrapper() { // Start wrapper for all the page contents 
    echo '<div class="custom-wrapper">'; 
} 

add_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 20 ); 


function woocommerce_output_content_wrapper_end() { // End wrapper for all the page contents 
echo '</div>'; 
} 

add_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 20 ); 
관련 문제