¿Hay alguna forma de tomar una URL de una imagen y encontrar el archivo adjunto o la identificación de publicación de esa imagen en la base de datos?
Aquí está la situación:
Estoy en un ciclo revisando todas las etiquetas 'img' que están rodeadas por etiquetas 'a' en el contenido de mi publicación. si el atributo src de la etiqueta 'img' no coincide con el atributo href de la etiqueta 'a' externa, entonces quiero reemplazar la etiqueta 'img'. Al hacer esto, si el 'img' que se va a eliminar está en la galería, quiero eliminar esa publicación y luego colocar mi 'img' de reemplazo en su lugar. Intenté usar una función como esta:
function find_image_post_id($url) {
global $wpdb;
$postid = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts WHERE guid='$url'"));
if ($postid) {
return $postid;
}
return false;
}
Aparentemente, esto no es correcto porque, irónicamente, no es irónicamente único a nivel mundial. Había subido (anteriormente en el mismo script) un archivo con el mismo nombre (¿por qué? Porque era de mayor resolución y estoy tratando de reemplazar las versiones de baja resolución de la misma imagen) y aunque Wordpress guardará la imagen con un nombre diferente en el directorio, los guid se configuraron para ser iguales. (posiblemente un error).
¿Hay otra técnica que pueda usar?