2009-09-02 7 views
8

Howdy! Ich suche nach einer Möglichkeit, alle Bilddateien in der Mediathek eines Posts aufzulisten.Wordpress: Abfrage aller Bilder in einer Posts Medienbibliothek

Was ich damit meine ist, wenn eine Datei beim Erstellen oder Bearbeiten eines Beitrags hochgeladen wurde, ist die Datei mit dem Post in irgendeiner Weise verbunden, und kann ich eine Liste aus diesen Daten erstellen.

Ich denke, dass die next_image_link()/previous_image_link(); Template-Tag ist so nah wie ich gefunden habe.

Ich denke, dass diese enge sein sollte:

$query = 'SELECT * FROM `wp_posts` 
WHERE `post_parent` = \''.$_GET['post_id'].'\' 
AND `post_mime_type` = \'image/jpeg\' 
ORDER BY `menu_order` ASC'; 

Dank.

+3

** SIE NICHT ÜBERHAUPT THIS ** - Sie setzen sich selbst dafür ein, dass Ihre Datenbank und/oder Anwendung über [SQL injections] (https://en.wikipedia.org/wiki/SQL_injection) kompromittiert wird. Jedes Mal, wenn Sie eine Datenbankabfrage direkt aus Daten erstellen, die Sie vom Client erhalten, * tun Sie es falsch *. Verwenden Sie immer [parametrisierte Abfragen] (http://stackoverflow.com/a/60496/41688). – BryanH

Antwort

11

In der Wordpress-Terminologie heißt jedes Bild, das Sie auf einen bestimmten Beitrag hochgeladen haben, Anhang. Um alle Befestigungs auflisten zu können, get_children() Funktion verwenden können:

$images =& get_children('post_type=attachment&post_mime_type=image&post_parent=10'); 

$counter=0; 
foreach((array) $images as $attachment_id => $attachment) 
{ 
    $counter++; 
    echo "<a href='".wp_get_attachment_link($attachment_id) . "'>image $counter</a><br />"; 
} 

Der Algorithmus ist so ähnlich.

0

Wenn Sie ein Plugin suchen Fotogalerie zu verwalten, Sie attachments Plugin verwenden können,

http://wordpress.org/plugins/attachments/

Es die Galerie getrennt hält und nicht die Fotogalerie zu Kurzwahlnummern in der Post Inhalt nicht gesetzt, wodurch Sie haben volle Kontrolle über die Bildanzeige in Ihrem Post/Ihrer Seite/benutzerdefinierten Post. Sie können auch die Reihenfolge der Bilder ändern, indem Sie einfach per Drag-and-Drop

hier ist ein Beispielcode, wie Sie Ihre Galerie Bilder abzurufen,

<?php $attachments = new Attachments('attachments'); /* pass the instance name */ ?> 
<?php if($attachments->exist()) : ?> 
    <h3>Attachments</h3> 
    <p>Total Attachments: <?php echo $attachments->total(); ?></p> 
    <ul> 
    <?php while($attachments->get()) : ?> 
     <li> 
     ID: <?php echo $attachments->id(); ?><br /> 
     Type: <?php echo $attachments->type(); ?><br /> 
     Subtype: <?php echo $attachments->subtype(); ?><br /> 
     URL: <?php echo $attachments->url(); ?><br /> 
     Image: <?php echo $attachments->image('thumbnail'); ?><br /> 
     Source: <?php echo $attachments->src('full'); ?><br /> 
     Size: <?php echo $attachments->filesize(); ?><br /> 
     Title Field: <?php echo $attachments->field('title'); ?><br /> 
     Caption Field: <?php echo $attachments->field('caption'); ?> 
     </li> 
    <?php endwhile; ?> 
    </ul> 
<?php endif; ?> 
Verwandte Themen