Alle Bilder in der Mediengalerie abrufen?

28

Gibt es eine Möglichkeit, die URLs aller Bilder in der Mediengalerie abzurufen ?

Ich denke, dies wäre eine einfache Möglichkeit für eine Website, eine Bilderseite zu haben, die nur alle Bilder aus der Mediengalerie abruft, vorausgesetzt, dies wäre nur in bestimmten Szenarien erforderlich.

Ich benötige keine Anweisungen zum Erstellen einer Bildseite, sondern nur zum Abrufen aller Bild-URLs. Vielen Dank!

Jared
quelle
Meinen Sie damit alle Bilder in der gesamten Medienbibliothek (dh Website-weit)?
ZaMoose

Antworten:

50
$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 );
}

Alle Bilder URL sind jetzt in $images;

Azizur Rahman
quelle
ähm .. sieht aus wie @somatic mich geschlagen hat. Im Gegensatz zu seiner obigen Lösung werden bei mir nur Bilder angezeigt.
Azizur Rahman
2
offensichtlich sind unsere methoden ähnlich ... und azizur hat recht, wenn man den 'post_mime_type' zu beiden abfragen hinzufügt, werden die zurückgegebenen typen eingeschränkt. Eines ist zu beachten: Die Guid enthält häufig die vollständige URL zum Bild, ist jedoch keine zuverlässige Quelle. Es ist statisch, wird nur einmal beim Erstellen des Posts generiert und basiert auf der aktuellen Site-URL und der Medienordnerstruktur. Aber diese Ordnerstruktur und die Domain könnten sich irgendwann ändern, und dann ist die Guid nicht mehr die eigentliche Bild-URL, sondern nur noch eine Aufzeichnung dessen, was sie war, als sie erstellt wurde ...
somatic
1
Diese Antwort ist FALSCH . Es werden keine Bilder aus der Medienbibliothek abgerufen. Es werden Bilder in Beiträgen verwendet. Nicht verwendete Bilder werden nicht gefunden!
Christian
@ Christian - ist es falsch? Oder soll ich 'noch' falsch fragen? Ich stelle fest, dass ich fast 2 Jahre später kommentiere, aber ich habe dies in WP 3.6 ausprobiert und ich erhalte Bilder, die ich gerade der Medienbibliothek hinzugefügt habe, ohne sie irgendwelchen Posts hinzuzufügen: /
Chris Kempen
Könnte eine blöde Frage sein, aber wie würde ich jetzt die verschiedenen Bildgrößen bekommen?
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;

Fragen Sie die Datenbank nach allen Medienbibliothekselementen ab (nicht nur nach Elementen, die an Beiträge angehängt sind), greifen Sie auf deren URL zu und speichern Sie sie alle im $listArray.

somatisch
quelle
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' );
    }
?>

Dadurch werden alle Anhänge für einen Beitrag / eine Seite abgerufen. Hängen Sie weitere Bilder an einen Beitrag an, und dieser wird aufgelistet

stffn
quelle
5

ok y verwendet diesen Code für die Anzeige aller Bilder in der Mediathek!

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

und wenn Sie die Methode für die Show-Paginierung kennen, antworten Sie bitte.

Hegel
quelle
3

Es sieht so aus, als wäre es schon eine Weile nicht mehr aktualisiert worden, aber das Plug-in für die Medienbibliothek-Galerie könnte ein gutes Beispiel sein, um es sich anzuschauen.

ZaMoose
quelle
1

Dies ist nur eine kürzere Version dieser Antwort mit get_posts()und 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
quelle