En la biblioteca multimedia de wordpress, ¿hay alguna forma de eliminar la imagen original después de cambiar el tamaño? Parece mantener el original y siento que esto desperdicia mucho espacio.
¿WordPress elimina la imagen original después de cambiar el tamaño?
jonny jordan
Raunak Gupta
tienes que usar wp_generate_attachment_metadata
filtro para manipular la imagen de carga.
Aquí está el código:
add_filter('wp_generate_attachment_metadata', 'txt_domain_delete_fullsize_image');
function txt_domain_delete_fullsize_image($metadata)
{
$upload_dir = wp_upload_dir();
$full_image_path = trailingslashit($upload_dir['basedir']) . $metadata['file'];
$deleted = unlink($full_image_path);
return $metadata;
}
El código va en el archivo function.php de su tema secundario activo (o tema). O también en cualquier complemento de archivos php.
El código está probado y es completamente funcional.
¡Espero que esto ayude!
-
La imagen no se muestra en la imagen destacada, cuando creas la publicación.
– ztvmark
10 de enero de 2021 a las 4:38
-
el código elimina -scaled.jpg pero no el más grande (original)
– Rafiozoo
10 sep 2021 a las 10:27
No sé la respuesta directa a esto y es una buena idea mantener la imagen original para los complementos internos de wordpress.
Sin embargo, una forma de reducir el almacenamiento y reducir los costos es utilizar el complemento de AWS S3:
https://wordpress.org/plugins/amazon-s3-and-cloudfront/
Esto requerirá que primero configure un AWS S3 Bucket. Siéntase libre de hacer otra pregunta relacionada con hacer eso si no tiene sentido.
Works WordPress 5.6 Este sí muestra la imagen destacada
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'] . "https://stackoverflow.com/" .$image_data['file'];
// $large_image_location = $upload_dir['path'] . "https://stackoverflow.com/".$image_data['sizes']['large']['file']; // ** This only works for new image uploads - fixed for older images below.
$current_subdir = substr($image_data['file'],0,strrpos($image_data['file'],"/"));
$large_image_location = $upload_dir['basedir'] . "https://stackoverflow.com/".$current_subdir."https://stackoverflow.com/".$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');
wordpress.org/plugins/image-sizes
–Luca Angioloni
13 de enero de 2017 a las 1:52
Hola, @Jonny Jordan, ¿te ayudó mi respuesta?
– Raunak Gupta
30 de noviembre de 2017 a las 8:17