Una tienda online, es habitual que guarde varios archivos como vídeos o fotografías de los productos, ya que son la base de la presentación del producto. El problema viene, cuando la tienda lleva almacenando productos varios años, que todas esas imágenes no se suelen borrar(las de los productos agotados o que no se usan).
Esto a la largo plazo es un problema por los siguientes motivos:
- Ahorro de espacio en el hosting: Las imágenes pueden consumir un espacio considerable en tu servidor, y si tienes un hosting con un límite de almacenamiento, esto puede ser un problema.
- Optimización del ecommerce: Un directorio limpio y organizado facilita las copias de seguridad y la migración del sitio.
- Seguridad: Las imágenes no utilizadas pueden ser un vector de ataque si contienen vulnerabilidades o si un atacante puede utilizarlas de alguna manera.
Por todo esto, es recomendable ir eliminando todas estas fotografías de producto. El problema es todo el tiempo que tenemos que invertir para borrarlas de forma manual. Es por eso que en este tutorial vamos a ver cómo borrarlas de forma automática si no las utilizamos en la web.
Índice
Mediante código
La forma más optima de realizarlo es añadiendo el siguiente fragmento de código en nuestro fichero function.php de nuestro child theme o bien en un plugin de funcionalidades como explico aquí:
function dl_borrar_medio_asociado($post_id) {
$attachments = get_posts(array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_status' => 'any',
'post_parent' => $post_id
));
foreach ($attachments as $attachment) {
if (false === wp_delete_attachment($attachment->ID, true)) {
wp_die('Error al borrar el archivo.');
}
}
}
add_action('before_delete_post', 'dl_borrar_medio_asociado');
Una vez insertado en nuestra tienda online, al borrar un producto, todas las imágenes y medios asociados al mismo como la imagen principal o las fotos insertadas en el texto se borrarán. Eso sí, el producto se debe borrar definitivamente, no estar en la papelera.
Mediante plugin
Es otra forma de hacerlo si os da miedo el código o no entendéis. Aun así, la mejor opción es la anterior.
Usaremos el plugin Media Cleaner de Jordy Meow, disponible de forma gratuita en el repositorio de WordPress o en este enlace. Es plugin permite escanear nuestro sitio y detectar todas las imagenes y medios que no se usan en nuestro WordPress y en consecuencia borrarlas.
Para ello, una vez instalado el plugin, en el administrador de WordPress tendremos un menú de Meow Apps > Media Cleaner. Una vez dentro lo configuraremos de la siguiente forma y haremos clic en Access Media Cleaner Dashboard.

Una vez dentro, haremos clic en el botón de Scan y por fin nos saldrá un listado con todas las fotografías que no usamos en nuestro WordPress. Podremos elegir cuáles borrar y cuáles no:

¿Súper sencillo no? Además puedes ver lo que ocupa cada archivo.
Y esto sería todo por el tutorial de hoy, recuerda que cualquier duda la soluciono en comentarios. Recordaros por último algunos de mi servicios como migrar de Prestashop a WooCommerce o creación de tiendas online.
Hola Diego, gracias por compartir tanto valor, pregunta: el código sirve para otros tipos de contenido?
Hola Jol, solo para las imágenes de producto