Tại sao nên từ bỏ TimThumb và bắt đầu với BFIThumb
TimThumb là một mã nguồn được nhiều người sử dụng để thay đổi kích thước hình ảnh hiển thị trên trang web của họ, tuy nhiên sau thời gian được nhiều người sử dụng thì mã nguồn này đã dính lỗi bảo mật và hiện nay thì nó không được chấp nhận trong danh sách yêu cầu tối thiểu khi code theme cho WordPress trên ThemeForest.
Bài viết này sẽ hướng dẫn cho bạn cách chuyển từ TimThumb sang sử dụng mã nguồn mới với cùng mục đích thay đổi kích thước cho hình ảnh khi hiển thị ra giao diện, mã nguồn này có tên là BFIThumb.
Tại sao mọi người sử dụng TimThumb
Trước kia thì WordPress chưa cung cấp hàm để thay đổi kích thước hình ảnh, do vậy việc sử dụng phần mềm bên thứ 3 để làm việc này là điều dĩ nhiên. TimThumb mang đến cho bạn rất nhiều tiện ích, dễ sử dụng và nó hoàn toàn miễn phí.
Bạn không cần biết nhiều về code của nó, tất cả mọi chuyện rất đơn giản bằng cách bỏ đường link của tập tin timthumb.php vào source của hình ảnh, thêm vào một vài thông số cần thiết và bạn đã có thể thay đổi được kích thước của hình ảnh.
Với TimThumb bạn không những thay đổi được kích thước của hình ảnh mà còn có thể cắt hình ảnh, tạo hiệu ứng grayscale và khả năng lưu trữ cache để load hình ảnh nhanh hơn.
Tại sao không nên sử dụng TimThumb nữa
Câu hỏi được đặt ra là tại sao TimThumb có nhiều tính năng rất tốt và hữu ích như thế mà Sáu lại khuyên mọi người không nên sử dụng nó nữa. Một lý do duy nhất dẫn đến việc này đó là bảo mật. Vấn đề bảo mật của TimThumb đã được nhiều hacker khai thác, họ đã phát hiện ra lỗ hổng và hack rất nhiều trang blog do số lượng người dùng TimThumb rất lớn.
Cũng vì lý do trên mà trong danh sách WordPress Theme Submission Requirements của ThemeForest không còn chấp nhận những giao diện đã và đang tính sử dụng mã nguồn này.
Giải pháp thay thế TimThumb
Thật may mắn là kể từ phiên bản WordPress 3.5 trở về sau bạn có thể sử dụng class WP_Image_Editor để thay đổi kích thước cho hình ảnh.
1 2 3 4 5 6 |
// Return an implementation that extends WP_Image_Editor $image = wp_get_image_editor( 'cool_image.jpg' ); if ( ! is_wp_error( $image ) ) { $image->resize( 400, 300, true ); $image->save( 'new_image.jpg' ); |
Cùng mục đích này, BFIThumb được tạo ra và thay thế cho TimThumb cũng như đơn giản hóa việc sử dụng hàm thay đổi kích thước hình ảnh của WordPress. Bên dưới là một vài thông tin tiện ích của mã nguồn này.
- Kế thừa từ class WP_Image_Editor do WordPress cung cấp.
- Cách sử dụng đơn giản như TimThumb.
- Hầu hết các biến đầu vào đều giống TimThumb và nó được đặt ngay vào trong thuộc tính source của hình ảnh.
Bạn có thể tham khảo cách sử dụng thông qua các hàm bên dưới, mọi thứ rất dễ dàng đúng không nào, bạn không cần phải biết nhiều về code vẫn có thể làm được việc này.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
require_once('BFI_Thumb.php'); $params = array( 'width' => 400 ); echo "<img src='" . bfi_thumb( "URL-to-image.jpg", $params ) . "'/>"; // Resize by width only $params = array( 'width' => 400 ); bfi_thumb( "URL-to-image.jpg", $params ); // Resize by width and height $params = array( 'width' => 400, 'height' => 300 ); bfi_thumb( "URL-to-image.jpg", $params ); // Crop $params = array( 'width' => 400, 'height' => 300, 'crop' => true ); bfi_thumb( "URL-to-image.jpg", $params ); // Change opacity (makes your image into a PNG) $params = array( 'opacity' => 80 ); // 80% opaque bfi_thumb( "URL-to-image.jpg", $params ); // Grayscale $params = array( 'grayscale' => true ); bfi_thumb( "URL-to-image.jpg", $params ); // Colorize $params = array( 'color' => '#ff0000' ); bfi_thumb( "URL-to-image.jpg", $params ); // Negate $params = array( 'negate' => true ); bfi_thumb( "URL-to-image.jpg", $params ); // Multiple parameters $params = array( 'width' => 400, 'height' => 300, 'opacity' => 50, 'grayscale' => true, 'colorize' => '#ff0000' ); bfi_thumb( "URL-to-image.jpg", $params ); |
Trong đoạn code trên bạn để ý thấy hàm require_once để add mã nguồn này vào dự án của bạn, sau đó là một vài cách sử dụng cơ bản của BFIThumb, kết quả bạn sẽ nhận được hình ảnh với kích thước khác với ảnh gốc, tùy thuộc vào các giá trị đầu vào mà bạn sử dụng.
Leave a Reply