Obtenir toutes les images dans la galerie multimédia?

28

Existe-t-il un moyen de récupérer les URL de TOUTES les images dans la galerie multimédia?

Je pense que ce serait un moyen facile pour un site Web d'avoir une page d'images qui extrait simplement toutes les images de la galerie multimédia, étant donné que cela ne serait nécessaire que dans certains scénarios.

Je n'ai pas besoin d'instructions pour créer une page d'images, mais simplement pour extraire toutes les URL des images. Merci!

Jared
la source
Voulez-vous dire toutes les images de l'ensemble de la médiathèque (c'est-à-dire à l'échelle du site)?
ZaMoose

Réponses:

51
$query_images_args = array(
    'post_type'      => 'attachment',
    'post_mime_type' => 'image',
    'post_status'    => 'inherit',
    'posts_per_page' => - 1,
);

$query_images = new WP_Query( $query_images_args );

$images = array();
foreach ( $query_images->posts as $image ) {
    $images[] = wp_get_attachment_url( $image->ID );
}

Toutes les images url sont maintenant dans $images;

Azizur Rahman
la source
euh .. on dirait que @somatic m'a battu. Contrairement à sa solution ci-dessus, la mienne n'obtiendra que des images.
Azizur Rahman
2
de toute évidence, nos méthodes sont similaires ... et azizur a raison, l'ajout de 'post_mime_type' à l'une ou l'autre requête restreindra les types retournés. une chose à considérer: le guid contient souvent l'url complète de l'image, mais ce n'est pas une source fiable. Il est statique, généré une seule fois lors de la création de la publication et est basé sur l'URL du site actuel et la structure du dossier multimédia. Mais cette structure de dossiers et le domaine pourraient changer à un moment donné, puis le guid n'est plus l'URL de l'image réelle, juste un enregistrement de ce qu'il était quand il a été créé ...
somatique
1
Cette réponse est FAUX . Il n'obtient pas d'images de la médiathèque. Il obtient des images utilisées à l'intérieur des messages. Les images inutilisées sont introuvables!
Christian
@Christian - est-ce mal? Ou devrais-je demander «toujours» mal? Je me rends compte que je commente presque 2 ans plus tard, mais j'ai essayé sur WP 3.6 et je reçois des images que je viens d'ajouter à la médiathèque sans les ajouter à aucun message: /
Chris Kempen
Cela peut être une question stupide, mais comment pourrais-je maintenant obtenir les différentes tailles d'image?
Frederik Witte
17
$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);
}
// do something with $list here;

Recherchez dans la base de données tous les éléments de la bibliothèque multimédia (pas seulement ceux attachés aux publications), récupérez leur URL, videz-les tous dans le $listtableau.

somatique
la source
6
<?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' );
    }
?>

Cela extrait toutes les pièces jointes d'un article / d'une page. Joignez plus d'images à un message, et il sera répertorié

stffn
la source
5

ok y utilisé ce code pour afficher TOUTES les images dans la bibliothèque multimédia!

$args = array(
    'post_type' => 'attachment',
    'post_status' => 'published',
    'posts_per_page' =>25,
    'post_parent' => 210, // Post-> ID;
    '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 _posturl del attachmnet      
        $img = wp_get_attachment_url($attachment->ID);
        $title = get_the_title($attachment->post_parent);//extraigo titulo
        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>";
    }   
}

et si vous connaissez la méthode de pagination, veuillez répondre.

Hegel
la source
3

Il semble qu'il n'ait pas été mis à jour depuis un certain temps, mais le plugin Media Library Gallery pourrait être un bon exemple pour commencer à regarder.

ZaMoose
la source
1

Ceci est juste une version plus courte de cette réponse en utilisant get_posts()et 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 );
jgraup
la source