WooCommerce 작업 후크 및 템플릿 재정의
저는 WooCommerce로 템플릿을 만드는 방법을 배우기 시작했고 약간의 문제가 있었습니다.예를 들어 php 파일 content-single-product에 있습니다.Woocommerce 플러그인의 php 다음과 같은 문자열이 있습니다.
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );
?>
예를 들어 편집(일부 필드 삭제 및 구조 변경)할 경우 문자열을 지우려고 합니다.
do_action('woocommerce_single_product_product_module');
그 후에 이렇게 씁니다.
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
//do_action( 'woocommerce_single_product_summary' );
do_action('woocommerce_template_single_title');
?>
왜 이게 안 되는지 말씀해 주시겠어요?
그렇게 편집하는 올바른 방법은 무엇일까요?
감사해요.
먼저 아래 참조에서는 주제를 통해 woocommerce 템플릿을 올바르게 덮어쓰는 방법을 확인할 수 있습니다(플러그인 템플릿을 편집하지 않음).
첫 번째 코드 스니펫에는 후크에서 볼 수 있듯이 WordPress 기능이 있는 후크 위치에 있는 모든 다른 템플릿이 순서대로 있습니다.
do_action( 'woocommerce_single_product_summary' );
따라서 커스터마이즈된 코드(두 번째 코드 스니펫)에서는 후크를 후크 템플릿 슬러그(후크가 아님)로 교체하여 엔트리 포인트액션 후크로 기능하지 않습니다.WooCommerce 액션 목록과 기존 후크에 대한 필터는 이 답변 하단의 참조를 참조하십시오.
결과:후크를 템플릿슬러그로 대체하면 코멘트리스트 코드의 다른 모든 후크템플릿(@hooked로 시작)이 없어집니다.
템플릿에 사용되는 후크에 대해서는 이 유용한 WooCommerce Visual Hook Guide를 참조하십시오.
설명 (방법) :
사용법 - 구체적인 예:
후크에서 후크 템플릿을 사용자 정의하려고 합니다.
THE HOOK NAME: woocommerce_single_product_summary hook.
THE TEMPLATES HOOKED (+priority order number) => corresponding template file name:
— woocommerce_template_single_title (5) => single-product/title.php
— woocommerce_template_single_rating (10) => single-product/rating.php
— woocommerce_template_single_price (10) => single-product/price.php
— woocommerce_template_single_excerpt (20) => single-product/short-description.php
— woocommerce_template_single_add_to_cart(30) => single-product/add-to-cart/ (6 files depending on product type)
— woocommerce_template_single_meta (40) => single-product/review-meta.php
— woocommerce_template_single_sharing - (50) => single-product/share.php
그런 다음 (서브폴더)에 있는 해당 후크를 편집해야 합니다.마지막으로 템플릿 구조 파일과 해당 템플릿의 후크를 이해하면 그렇게 복잡하지 않습니다.
priority 번호는 후크 템플릿의 순서를 나타냅니다.처음에는 작게, 마지막에는 크게...
다음 항목도 참조하십시오.Wordpress 및 Woocommerce의 후크 및 후크 기능 실행 큐
기타 방법:
또한 기존 템플릿 후크를 모두 사용하여 활성 하위 테마(또는 테마) 또는 플러그인 파일의 파일에 있는 커스텀 함수를 사용하여 매우 구체적인 변경 또는 커스터마이즈를 대상으로 할 수도 있습니다.
사용 예add_action()
WordPress 기능:
// define the woocommerce_single_product_summary callback function
function my_custom_action() {
echo '<p>This is my custom action function</p>';
};
add_action( 'woocommerce_single_product_summary', 'my_custom_action', 15 );
이 함수는 의 priority 번호를 가지며 와 사이에 "This is my custom action function" 문자열 텍스트를 표시합니다.
이 후크에 대한 후크 함수의 선택적 인수:
• 템플릿 슬러그(스트링)
• 우선순위(int)
참고 자료:
- 템플릿 구조 및 테마를 통한 템플릿 덮어쓰기
- WooCommerce Hooks: 액션과 필터
- WooCommerce 코드 - 액션 및 필터 훅 참조
- WooCommerce Visual Hook 가이드: 단일 제품 페이지
언급URL : https://stackoverflow.com/questions/39063958/woocommerce-action-hooks-and-overriding-templates
'programing' 카테고리의 다른 글
Wordpress 웹 사이트 전체를 내보내려면 어떻게 해야 합니까? (0) | 2023.02.07 |
---|---|
WP_Query Woocommerce 제품은 여러 카테고리에 속하며 tax_query만 해당됩니다. (0) | 2023.02.07 |
Woocommerce에서 새 제품을 추가할 때 모든 제품 특성 자동 추가 (0) | 2023.02.07 |
PHP 5.4가 설치된 WordPress 3.7에서 엄격한 표준 오류 비활성화 (0) | 2023.02.07 |
Wordpress 플러그인의 클래스 내에서 $this를 사용하면 치명적인 오류가 발생하는 이유는 무엇입니까? (0) | 2023.02.07 |