Script per ottenere una lista di tutte le immagini non collegate?
Nel mio functions.php, ho la necessità di elencare tutte le immagini nella cartella uploads che attualmente non sono collegate a un post nel database di WP.
Sembra che ogni volta che un'immagine viene caricata nella cartella uploads di WP (tramite FTP o tramite Media Manager), un record venga inserito nel database di WP, giusto?
Come posso ottenere un elenco di tutte le immagini che attualmente non sono collegate a nessun post?

Dovrebbe funzionare:
$args = array(
'post_type' => 'attachment', // Tipo di post: allegati
'numberposts' => -1, // Numero di post da recuperare (-1 = tutti)
'post_status' => null, // Stato del post (null = tutti gli stati)
'post_parent' => 0 // Post genitore (0 = nessun genitore)
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $post) {
setup_postdata($post);
the_attachment_link($post->ID); // Mostra il link all'allegato
}
}

@sorich: Grazie mille. Questo mi avvicina decisamente alla soluzione. Tuttavia, sta restituendo un po' più dati di quelli che mi servono. Ad esempio, sembra che l'immagine stessa sia contenuta in ["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/theImage.png" quindi questa è la parte che sto cercando. C'è un modo per chiamare get_posts e ottenere solo il valore "guid"?

Non consiglierei di usare il guid poiché non è stato pensato per essere utilizzato come link. Il formato guid potrebbe cambiare in futuro (http://core.trac.wordpress.org/ticket/6492). Dovresti usare the_attachment_link($post->ID, false)
, ad esempio, per ottenere il link all'immagine.

In WP 3.1, sarai in grado di ottenere solo un campo con get_posts: http://core.trac.wordpress.org/ticket/14777. Nel frattempo, puoi usare il filtro posts_fields
.

Non è vero, la patch non specifica che può essere restituito solo un campo, sta estendendo get_posts per consentire la selezione di campi specificati, invece di restituire semplicemente tutti, questo allinea get_posts con altre funzioni che supportano la stessa cosa (un esempio sarebbe get_terms).

@t31os: in base alla tua spiegazione, non vedo come quanto ho detto non sia vero. Non ho detto che verrà restituito sempre un solo campo. Qual è la differenza tra "può essere restituito solo un campo" e "consentire la selezione di campi specificati" (se posso selezionare ad esempio solo un campo)? Mi sfugge qualcosa?

@sorich - Hai detto: "sarai in grado di ottenere solo un campo con get_posts"... puoi ottenere un numero di campi se lo desideri, non c'è alcuna restrizione.. (forse hai solo formulato male il commento?)

@sorich: Come posso integrare the_attachment_link($post->ID, false) nel tuo codice di risposta? Sto usando ['guid'] perché è così che viene restituito il link dell'immagine allegata quando si utilizza get_posts().

@t31os: Scusa, non sapevo che 'be able to' potesse essere interpretato come 'sempre'. Non sono un madrelingua inglese. :)

Se hai bisogno di gestirli nella tua interfaccia utente:
/wp-admin/upload.php?detached=1
Aggiungi l'indirizzo del tuo blog all'inizio.
O in modo più descrittivo:
Accedi alla tua amministrazione, poi usa il menu: Media -> Libreria. Seleziona il link Non collegati sopra il menu a tendina dei filtri dell'elenco.
