Borrar imágenes al borrar una entrada en tu web con WordPress

borrar-imagen-destacada-al-borrar-post

Te mostramos como borrar las imágenes de un post o CPT al eliminar la entrada

Cuando trabajas en WordPress y eliminás una entrada o una página o cualquier otro contenido, las imágenes adjuntas a ese contenido quedan guardadas en la librería de imágenes. Esto puede ser útil para utilizar las mismas imágenes para otro contenido.

¿Pero que pasa si se utiliza WordPress como gestor de un sitio web de venta de vehículos o un sitio web para inmobiliarias por ejemplo?

Nos encontramos con muchas entradas únicas en las que no tienen sentido mantener una imagen en la biblioteca, ya que al quitar la entrada no vamos a volver a utilizar la imagen, ya que son únicas para cada contenido.

Y si la carga es periódica, el tamaño de nuestro sitio web puede ser muy grande.

Si bien muchos alojamientos actuales tienen almacenamiento “ilimitado” a la hora de hacer backups, cada mega cuenta. Y tener imágenes que no se utilizarán más no tiene mucho sentido.

Ahora bien, ¿cómo borramos estas imágenes al eliminar el post?

Sencillo, con un pequeño código en nuestro archivo functions.php (recordar hacer backups antes de modificar cualquier archivo o contenido en nuestro sitio web)

//Borrar imágenes adjuntas al borrar la entrada
add_action( 'before_delete_post', function( $id ) {
  $attachments = get_attached_media( '', $id );
  foreach ($attachments as $attachment) {
    wp_delete_attachment( $attachment->ID, 'true' );
  }
} );

El único requisito es que los adjuntos solo se borrarán cuando el contenido se haya borrado del todo, no si está en la papelera.

¿Y si lo que queremos es que solamente funcione para un contenido particular?

En este caso tendrías que personalizar un poco el código anterior, para especificar a qué tipos de contenido se aplicará la acción:

//Borrar imágenes adjuntas al borrar la entrada cuyo Custom post type sea 'vehiculos'
add_action( 'before_delete_post', 'delete_all_attached_media' );
function delete_all_attached_media( $post_id ) {
  if( get_post_type($post_id) == "vehiculos" ) {
    $attachments = get_attached_media( '', $post_id );
    foreach ($attachments as $attachment) {
      wp_delete_attachment( $attachment->ID, 'true' );
    }
  }
}

También podemos hacerlo con Woocommerce, cambiando “vehiculos”  por “product”

 

Picture of Equipo Sessionstudio
Equipo Sessionstudio
Sessionstudio es una agencia de diseño web y diseño gráfico que inicia sus actividades en Agosto de 2004. Nuestras oficinas se encuentran en la ciudad de Rosario. Desarrollamos sitios webs profesionales y autoadministrables. Optimizamos su imagen corporativa a través del análisis de sus necesidades, ofreciendo servicios alineados con su estrategia de negocios.

También te puede interesar:

Sessionstudio 22 Años
Noticias

22 años construyendo futuro en la web.

Ayer celebramos un hito del que nos sentimos profundamente orgullosos: cumplimos 22 años online. En una industria caracterizada por la transformación constante y la volatilidad, mantenerse vigente y en crecimiento ininterrumpido durante más de dos décadas no es casualidad….

Ver más
Diseño web para PYMES en Rosario Argentina
Noticias

Diseño web para PYMES en Rosario: guía completa 2026

Si tenés una PYME y estás evaluando la posibilidad de crear desde cero o renovar por completo tu sitio web corporativo, este artículo está diseñado especialmente para vos. Como agencia especializada en el desarrollo y diseño web en Rosario, te explicamos con total transparencia qué…

Ver más

🤖 🐚 ◉