Como imagens de escala de cinza no WordPress

Você já se perguntou se havia uma maneira de criar automaticamente imagens em grayscale no WordPress quando você as carrega? Bem, o tempo de maravilha acabou. Neste artigo, mostraremos como você pode usar algumas ferramentas simples de manipulação de imagens do PHP e funções do WordPress para imagens automaticamente em escala de cinza após o upload. Você pode usar imagens em escala de cinza para passar o mouse, controles deslizantes, galeria ou qualquer outra coisa que você quiser.

Imagens de tons de cinza no WordPress

A primeira coisa que você precisa fazer é abrir o arquivo functions.php do seu tema e adicionar o seguinte código:

add_action ('after_setup_theme', 'themename_bw_size');
 função themename_bw_size () {
 add_image_size ('themename-bw-image', 100, 100, true);
 } 

O código acima simplesmente adiciona um tamanho de imagem adicional para o remetente. O tamanho está definido para 100 x 100px com um corte rígido. Você pode alterar as dimensões de acordo com suas necessidades. Depois de ter feito isso, você precisa adicionar o seguinte código:

add_filter ('wp_generate_attachment_metadata', 'themename_bw_filter');
 função themename_bw_filter ($ meta) {
 $ file = wp_upload_dir ();
 $ file = traceingslashit ($ file ['path']). $ meta ['sizes'] ['nome_mênico-bw-image'] ['arquivo'];
 lista ($ orig_w, $ orig_h, $ orig_type) = @getimagesize ($ file);
 $ image = wp_load_image ($ file);
 imagefilter ($ image, IMG_FILTER_GRAYSCALE);
 switch ($ orig_type) {
 caso IMAGETYPE_GIF:
 imagegif ($ image, $ file);
 pausa;
 caso IMAGETYPE_PNG:
 imagepng ($ image, $ file);
 pausa;
 caso IMAGETYPE_JPEG:
 imagejpeg ($ image, $ file);
 pausa;
 }
 retornar $ meta;
 } 

O código acima mostra praticamente o uploader para criar um tamanho extra da imagem que você carregou. Coloque-o no tamanho que você especificou no passo anterior. Em seguida, aplique o filtro de imagem: Grayscale.

Se você estivesse fazendo isso para as miniaturas da sua publicação, então você pode exibi-lo assim no seu tema:

Se você quiser fazer isso por um anexo específico, então você pode usar a função wp_get_attachment_image.

Nota: Você deve mudar o nome para o nome do seu tema.

Todos os créditos para este truque impressionante vão para Otto.