2009-09-02 12 views
8

Howdy! Sto cercando un modo per elencare tutti i file di immagine nella libreria multimediale di un post.Wordpress: query tutte le immagini in un post media library

Ciò che intendo è se un file è stato caricato durante la creazione o la modifica di un post, è il file associato al post in qualche modo e posso creare un elenco da questi dati.

Penso che next_image_link()/previous_image_link(); il tag modello è il più vicino che ho trovato.

Penso che questo dovrebbe essere vicino:

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

grazie.

+3

** Non farlo mai QUESTO ** - ti stai preparando ad avere il tuo database e/o la tua applicazione compromessa tramite [SQL injection] (https://en.wikipedia.org/wiki/SQL_injection). Ogni volta che costruisci una stringa di query del database direttamente dai dati che ricevi dal client, * stai sbagliando *. Utilizza sempre [query con parametri] (http://stackoverflow.com/a/60496/41688). – BryanH

risposta

11

Nella terminologia di wordpress, ogni immagine caricata su un determinato post è denominata allegato. Per elencare tutti allegato, è possibile utilizzare la funzione get_children():

$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 />"; 
} 

L'algoritmo è qualcosa di simile.

0

Se siete alla ricerca di un plugin per gestire galleria di immagini, è possibile utilizzare attachments plug-in,

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

Mantiene la galleria separata e non mette i codici brevi galleria di immagine del contenuto di posta, fornendo in tal modo te con piena presa sulla visualizzazione delle immagini nel tuo post/pagina/post personalizzato. È inoltre possibile modificare l'ordine delle immagini è sufficiente trascinare-n-drop

ecco un codice di esempio di come recuperare le immagini della galleria,

<?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; ?> 
Problemi correlati