Wednesday, October 28, 2015

giả dụ bạn muốn thay đổi tên hình ảnh hoặc thay đổi kích thước của hình ảnh trước lúc upload lên hosting thì bài viết này sẽ giúp cho bạn giải quyết vấn đề. Trong WordPress, có phần lớn filter và action cho bạn khiến việc, trong bài này thì mình sẽ hướng dẫn cho các bạn bí quyết dùng filter wp_handle_upload_prefilter để chỉnh sửa thông tin hình ảnh trước lúc tập tin này được upload lên hosting.

>>> Xem thêm: kiểu dáng website nội thất

Thay đổi thông tin hình ảnh trước khi upload

Nhu cầu của bạn là nên thay đổi lại tên của hình ảnh phù hợp sở hữu chuẩn SEO, hoặc chỉ đơn giản là khách hàng thích sử dụng Tiếng Việt có dấu để đặt tên tập tin, hiện tại bạn muốn chỉnh sửa sao cho các tập tin trước lúc upload lên hosting cần có tên đẹp giống như slug.

Xem thêm: Website chuẩn SEO là gì?

ko kể ra, nếu các hình ảnh lưu trên máy tính có kích thước quá lớn, bạn muốn chỉnh sửa lại những thông số của chúng trước lúc upload lên hosting để dùng cho bài viết, bạn hoàn toàn có thể tiêu dùng filterwp_handle_upload_prefilter để khiến công việc này.

Bạn mở tập tin functions.php của giao diện lên, đây là thao tác hầu như ai cũng biết nếu như bạn muốn bổ sung một hàm nào đấy cho WordPress, trường hợp quý khách đã quá rành về điểm này thì có thể chia ra thành những lớp riêng hoặc plugin riêng để tiêu dùng. Sau ấy, bạn thêm vào đoạn code sau:

1
2
3
4
function sb_theme_pre_upload_file($file) {
return $file;
}
add_filter('wp_handle_upload_prefilter', 'sb_theme_pre_upload_file');

Đoạn code bên trên là cú pháp cơ bản nhất của wp_handle_upload_prefilter. Trong biến $file này sẽ cất những thông tin của tập tin, và đây là 1 mảng dữ liệu. Bạn sở hữu thể tham khảo một biến $file hình ảnh mà mình ví dụ bên dưới:

một
2
3
4
5
6
7
8
Array
(
[name] => 14175.jpg
[type] => image/jpeg
[tmp_name] => E:\xampp\tmp\phpA8B1.tmp
[error] => 0
[size] => 34676
)

Bên trong biến $file này sẽ với các key như name, type, tmp_name,… như bạn thấy được trong đoạn code mình gửi bên trên. Để phân biệt được tập tin bạn muốn upload là hình ảnh hay các mẫu tập tin khác thì bạn bắt buộc kiểm tra $file['type']. Đối mang các file là hình ảnh thì type sẽ mang chữ image nằm bên trong. Bạn chỉ việc dùng hàm để kiểm tra chữ image với tồn tại trong type thì ấy là hình ảnh.

1
2
3
4
5
6
7
8
9
10
function sb_theme_pre_upload_file($file) {
// Lấy kiểu của tập tin
$file_type = isset($file['type']) ? $file['type'] : '';
// Kiểm tra giả dụ tập tin là hình ảnh
if(false !== strpos($file_type, 'image')) {
 
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'sb_theme_pre_upload_file');

Để thay đổi tên của hình ảnh thì bạn chỉ việc xử lý thông tin trong mảng $file['name']. Bạn có thể tiêu dùng hàm xóa dấu Tiếng Việt bằng PHP để mẫu bỏ đi các ký tự đặc thù, thay khoảng trắng bằng dấu gạch ngang,… bạn cũng có thể sử dụng hàm sanitize_file_name để kiểm tra tên của tập tin.

bây giờ, giả dụ bạn muốn kiểm tra xem kích thước của hình ảnh sở hữu đạt độ lớn tối đa và tối thiểu hay không thì bạn có thể khiến như sau:

một
2
3
4
5
6
7
8
9
10
11
function sb_theme_pre_upload_file($file) {
// Lấy kiểu của tập tin
$file_type = isset($file['type']) ? $file['type'] : '';
// Kiểm tra {nếu|giả dụ|ví như|trường hợp} tập tin là hình ảnh
if(false !== strpos($file_type, 'image')) {
// Hàm lấy thông tin kích thước hình ảnh
$image_size = getimagesize($file['tmp_name']);
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'sb_theme_pre_upload_file');

1 lúc đã lấy được kích thước của hình ảnh dự định upload rồi thì bạn sở hữu thể kiểm tra được kích thước của hình đấy sở hữu đạt tiêu chuẩn hay chưa, {nếu|giả dụ|ví như|trường hợp} hình ảnh ấy không ưng ý thì bạn return về một đối tượngWP_Error là công đoạn upload sẽ kết thúc bằng bí quyết gửi thông báo lỗi cho người mua, hình ảnh sẽ ko được upload lên hosting.