반응형
Woocommerce에서 후크를 통해 루프 제품 이미지 사용자 정의
저는 우커머스 테마를 커스터마이징하고 있습니다.후크 액션 우커머스를 이용해 루프 제품을 사용했습니다.
썸네일 이미지를 루프에 호출/포함하기 위해 이 후크(hook)라고 합니다.
<?php do_action('woocommerce_before_shop_loop_item_title'); ?>
그러면 썸네일 이미지가 나타납니다.나는 어디에 있는지 헷갈립니다.<img src"" ....
위치는?그 코드는 어떻게 편집합니까?
감사해요.
갈고리woocommerce_before_shop_loop_item_title
다음 기능 코드에서 이미지를 로드합니다.
if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {
/**
* Get the product thumbnail for the loop.
*/
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail(); // WPCS: XSS ok.
}
}
보다시피 기능을 사용합니다.
if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
/**
* Get the product thumbnail, or the placeholder if not set.
*
* @param string $size (default: 'woocommerce_thumbnail').
* @param int $deprecated1 Deprecated since WooCommerce 2.0 (default: 0).
* @param int $deprecated2 Deprecated since WooCommerce 2.0 (default: 0).
* @return string
*/
function woocommerce_get_product_thumbnail( $size = 'woocommerce_thumbnail', $deprecated1 = 0, $deprecated2 = 0 ) {
global $product;
$image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
return $product ? $product->get_image( $image_size ) : '';
}
}
이것이 당신의 질문에 답하고 당신의 혼란을 없애주기를 바랍니다.
루프 제품 이미지 사용자 정의
이제 이 기본 기능을 후크에서 제거하여 다음을 사용하여 사용자 정의 기능을 추가할 수 있습니다.
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
add_action( 'woocommerce_before_shop_loop_item_title', 'custom_loop_product_thumbnail', 10 );
function custom_loop_product_thumbnail() {
global $product;
$size = 'woocommerce_thumbnail';
$image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
echo $product ? $product->get_image( $image_size ) : '';
}
코드는 기능을 합니다.활성 하위 테마(또는 활성 테마)의 php 파일입니다.테스트를 거쳐 작동합니다.
따라서 이제는 기능 내부의 코드를 사용자 정의하기만 하면 됩니다.
Loic The Aztec의 답변은 매우 훌륭하지만, 작지만 중대한 오류가 하나 포함되어 있다고 생각합니다.표준 출력(에코) 후크를 제거하고 필터(결과를 반환)가 아닌 액션을 추가했습니다. 따라서 에코를 수행해야 합니다.그 교묘한/보이지 않는 실수는 나의 시간을 충분히 소모시켰습니다. :)
// there is
return $product ? $product->get_image( $image_size ) : '';
// should be
echo $product ? $product->get_image( $image_size ) : '';
언급URL : https://stackoverflow.com/questions/50773845/customizing-loop-product-image-via-a-hook-in-woocommerce
반응형
'bestsource' 카테고리의 다른 글
scanf를 사용하여 std:: 문자열로 읽습니다. (0) | 2023.11.05 |
---|---|
C# 기본적으로 1장으로 Excel 워크북 만들기 (0) | 2023.11.05 |
소켓 옵션이 리스닝 소켓에서 수락()을 통해 상속됩니까? (0) | 2023.11.05 |
VBA 코드 벤치마킹 (0) | 2023.11.05 |
사용자 기본값에 대한 NS코딩으로 사용자 지정 Swift 클래스 저장 (0) | 2023.11.05 |