WooCommerce – пользовательские миниатюры и по умолчанию уменьшают изображение

Я просто хочу вставить оболочку в woocommerce_get_product_thumbnail. Я вижу, что моя обложка появилась, но у нее нет обратного изображения, если нет изображения.

Как вывести миниатюру по умолчанию woocommerce?

Это мой неполный код:

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; } } 

У меня есть добавочный крючок для remove_action & add_action в начале, чтобы запустить его, когда WordPress / WooCommerce инициализируется …

Поскольку $placeholder_width = 0, $placeholder_height = 0 устарел с версии woocommerce версии 2.0 ( см. Это ) . Они вам больше не нужны, и это может быть частью вашей проблемы.

Примечание: ответ pallavi верен для $output .= wc_placeholder_img( $size ); в вашем заявлении else. Я уже проголосовал за него за это …

Поэтому я немного изменил ваш код:

 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; } }