¿Cómo obtener todas las imágenes de la Galería Multimedia?
¿Existe alguna manera de obtener las URLs de TODAS las imágenes en la galería multimedia?
Creo que esta sería una forma sencilla para que un sitio web tenga una página de Imágenes que simplemente extraiga todas las imágenes de la galería multimedia, aunque solo sería necesario en ciertos escenarios.
No necesito instrucciones sobre cómo crear una página de Imágenes, solo cómo obtener todas las URLs de las imágenes. ¡Gracias!

// Argumentos para la consulta de imágenes
$query_images_args = array(
'post_type' => 'attachment', // Tipo de post: adjuntos
'post_mime_type' => 'image', // Solo archivos de imagen
'post_status' => 'inherit', // Estado heredado
'posts_per_page' => - 1, // Obtener todas las imágenes
);
// Ejecutar la consulta
$query_images = new WP_Query( $query_images_args );
// Array para almacenar las URLs de las imágenes
$images = array();
foreach ( $query_images->posts as $image ) {
// Obtener la URL de cada imagen y agregarla al array
$images[] = wp_get_attachment_url( $image->ID );
}
Todas las URLs de las imágenes están ahora en $images
;

um... parece que @somatic se me adelantó. A diferencia de su solución anterior, la mía solo obtendrá imágenes.

obviamente nuestros métodos son similares... y azizur tiene razón, agregar el 'post_mime_type' a cualquier consulta limitará los tipos devueltos.
algo a considerar: el guid a menudo contiene la URL completa de la imagen, pero no es una fuente confiable. Es estático, se genera solo una vez cuando se crea la publicación y se basa en la URL actual del sitio y la estructura de carpetas de medios. Pero esa estructura de carpetas y el dominio podrían cambiar en algún momento, y entonces el guid ya no será la URL real de la imagen, solo un registro de lo que era cuando se creó...

Esta respuesta es INCORRECTA. No obtiene imágenes de la Biblioteca Multimedia. Obtiene imágenes utilizadas dentro de las publicaciones. ¡Las imágenes no utilizadas no se encuentran!

@Christian - ¿está mal? O debería preguntar 'todavía' mal? Me doy cuenta de que estoy comentando casi 2 años después, pero probé esto en WP 3.6 y estoy recibiendo imágenes que acabo de agregar a la biblioteca de medios sin agregarlas a ninguna publicación :/

Puede ser una pregunta tonta, pero ¿cómo obtendría ahora los diferentes tamaños de imagen?

@FrederikWitte puedes combinar get_intermediate_image_sizes y wp_get_attachment_image_src para obtener todas las URLs.

Algo de contexto adicional - esta respuesta NO ESTÁ EQUIVOCADA. WordPress almacena los datos de subida en la tabla wp_posts
como un tipo de publicación personalizado attachment
cada vez que subes algo, independientemente de si se usa en algún lugar o no.

Solo por curiosidad, ¿cuál es el propósito de post_status
? Mi código solo funciona si establezco post_status
como inherit
. Sin embargo, el archivo adjunto que estoy buscando (un archivo PDF en mi caso) no fue subido a ninguna página. ¿De qué está heredando entonces? ¿Y por qué no puedo simplemente ignorar el post_status?

No funciona para mí... Yo uso este código funcional:
Cómo mostrar todas las imágenes de la galería de medios de WordPress en una página https://www.arnlweb.com/forums/web-development/how-to-get-all-images-in-a-wordpress-page-from-media-gallery/

$media_query = new WP_Query(
array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
)
);
$list = array();
foreach ($media_query->posts as $post) {
$list[] = wp_get_attachment_url($post->ID);
}
// hacer algo con $list aquí;
Consulta la base de datos para todos los elementos de la biblioteca de medios (no solo los adjuntos a entradas), obtén sus URLs y guárdalos todos en el array $list
.

<?php
$attachments = get_children( array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' =>'image') );
foreach ( $attachments as $attachment_id => $attachment ) {
echo wp_get_attachment_image( $attachment_id, 'medium' );
}
?>
Este código obtiene todos los archivos adjuntos de una entrada/página. Si adjuntas más imágenes a una entrada, serán listadas.

¡OK, usé este código para mostrar TODAS las imágenes en la Biblioteca de Medios!
$args = array(
'post_type' => 'attachment',
'post_status' => 'published',
'posts_per_page' =>25,
'post_parent' => 210, // ID del Post;
'numberposts' => null,
);
$attachments = get_posts($args);
$post_count = count ($attachments);
if ($attachments) {
foreach ($attachments as $attachment) {
echo "<div class=\"post photo col3\">";
$url = get_attachment_link($attachment->ID); // extraigo la URL del attachment
$img = wp_get_attachment_url($attachment->ID);
$title = get_the_title($attachment->post_parent); // extraigo título
echo '<a href="'.$url.'"><img title="'.$title.'" src="'.get_bloginfo('template_url').'/timthumb.php?src='.$img.'&w=350&h=500&zc=3"></a>';
echo "</div>";
}
}
Y si conoces un método para mostrar la paginación, por favor responde.

Esta es una versión más corta de esta respuesta usando get_posts()
y array_map()
.
$image_ids = get_posts(
array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_status' => 'inherit',
'posts_per_page' => - 1,
'fields' => 'ids',
) );
$images = array_map( "wp_get_attachment_url", $image_ids );

Parece que no ha sido actualizado en un tiempo, pero el plugin Media Library Gallery podría ser un buen ejemplo para empezar a revisar.
