Bạn đã bao giờ tự hỏi nếu có một cách để tự động hình ảnh màu xám trong WordPress khi bạn tải chúng lên? Vâng thời gian tự hỏi là hơn. Trong bài 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 để tự động hình ảnh màu xám khi tải lên. Bạn có thể sử dụng hình ảnh màu xám để di chuột, thanh trượt, thư viện, hoặc bất cứ thứ gì 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'); chức năng themename_bw_size () { add_image_size ('themename-bw-image', 100, 100, đúng); }
Đoạn mã trên chỉ cần thêm một kích thước hình ảnh bổ sung cho người tải lên. Kích thước được đặt là 100 x 100px với việc cắt xén. Bạn có thể thay đổi kích thước để phù hợp với nhu cầu của mình. Một khi bạn đã làm điều đó, bạn cần phải thêm đoạn mã sau:
add_filter ('wp_generate_attachment_metadata', 'themename_bw_filter'); chức năng themename_bw_filter ($ meta) { $ file = wp_upload_dir (); $ file = trailingslashit ($ file ['path']). $ meta ['sizes'] ['themename-bw-image'] ['file']; danh sách ($ orig_w, $ orig_h, $ orig_type) = @getimagesize ($ file); $ image = wp_load_image ($ file); imagefilter ($ hình ảnh, IMG_FILTER_GRAYSCALE); chuyển đổi ($ orig_type) { trường hợp IMAGETYPE_GIF: imagegif ($ hình ảnh, $ tệp); phá vỡ; trường hợp IMAGETYPE_PNG: imagepng ($ hình ảnh, $ tệp); phá vỡ; trường hợp IMAGETYPE_JPEG: imagejpeg ($ hình ảnh, $ tệp); phá vỡ; } return $ meta; }
Đoạn mã trên khá nhiều cho người tải lên tạo thêm kích thước hình ảnh bạn đã tải lên. Cắt nó theo kích thước bạn đã chỉ định trong bước trước. Sau đó áp dụng bộ lọc hình ảnh: Độ xám.
Nếu bạn đang làm việc này cho hình thu nhỏ của bài đăng, sau đó bạn có thể hiển thị nó như thế này trong chủ đề của bạn:
Nếu bạn muốn làm điều này cho một tập tin đính kèm cụ thể, sau đó bạn có thể sử dụng chức năng wp_get_attachment_image.
Lưu ý: Bạn nên thay đổi tên cho tên của chủ đề.
Tất cả các khoản tín dụng cho các trick awesome này đi đến Otto.