Bạn đã bao giờ tự hỏi liệu có cách nào để tự động tạo thang độ xám cho hình ảnh trong WordPress khi bạn tải chúng lên không? Vâng, thời gian tự hỏi đã qua. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách bạn có thể sử dụng một số công cụ thao tác hình ảnh PHP đơn giản và các chức năng WordPress để hình ảnh tự động có thang độ xám khi tải lên. Bạn có thể sử dụng hình ảnh thang độ xám cho di chuột, thanh trượt, thư viện hoặc bất kỳ thứ gì khác mà bạn thích.
Điều đầu tiên bạn cần làm là mở tệp functions.php của chủ đề và thêm mã sau:
add_action('after_setup_theme','themename_bw_size'); function themename_bw_size() { add_image_size('themename-bw-image', 100, 100, true); }
Đoạn mã trên chỉ đơn giản là thêm kích thước hình ảnh bổ sung cho người tải lên. Kích thước được đặt thành 100 x 100px với chế độ cắt khó. Bạn có thể thay đổi kích thước để phù hợp với nhu cầu của mình. Khi bạn đã hoàn thành việc đó, bạn cần thêm mã sau:
add_filter('wp_generate_attachment_metadata','themename_bw_filter'); function themename_bw_filter($meta) { $file = wp_upload_dir(); $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file']; list($orig_w, $orig_h, $orig_type) = @getimagesize($file); $image = wp_load_image($file); imagefilter($image, IMG_FILTER_GRAYSCALE); switch ($orig_type) { case IMAGETYPE_GIF: imagegif( $image, $file ); break; case IMAGETYPE_PNG: imagepng( $image, $file ); break; case IMAGETYPE_JPEG: imagejpeg( $image, $file ); break; } return $meta; }
Đoạn mã trên yêu cầu người tải lên tạo thêm kích thước cho hình ảnh bạn đã tải lên. Cắt nó theo kích thước bạn đã chỉ định ở bước trước. Sau đó áp dụng bộ lọc hình ảnh: Grayscale.
Nếu bạn đang làm điều này cho hình thu nhỏ bài đăng của mình, thì bạn có thể hiển thị nó như thế này trong chủ đề của mình:
Nếu bạn muốn thực hiện việc này cho một tệp đính kèm cụ thể, thì bạn có thể sử dụng hàm wp_get_attachment_image .
Lưu ý: Bạn nên thay đổi tên chủ đề thành tên chủ đề của mình.