Esiste un modo per prendere un URL di un'immagine e trovare l'allegato o l'ID post di quell'immagine nel database?
Ecco la situazione:
Sono in un ciclo che esamina tutti i tag "img" che sono circondati da tag "a" nel contenuto del mio post. se l'attributo src del tag 'img' non corrisponde all'attributo href del tag 'a' esterno, allora voglio sostituire il tag 'img'. Nel fare questo, se il 'img' che deve essere rimosso si trova nella galleria, voglio eliminare quel post e quindi mettere il mio 'img' sostitutivo al suo posto. Ho provato ad usare una funzione come questa:
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;
}
Questo a quanto pare non è giusto perché il guid non è ironicamente non globalmente unico. Avevo caricato (precedentemente nello stesso script) un file con lo stesso nome (perché? Perché era una risoluzione più alta e sto cercando di sostituire le versioni a bassa risoluzione della stessa immagine) e sebbene wordpress salverà l'immagine con un nome diverso in la directory, i guid erano impostati per essere gli stessi. (possibilmente un bug).
C'è un'altra tecnica che posso usare?