我需要为子类别和产品设置不同大小的拇指,这可能吗?
我需要用拇指500 x 100显示子类别列表以及缩略图300 x 390的产品列表。
我已经设置了woocommerce>设置>产品>显示>产品图片,但我无法为子类别或产品设置不同的尺寸。
答案 0 :(得分:2)
function register_size_image() {
add_image_size( 'category_thumb', 1170, 585,true );
add_image_size( 'product_thumb', 750, 940,true );
}
add_action( 'after_setup_theme', 'register_size_image' );
function size_of_category_thumb($u)
{
return array(1170, 585,true);
}
add_filter('subcategory_archive_thumbnail_size', 'size_of_category_thumb');
function size_of_product_thumb($u)
{
return array(750, 940,true);
}
add_filter('single_product_archive_thumbnail_size', 'size_of_product_thumb');
答案 1 :(得分:0)
是的,这很有可能。请按照以下步骤进行操作 -
添加新图片尺寸。为此,请将以下代码添加到主题的functions.php
中add_image_size('your-custom-size',500,100); //您可以通过使用不同的值(根据需要)重复此行来添加多个图像大小
此步骤后上传图片。 如果您再次上传图片的费用很高,则可以使用this plugin
这将创建包含所有指定尺寸的缩略图。
现在,在您的主题中,无论您使用的功能如何显示图像 -
the_post_thumbnail('your-custom-size')或wp_get_attachment_image(42,'your-custom-size'),将图片大小名称作为参数传递。
答案 2 :(得分:0)
我决定覆盖woocommerce的功能,我把它放在我的functions.php
上add_image_size( 'category_thumb', 500, 100,1 );
add_image_size( 'product_thumb', 300, 390,1 );
function woocommerce_subcategory_thumbnail( $category ) {
$small_thumbnail_size = 'category_thumb';
$thumbnail_id = get_woocommerce_term_meta( $category->term_id, 'thumbnail_id', true );
if ( $thumbnail_id ) {
$image = wp_get_attachment_image_src( $thumbnail_id, $small_thumbnail_size );
$image = $image[0];
$image_srcset = function_exists( 'wp_get_attachment_image_srcset' ) ? wp_get_attachment_image_srcset( $thumbnail_id, $small_thumbnail_size ) : false;
$image_sizes = function_exists( 'wp_get_attachment_image_sizes' ) ? wp_get_attachment_image_sizes( $thumbnail_id, $small_thumbnail_size ) : false;
} else {
$image = wc_placeholder_img_src();
$image_srcset = $image_sizes = false;
}
if ( $image ) {
// Prevent esc_url from breaking spaces in urls for image embeds
// Ref: https://core.trac.wordpress.org/ticket/23605
$image = str_replace( ' ', '%20', $image );
// Add responsive image markup if available
if ( $image_srcset && $image_sizes ) {
echo '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $category->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" srcset="' . esc_attr( $image_srcset ) . '" sizes="' . esc_attr( $image_sizes ) . '" />';
} else {
echo '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $category->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" />';
}
}
}
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $deprecated1 = 0, $deprecated2 = 0 )
{
global $product;
// $image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
return $product ? $product->get_image( 'product_thumb' ) : '';
}
它有效!
答案 3 :(得分:0)
function yourFunctionName()
{
return array(1140, 300,true);
}
add_filter('subcategory_archive_thumbnail_size', 'yourFunctionName');
为我工作