Script pentru a obține o listă cu toate imaginile care nu sunt atașate?
În fișierul meu functions.php, am nevoie să listez toate imaginile din folderul uploads care nu sunt în prezent atașate la nicio postare în baza de date WordPress.
Se pare că de fiecare dată când o imagine este încărcată în folderul uploads al WordPress (fie prin FTP, fie prin Media Manager), o înregistrare este inserată în baza de date WordPress, corect?
Cum pot obține o listă cu toate imaginile care nu sunt în prezent atașate la nicio postare?

Acest lucru ar trebui să funcționeze:
$args = array(
'post_type' => 'attachment', // tipul postului - atașament
'numberposts' => -1, // număr nelimitat de posturi
'post_status' => null, // orice status
'post_parent' => 0 // doar atașamentele fără părinte
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $post) {
setup_postdata($post);
the_attachment_link($post->ID); // afișează link-ul către atașament
}
}

@sorich: Mulțumesc foarte mult. Acest lucru mă aduce cu siguranță mult mai aproape. Însă returnează puțin mai multe date decât am nevoie. De exemplu, se pare că imaginea în sine este conținută în ["guid"]=> string(59) "http://localhost/mysite/wp-content/uploads/theImage.png", așa că aceasta este partea pe care o caut. Există vreo modalitate de a apela get_posts și de a returna doar valoarea "guid"?

Nu aș recomanda utilizarea guid-ului, deoarece nu a fost destinat să fie folosit ca link. Formatul guid se poate schimba în viitor (http://core.trac.wordpress.org/ticket/6492). Ar trebui să folosești the_attachment_link($post->ID, false)
, de exemplu, pentru a obține link-ul către imagine.

În WP 3.1, vei putea obține doar un singur câmp cu get_posts: http://core.trac.wordpress.org/ticket/14777. Între timp, poți folosi filtrul posts_fields
.

Nu este adevărat, patch-ul nu specifică că poate fi returnat doar un singur câmp, ci extinde funcționalitatea get_posts pentru a permite selectarea câmpurilor dorite, în loc să returneze toate implicit. Aceasta aduce get_posts în linie cu alte funcții care oferă suport pentru același lucru (un exemplu ar fi get_terms).

@t31os: bazat pe explicația ta, nu văd cum ceea ce am spus eu nu este adevărat. Nu am spus că va fi returnat întotdeauna doar un singur câmp. Care este diferența între "doar un câmp poate fi returnat" și "permite selectarea câmpurilor dorite" (dacă pot selecta doar un singur câmp, de exemplu)? Mi-a scăpat ceva?

@sorich - Ai spus: "vei putea obține doar un singur câmp cu get_posts"... poți obține mai multe câmpuri dacă dorești, nu există nicio restricție.. (poate doar ai formulat comentariul neclar?)

@sorich: Cum pot integra the_attachment_link($post->ID, false) în codul răspunsului tău? Eu folosesc doar ['guid'] pentru că așa este returnat linkul imaginii atașate atunci când folosesc get_posts().

@t31os: Îmi pare rău, nu știam că "a putea" poate fi interpretat ca "întotdeauna". Nu sunt vorbitor nativ de engleză. :)

Dacă ai nevoie să le gestionezi în interfața ta de utilizator:
/wp-admin/upload.php?detached=1
Adaugă adresa blogului tău în față.
Sau mai descriptiv:
Conectează-te la panoul de administrare, apoi folosește meniul: Media -> Bibliotecă. Selectează linkul Neatașate deasupra meniului derulant de filtrare al listelor.
