Como redimensionar as imagens automaticamente no lugar das originais

Alyen

Este script substituir o upload de imagem (se é mais grande que o maior tamanho definido nas configurações) gerada pelo WordPress para economizar espaço no seu servidor e economizar banda se você for vincular uma imagem em miniatura para a imagem original, ou quando um plugin lightbox é usado.

Basta colar o seguinte código em seu arquivo functions.php!

[sourcecode language=”php”]
function replace_uploaded_image($image_data) {
// if there is no large image : return
if (!isset($image_data[‘sizes’][‘large’])) return $image_data;

// paths to the uploaded image and the large image
$upload_dir = wp_upload_dir();
$uploaded_image_location = $upload_dir[‘basedir’] . ‘/’ .$image_data[‘file’];
$large_image_location = $upload_dir[‘path’] . ‘/’.$image_data[‘sizes’][‘large’][‘file’];

// delete the uploaded image
unlink($uploaded_image_location);

// rename the large image
rename($large_image_location,$uploaded_image_location);

// update image metadata and return them
$image_data[‘width’] = $image_data[‘sizes’][‘large’][‘width’];
$image_data[‘height’] = $image_data[‘sizes’][‘large’][‘height’];
unset($image_data[‘sizes’][‘large’]);

return $image_data;
}
add_filter(‘wp_generate_attachment_metadata’,’replace_uploaded_image’);
[/sourcecode]

Fonte: wprecipes

Temas

4 comments on “Como redimensionar as imagens automaticamente no lugar das originais”

  1. Não consegui o que queria dessa forma, porém pesquisei e consegui redimensionar as imagens no ato da postagem mudando o arquivo ‘/wp-admin/includes/image.php’ dessa forma:

    add_filter(‘wp_generate_attachment_metadata’,’replace_uploaded_image1′);
    function replace_uploaded_image1($file) {
    if (!isset($image_data[‘sizes’][‘large’])) return $image_data;
    $temp = explode(‘/’,$image_data[‘file’]);
    if ( count($temp) == 3 ) $image_date = $temp[0].”/”.$temp[1];
    $upload_dir = wp_upload_dir($image_date);
    $uploaded_image_location = $upload_dir[‘basedir’] . ‘/’ .$image_data[‘file’];
    $large_image_location = $upload_dir[‘path’] . ‘/’ .$image_data[‘sizes’][‘large’][‘file’];
    unlink($uploaded_image_location);
    rename($large_image_location,$uploaded_image_location);
    $image_data[‘width’] = 1024;
    $image_data[‘height’] = 768;
    unset($image_data[‘sizes’][‘large’]);
    return $image_data;
    }

    ou seja, qualquer imagem postada ele redimensionará 1024×768 proporcionalmente..

    Abraços!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ajuda WordPress © 2017 - Todos os direitos reservados.Desenvolvido por AlyenStudio

Send this to a friend