¿Cómo obtener todas las imágenes de la Galería Multimedia?

10 mar 2011, 13:32:12
Vistas: 103K
Votos: 34

¿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!

1
Comentarios

¿Te refieres a todas las imágenes en toda la biblioteca de medios (es decir, en todo el sitio)?

ZaMoose ZaMoose
12 mar 2011 17:44:39
Todas las respuestas a la pregunta 6
11
72
// 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;

13 mar 2011 00:16:39
Comentarios

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

Azizur Rahman Azizur Rahman
13 mar 2011 00:19:01

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ó...

somatic somatic
13 mar 2011 05:43:50

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 Christian
10 oct 2011 15:38:15

@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 :/

Chris Kempen Chris Kempen
16 ago 2013 20:19:03

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

Frederik Witte Frederik Witte
17 jul 2016 17:31:33

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

Azizur Rahman Azizur Rahman
18 jul 2016 02:19:14

siiiiiiiiiiiiiiiiii

Zach Smith Zach Smith
22 feb 2018 05:43:26

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.

Matt Royal Matt Royal
27 feb 2021 16:53:37

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?

A.Shoman A.Shoman
14 abr 2021 13:58:27

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/

Apurba Pathak Apurba Pathak
8 abr 2023 15:10:55

@ApurbaPathak, no recomendaría instalar plugins como el sugerido en el enlace que compartiste. Esto podría generar vulnerabilidades de seguridad en tu instalación de WordPress.

Azizur Rahman Azizur Rahman
9 abr 2023 17:45:04
Mostrar los 6 comentarios restantes
0
18
$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.

13 mar 2011 00:01:51
0
<?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.

12 mar 2011 17:10:26
0

¡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.

27 feb 2012 17:52:12
1

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 );
20 ene 2016 22:20:56
Comentarios

Esta es la forma más optimizada. Solo estás llamando al campo ID que es el único requerido.

Usman Ahmed Usman Ahmed
20 oct 2020 09:45:57
0

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.

12 mar 2011 23:18:05