Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Wordpress plugins » Tùy biến Product thumbnail – thay đổi ảnh đại diện của sản phẩm trong woocommerce

Tùy biến Product thumbnail – thay đổi ảnh đại diện của sản phẩm trong woocommerce

Thứ Năm, 11/09/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Trong bài học trước mình có trình bày các cách tùy biến nội dung với woocommerce và bạn có thể đã nắm được nguyên tắc tùy biến custom woocommerce template. Và trong bài hôm nay chúng ta áp dụng sử dụng một trong các phương thức đó để làm một bài tập nhỏ đó là tạo liên kết đến trang sản phẩm chi tiết, vào hình ảnh đại diện của sản phẩm.

Tạo product thumbnail woocommerce

Hiển thị ảnh đại diện của sản phẩm bởi hàm woocommerce_get_product_thumbnail. Hàm này được gọi trực tiếp trong hàm woocommerce_template_loop_product_thumbnail.
Chúng ta có thể sửa cả 2 hàm này hoặc chỉ cần woocommerce_get_product_thumbnail. Override hàm này trong theme functions.php

if ( ! function_exists( 'woocommerce_get_product_thumbnail' ) ) {
	
	function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0  ) {
		global $post, $woocommerce;
 
		if ( ! $placeholder_width )
			$placeholder_width = $woocommerce->get_image_size( 'shop_catalog_image_width' );
		if ( ! $placeholder_height )
			$placeholder_height = $woocommerce->get_image_size( 'shop_catalog_image_height' );
			
			$output = '<div style="position:relative">';
 
			if ( has_post_thumbnail() ) {
				$output.='<a href="'.get_permalink().'" title="'.get_the_title().'">';
				$output .= get_the_post_thumbnail( $post->ID, $size ); 
				$output.='</a>';
			} else {
			
				$output .= '<a href="'.get_permalink().'" title="'.get_the_title().'"><img src="'. woocommerce_placeholder_img_src() .'" alt="Placeholder" width="' . $placeholder_width . '" height="' . $placeholder_height . '" /></a>';
			
			}
			
			$output .= '</div>';
			
			return $output;
	}
 }

Chép thêm đoạn tạo hình ảnh cho mỗi sản phẩm trong vòng lặp nếu cần sửa thêm.

if(function_exists('woocommerce_template_loop_product_thumbnail')):
function woocommerce_template_loop_product_thumbnail(){
	echo '<span>';
	echo woocommerce_get_product_thumbnail();
	echo '</span>';
}
endif;

Product Placeholder image

Nếu sản phẩm không có post thumbnail thì hiển thị ảnh mặc định (placeholder) thay thế ảnh đại diện chưa thiết lập cho sản phẩm. Sử dụng hàm woocommerce_placeholder_img_src() trả về URL tới ảnh thumbnail mặc định của woocommerce, để đổi ảnh khác bạn thêm các dòng sau vào functions.php

add_filter('woocommerce_placeholder_img_src', 'custom_woocommerce_placeholder_img_src');
   
function custom_woocommerce_placeholder_img_src( $src ) {
	$upload_dir = wp_upload_dir();
	$uploads = untrailingslashit( $upload_dir['baseurl'] );
	$src = $uploads . '/2012/07/thumb1.jpg';
	 
	return $src;
}

Kích thước ảnh thumbnail

Các kích thước quy định của woocommerce cho các ảnh sản phẩm trong catelog, ảnh với kích thước lớn hơn ở trang sản phẩm chi tiết…tương ứng với tên kích thước được thiết lập bởi hàm add_image_size trong plugin woocommerce. Xem thêm bài thay đổi kích thước featured image hay post thumbnail trong wordpress.

Bạn có thể xem các kích thước ảnh, với phương thức get_image_size của đối tượng global $woocommerce. Ví dụ sau trả về kích thước width,height của ảnh sản phẩm hiển thị trong catelog.

global  $woocommerce;
$placeholder_width = $woocommerce->get_image_size( 'shop_catalog_image_width' );
$placeholder_height = $woocommerce->get_image_size( 'shop_catalog_image_height' );

Hoặc kích thước ‘shop_catalog’ trả về mảng chứa thông tin “width”, “height”, “crop”.

$woocommerce->get_image_size('shop_catalog');
/*
Return default:
Array ( [width] => 300 [height] => 300 [crop] => 1 )
*/

Tham khảo một số kích thước ảnh trong woocommerce.

  • “shop_thumbnail”: Array ( [width] => 90 [height] => 90 [crop] => 1 )
  • “shop_catalog”: Array ( [width] => 300 [height] => 300 [crop] => 1 )
  • “shop_single”: Array ( [width] => 300 [height] => 300 [crop] => 1 )
  • …

Thay đổi các kích thước ảnh của sản phẩm trong phần quản trị WooCommerce->Settings ->tab Products ->Product Image Sizes.
product-image-size-woocommerce
Sửa đổi và nhấn Save Changes để lưu lại. Những ảnh tạo trước đó vẫn giữ kích thước cũ, nếu muốn đổi lại toàn bộ kích thước ảnh thì dùng plugin regenerate thumbnails.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Wordpress, Wordpress plugins Tìm kiếm: thumbnails, web bán hàng, Woocommerce, wordpress plugins

Comments

  1. Nguyen Tan Qua says

    Thứ Sáu, 02/03/2018 at 10:20 sáng

    Chào bạn, mình thấy cách làm rất hay, nhưng nếu trong phần cài đặt không có nút hiển thị thì làm sao tạo được kích thước ảnh sản phẩm, cat, thumb
    thanks

    • Hoàng Quách says

      Thứ Sáu, 02/03/2018 at 11:19 sáng

      Bạn có thể thảo khảo bài này để biết cách tạo thêm kích thước mới trong WordPress nhé: /wordpress/toi-uu-kich-thuoc-hinh-anh-trong-wordpress

      • Nguyen Tan Qua says

        Thứ Sáu, 02/03/2018 at 1:42 chiều

        global $woocommerce;
        $placeholder_width = $woocommerce->get_image_size( ‘shop_catalog_image_width’ );
        $placeholder_height = $woocommerce->get_image_size( ‘shop_catalog_image_height’ );
        Hoặc kích thước ‘shop_catalog’ trả về mảng chứa thông tin “width”, “height”, “crop”.

        1
        2
        3
        4
        5
        $woocommerce->get_image_size(‘shop_catalog’);
        /*
        Return default:
        Array ( [width] => 300 [height] => 300 [crop] => 1 )
        */

        Những code trên đưa vào file nào không thấy nói rỏ
        thanks

        • Hoàng Quách says

          Thứ Sáu, 02/03/2018 at 2:16 chiều

          Tùy biến hình ảnh sản phẩm trong Woocommerce, bạn sửa ở 2 files /woocommerce/single-product/product-image.php và /woocommerce/single-product/product-thumbnails.php
          Ở ví dụ đoạn code trên là hàm mẫu để bạn lấy giá trị kích thước hình ảnh.

  2. Nam Chinh says

    Thứ Năm, 06/12/2018 at 8:37 sáng

    Chào anh
    Khi kiểm tra GTmetrix, thì yêu cầu sửa lại kích thước các Ảnh ở bài viết liên quan, bài viết vừa xem…
    các hình ảnh này đều lấy ảnh gốc gây nên chậm web,
    Do theme của mình tạo ra nhiều ảnh khi up lên hosting. Nhưng không có ảnh nào phù hợp với tiêu chí GTmetrix (bài viết liên quan, bài viết vừa xem).
    Anh vui lòng hướng dẫn sửa giúp, mình muốn tạo ảnh phù hợp với tiêu chí yêu cầu nhưng không rành code, anh chỉ giúp ảnh tên ảnh đại diện bài viết, ảnh trong danh mục, anh bài viết liên quan, bài viết vừa xem và cách sửa giúp. cảm ơn anh.

    thumbnail (60×60 cropped)
    medium (190×190)
    medium_large (768×0)
    large (320×320)
    post-thumbnail (825×510 cropped)
    woocommerce_thumbnail (450×525 cropped)
    woocommerce_single (850×0)
    woocommerce_gallery_thumbnail (100×100 cropped)
    shop_catalog (450×525 cropped)
    shop_single (850×0)
    shop_thumbnail (100×100 cropped)

    • Hoàng Quách says

      Thứ Bảy, 08/12/2018 at 10:51 sáng

      không rành code thì làm sao sửa được ^^. contact mình trực tiếp nhé

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.