반응형
WooCommerce - 사용자 지정 썸네일 및 기본 폴백 이미지 자리 표시자
wocommerce_get_product_thumbnail에 포장지를 삽입하고 싶습니다. 제 포장지가 나타났지만 이미지가 없으면 폴백 이미지가 없습니다.
기본 우커머스 썸네일을 출력하려면 어떻게 해야 합니까?
이것은 나의 불완전한 코드입니다.
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail();
}
}
if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0 ) {
global $post, $woocommerce;
$output = '<div class="col-lg-4">';
if ( has_post_thumbnail() ) {
$output .= get_the_post_thumbnail( $post->ID, $size );
} else {
how to show the default woocommerce thumb
}
$output .= '</div>';
return $output;
}
}
추가할 것이 있습니다.init
을 낚아채다remove_action
&add_action
WordPress/WooCommerce Initializing 시 초기에 발사할 수 있습니다.
~하듯이$placeholder_width = 0, $placeholder_height = 0
는 wocommerce 버전 2.0 이후로 더 이상 사용되지 않습니다(이것 참조).더 이상 필요 없고 문제의 일부가 될 수도 있습니다.
참고: 팔라비의 정답은 다음과 같습니다.$output .= wc_placeholder_img( $size );
당신의 다른 진술에서.저는 이미 이에 대해 그에게 찬성표를 던졌습니다.
그래서 당신의 코드를 조금 바꿨습니다.
add_action('init', function(){
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
});
if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail();
}
}
if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
function woocommerce_get_product_thumbnail( $size = 'shop_catalog' ) {
global $post, $woocommerce;
$output = '<div class="col-lg-4">';
if ( has_post_thumbnail() ) {
$output .= get_the_post_thumbnail( $post->ID, $size );
} else {
$output .= wc_placeholder_img( $size );
// Or alternatively setting yours width and height shop_catalog dimensions.
// $output .= '<img src="' . woocommerce_placeholder_img_src() . '" alt="Placeholder" width="300px" height="300px" />';
}
$output .= '</div>';
return $output;
}
}
아래 코드로 시도
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail();
}
}
if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0 ) {
global $post, $woocommerce;
$output = '<div class="col-lg-4">';
if ( has_post_thumbnail() ) {
$output .= get_the_post_thumbnail( $post->ID, $size );
} else {
$output .= wc_placeholder_img( $size );
}
$output .= '</div>';
return $output;
}
}
언급URL : https://stackoverflow.com/questions/38320744/woocommerce-custom-thumbnails-and-default-fall-back-image-placeholder
반응형
'programing' 카테고리의 다른 글
Angular 지시문에서 돔 요소에 액세스하는 방법 (0) | 2023.10.12 |
---|---|
AngularJS UncaughtReferenceError: 컨트롤러가 모듈에서 정의되지 않았습니다. (0) | 2023.10.12 |
Oracle SQL에서 정규식과 일치하는 문자열의 일부를 가져오는 방법 (0) | 2023.10.07 |
안드로이드 9.0(파이)에서 야간 모드가 활성화되어 있는 경우에도 애플리케이션에서 야간 모드를 비활성화하는 방법은 무엇입니까? (0) | 2023.10.07 |
int 배열에 대한 포인터에 대한 스칼라 이니셜라이저의 초과 요소 (0) | 2023.10.07 |