¿Alguna vez se preguntó si había una forma de escalar automáticamente las imágenes en escala de grises en WordPress cuando las sube? Bueno, el momento de preguntarse ha terminado. En este artículo, le mostraremos cómo puede utilizar algunas herramientas simples de manipulación de imágenes PHP y funciones de WordPress para escalar automáticamente las imágenes en escala de grises al cargarlas. Puede usar imágenes en escala de grises para desplazarse, deslizadores, galería o cualquier otra cosa que desee.

Imágenes en escala de grises en WordPress

Lo primero que debe hacer es abrir el archivo functions.php de su tema y agregar el siguiente código:

add_action ('after_setup_theme', 'themename_bw_size');
 function themename_bw_size () {
 add_image_size ('themename-bw-image', 100, 100, verdadero);
 } 

El código anterior simplemente agrega un tamaño de imagen adicional para el cargador. El tamaño se establece en 100 x 100 px con recorte duro. Puede cambiar las dimensiones para que se ajusten a sus necesidades. Una vez que haya hecho eso, necesita agregar el siguiente código:

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 ($ archivo);
 imagefilter ($ image, IMG_FILTER_GRAYSCALE);
 cambiar ($ orig_type) {
 case IMAGETYPE_GIF:
 imagegif ($ imagen, $ archivo);
 descanso;
 case IMAGETYPE_PNG:
 imagepng ($ imagen, $ archivo);
 descanso;
 case IMAGETYPE_JPEG:
 imagejpeg ($ imagen, $ archivo);
 descanso;
 }
 devolver $ meta;
 } 

El código anterior le dice al cargador que cree un tamaño extra de la imagen que cargó. Córtalo al tamaño que has especificado en el paso anterior. A continuación, aplique el filtro de imagen: escala de grises.

Si estaba haciendo esto para sus miniaturas de publicación, puede mostrarlo así en su tema:


Si desea hacer esto para un archivo adjunto específico, puede usar la función wp_get_attachment_image.

Nota: debe cambiar el nombre del nombre de su tema.

Todos los créditos para este asombroso truco van para Otto.