Hola
Tengo un blog con una extensa cantidad de artículos, pero para ahorrar hospedaje decidí eliminar todas las carpetas en uploads vía Cpanel hasta el año 2017, esto generó que todas las imágenes destacadas de cada artículo dejarían de existir y por ende en la Biblioteca de Medios contnúan apareciendo los meses con las fechas de años anteriores, pero cuando ingresas están en blanco.
Utilicé el plugin Broken Link Checker, pero solo encontró 39 enlaces rotos en más de 30.000 artículos, el detalle es que a nivel de DB aún existen todos estos enlaces de imágenes que fueron eliminadas vía Cpanel, lo que está generando un incremento de recursoso en mi cuenta.
Necesito me ayuden para eliminar en la Biblioteca de Medios todos estos meses de años anteriores vacíos, además de eliminar el enlace de imagen Destacada de cada artículo, las cuales ya no existen, pero para efectos de DB si.
Se que con este código puedo eliminar todos los enlaces de las imágenes destacadas
/**
* eliminar imagen destacada
*/
global $wpdb;
$wpdb->query( "
DELETE FROM $wpdb->postmeta
WHERE meta_key = '_thumbnail_id'
" );
Pero me gustaría eliminar todos los enlaces de las imágenes destacadas hasta el año 2017 y conservar lo que va de 2018.
Muchas gracias por la ayuda
Hola,
Lo que te recomiendo es que mejor recuperes esas carpetas que eliminaste como lo indica el enlace: https://guias.webempresa.com/preguntas-frecuentes/gestionar-copias-seguridad-superbackup/
Luego elimines las imágenes desde la biblioteca de medios de forma manual ya que eliminará tanto las miniaturas como el enlace en la base de datos, no es aconsejable tocar directamente los ficheros ya que te puede generar problemas como los que estas presentando.
Johnny agradecido por tu respuesta, ya estoy ingresando en la Biblioteca de Medios mes a mes y eliminando manualmente todas las imágenes a pesar que se ven en blanco, esto eliminará de la DB todo registro, pero solo con respecto a la Biblioteca de Medios.
El punto importante es que las imágenes utilizadas como Imagen Destacada en cada artículo continuará existiendo el enlace (Ver imagen adjunta), lo que generará cada vez que alguien ingrese al artículo un Error 404, ya que la imagen no existe.
Necesito eliminar todas las imágenes destacadas (entiendase el enlace que existe) de los artículos hasta el año 2017, es decir, el año 2018 quedará normal, o si se entiende mejor, necesito de forma automatizada eliminar la imagen destacada de cada artículo, pero hasta el año 2018.
Probé con Broken Link Checker, pero no detecta el enlace roto de la Imagen Destacada.
Se que con este código puedo eliminar todos los enlaces de las imágenes destacadas, pero necesito conservar los del año 2018
/**
* eliminar imagen destacada
*/
global $wpdb;
$wpdb->query( "
DELETE FROM $wpdb->postmeta
WHERE meta_key = '_thumbnail_id'
" );
Espero me puedan ayudar a resolver pronto esta situación.
Hola,
Verifica si alguno de estos enlaces te es de ayuda:
https://wordpress.org/plugins/remove-featured-image/
http://www.wpbeginner.com/plugins/how-to-hide-featured-images-on-individual-posts-in-wordpress/
Hola Johnny
Los enlaces no están orientado a lo que necesito, que es Eliminar Imágenes Destacadas de Varios Artículos o en su defecto, un plugin que busque enlaces rotos, pero que pueda detectar las Imágenes Destacadas con enlaces rotos.
Hola Alaid.
puedes eliminar imagen destacada de todos las entradas o de una categoria en concreto.
Por ejemplo esta función que es parecida a la que nos muestras:
add_action ( 'init', 'eliminar_imagenes_destacadas' ); function eliminar_imagenes_destacadas() { global $wpdb; $wpdb->query(" DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' "); }
Y para una categoría en concreto, en este caso para la categoría 5
add_action ( 'init', 'eliminar_thumbnails_categoria' ); function eliminar_thumbnails_categoria() { global $post; global $wpdb; $args = array( 'category' => 5 ); $myposts = get_posts ($args); foreach ($myposts as $mypost) { $wpdb->query (" DELETE FROM $wpdb->postmeta WHERE post_id = $mypost->ID AND meta_key = '_thumbnail_id' "); } }
Tienes otra función que lo que realiza es eliminar las imágenes que tengan una fecha inferior a la que tu le indiques:
function wpdev_remove_featured() { $args = array( 'post_type' => 'post', 'date_query' => array( 'after' => date('Y-m-d', strtotime('-180 days')) ) ); $posts = get_posts($args); foreach($posts as $post) { delete_post_thumbnail($post->ID); } }
Pero te eliminara todas las imágenes, destacadas y las del cuerpo de la entrada.
Un saludo
Hola Pépe
Gracias por la información, pero utilicé la última que es la que se ajusta a mis requerimientos, procedí a editar el archivo functions.php y colocar el código al final de este, guardé el mismo e ingresé al Panel de Administración de WP, luego abrí un artículo para verificar que la Imagen Destacada estuviera borrada, pero está todo igual.
Podrías por favor revisar la imagen adjunta de functions.png para ver si está correcto.
Gracias
HOla
El último código no veo que tenga algú hook, prueba agregar esto:
add_action ( 'init', 'wpdev_remove_featured' );
Saludos
Hola Jhon
Gracias, pero no funciona. Voy a tratar de explicarme mejor, es posible que no me entiendan.
Lo que hice fue eliminar todas las imágenes de la Biblioteca de Medios hasta el año 2017, dejando solo las imágenes perteneciente al año 2018, con esto pude bajar la gran cantidad de espacio ocupado en servidor, sin embargo, aún en cada artículo existe la Imagen Destacada (Articulo-Imagen-Destacada.jpg) aunque no se vea ninguna, es decir, solo existe una ruta de la Imagen Destacada, por ende cuando el usuario visita el artículo a pesar que no muestra una Imagen Destacada, la ruta de esta sigue apareciendo (Codigo-de-Imagen-Destacada.jpg), lo que genera un enlace roto, ya que la imagen no existe, además ocupa espacio en la DB.
Lo que requiero es eliminar la Imagen Destacada de cada artículo hasta el año 2017, dejando el resto de artículos de este año completo, es decir con su Imagen Destacada correspondiente.
Debo eliminar todos los enlaces de las Imágenes Destacada de estos artículos, ya que a pesar que no se observe ninguna imagen cuando se visita el artículo, el enlace está presente y esto no es nada recomendable para el SEO.
Muchas gracias por el apoyo.
Hola
Si te entendí, el problema es encontrar el código que haga eso ya que es muy particular tu caso, lo de las fechas lo complica
He visto un plugin pero te quita todas las imágenes destacadas, podrías evalularlo y subir las imágenes de los artículos recientes.
https://wordpress.org/plugins/remove-featured-image/
También puedes evaluar:
http://www.wpbeginner.com/wp-tutorials/how-to-bulk-remove-featured-images-from-posts-in-wordpress/
Es similar al primer código anterior, borra todas las imágenes, no desde una fecha, tendrías que agregar las imágenes nuevamente de los artículos que quieres
Saludos.
Hola Jhon
Son muchos artículos para hacer lo que mencionas, debe existir a través de un Query directo en DB para eliminar esa información, o a través del archivo functions.php
Las opciones que he encontrado es de forma general, pero no puedo eliminar lo del 2018, es un medio de prensa local.
Espero alguien me pueda ayudar
Hola,
En el siguiente enlace se comenta un poco el tema: https://wordpress.stackexchange.com/questions/223471/remove-featured-image-based-on-date en tu caso pienso necesitas programación a medida por lo que te podemos recomendar colaboradores: https://www.webempresa.com/directorio-colaboradores.html