2009-09-02 20 views
8

Howdy! Estoy buscando una manera de listar todos los archivos de imagen en una biblioteca de medios de publicaciones.Wordpress: consulta todas las imágenes en una biblioteca de medios de publicaciones

Lo que quiero decir con esto es si un archivo se ha subido al crear o editar una publicación, si el archivo está asociado con la publicación de alguna manera, y puedo crear una lista a partir de estos datos.

Creo que el next_image_link()/previous_image_link(); la etiqueta de la plantilla está más cerca que he encontrado.

creo que esto debería estar cerca:

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

gracias.

+3

** No vuelvas a hacer esto ** - se está configurando para que su base de datos y/o aplicación se vea comprometida a través de [inyecciones de SQL] (https://en.wikipedia.org/wiki/SQL_injection). Cada vez que crea una cadena de consulta de base de datos directamente a partir de datos que obtiene del cliente, * lo está haciendo mal *. Utilice siempre [consultas parametrizadas] (http://stackoverflow.com/a/60496/41688). – BryanH

Respuesta

11

En la terminología de WordPress, cada imagen que ha subido a una publicación en particular se denomina adjunto. para listar todos los datos adjuntos, puede utilizar la función 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 />"; 
} 

El algoritmo es algo por el estilo.

0

Si usted está buscando un plugin para gestionar galería de imágenes, puede utilizar attachments plugin,

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

Mantiene la galería independiente y no pone a la galería de imágenes códigos cortos en el contenido de la entrada, proporcionando así usted con control total sobre la visualización de la imagen en su publicación/página/publicación personalizada. También puede cambiar el orden de las imágenes con sólo arrastrar y soltar

aquí es un código de ejemplo de cómo recuperar sus imágenes de la galería,

<?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; ?> 
Cuestiones relacionadas