Cum obții toate imaginile din Galeria Media?

10 mar. 2011, 13:32:12
Vizualizări: 103K
Voturi: 34

Există vreo modalitate de a obține URL-urile TUTUROR imaginilor din galeria media?

Cred că aceasta ar fi o modalitate simplă pentru ca un site web să aibă o pagină de Imagini care să extragă toate imaginile din galeria media, desigur acest lucru ar fi necesar doar în anumite scenarii.

Nu am nevoie de instrucțiuni despre cum să creez o pagină de Imagini, doar cum să extrag toate URL-urile imaginilor. Mulțumesc!

1
Comentarii

Te referi la toate imaginile din întreaga bibliotecă Media (adică, la nivelul întregului site)?

ZaMoose ZaMoose
12 mar. 2011 17:44:39
Toate răspunsurile la întrebare 6
11
72
$query_images_args = array(
    'post_type'      => 'attachment', // Tipul postării - atașament
    'post_mime_type' => 'image',     // Tipul MIME - doar imagini
    'post_status'    => 'inherit',    // Statusul postării - moștenit
    'posts_per_page' => - 1,         // Numărul de postări pe pagină - toate
);

$query_images = new WP_Query( $query_images_args );

$images = array();
foreach ( $query_images->posts as $image ) {
    $images[] = wp_get_attachment_url( $image->ID ); // Obține URL-ul atașamentului
}

Toate URL-urile imaginilor sunt acum în variabila $images;

13 mar. 2011 00:16:39
Comentarii

um.. se pare că @somatic m-a întrecut. Spre deosebire de soluția lui de mai sus, a mea va obține doar imagini.

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

evident, metodele noastre sunt similare... și azizur are dreptate, adăugarea 'post_mime_type' la orice interogare va restrânge tipurile returnate.

un lucru de luat în considerare: guid-ul adesea conține URL-ul complet către imagine, dar nu este o sursă de încredere. Este static, generat o singură dată la crearea postării și este construit pe URL-ul curent al site-ului și structura dosarului media. Dar acea structură de dosare și domeniul ar putea să se schimbe la un moment dat, iar atunci guid-ul nu mai este URL-ul real al imaginii, ci doar o înregistrare a ceea ce a fost la creare...

somatic somatic
13 mar. 2011 05:43:50

Acest răspuns este GREȘIT. Nu obține imagini din Biblioteca Media. Obține imaginile folosite în postări. Imaginile nefolosite nu sunt găsite!

Christian Christian
10 oct. 2011 15:38:15

@Christian - este greșit? Sau ar trebui să întreb 'încă' greșit? Îmi dau seama că comentez după aproape 2 ani, dar am încercat asta pe WP 3.6 și primesc imagini pe care tocmai le-am adăugat în biblioteca media fără să le atașez la nicio postare :/

Chris Kempen Chris Kempen
16 aug. 2013 20:19:03

Poate fi o întrebare stupidă, dar cum aș putea obține acum diferitele dimensiuni ale imaginilor?

Frederik Witte Frederik Witte
17 iul. 2016 17:31:33

@FrederikWitte poți combina get_intermediate_image_sizes și wp_get_attachment_image_src pentru a obține toate URL-urile.

Azizur Rahman Azizur Rahman
18 iul. 2016 02:19:14

yaaaaaaaaaaaaaaaaas

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

Un context adițional - acest răspuns este COREKT. WordPress stochează datele încărcate în tabelul wp_posts ca un tip de postare personalizat attachment de fiecare dată când încarci ceva, indiferent dacă este folosit undeva sau nu.

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

Sunt doar curios, care este scopul lui post_status? Codul meu funcționează doar dacă setez post_status la inherit. Totuși, fișierul atașat pe care îl caut (în cazul meu un fișier pdf) nu a fost încărcat pe nicio pagină. De la ce moștenește atunci? Și de ce nu pot pur și simplu să ignor post_status?

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

Nu funcționează pentru mine... Folosesc acest cod care merge:

Cum să afișezi toate imaginile din Media WordPress pe o pagină https://www.arnlweb.com/forums/web-development/how-to-get-all-images-in-a-wordpress-page-from-media-gallery/

Apurba Pathak Apurba Pathak
8 apr. 2023 15:10:55

@ApurbaPathak, nu aș recomanda instalarea unui plugin ca cel sugerat în link-ul pe care l-ai partajat. Acest lucru ar putea duce la vulnerabilități de securitate în instalarea ta de WordPress.

Azizur Rahman Azizur Rahman
9 apr. 2023 17:45:04
Arată celelalte 6 comentarii
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);
}
// fă ceva cu array-ul $list aici;

Interoghează baza de date pentru toate elementele din biblioteca media (nu doar cele atașate postărilor), obține URL-urile lor și le pune pe toate în array-ul $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' );
    }
?>

Acest cod obține toate atașamentele pentru un articol/pagină. Atașați mai multe imagini la un articol și acestea vor fi listate.

12 mar. 2011 17:10:26
0

Am folosit acest cod pentru a afișa TOATE imaginile din Biblioteca Media!

$args = array(
    'post_type' => 'attachment',
    'post_status' => 'published',
    'posts_per_page' => 25,
    'post_parent' => 210, // ID-ul postului părinte
    '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); // Extrag URL-ul atașamentului      
        $img = wp_get_attachment_url($attachment->ID);
        $title = get_the_title($attachment->post_parent); // Extrag titlul
        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>";
    }   
}

Și dacă știi o metodă pentru a afișa paginare, te rog răspunde.

27 feb. 2012 17:52:12
1

Acesta este doar o versiune mai scurtă a acestui răspuns folosind get_posts() și 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 ian. 2016 22:20:56
Comentarii

Aceasta este cea mai optimizată metodă. Doar apelezi câmpul ID, care este singurul necesar.

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

Se pare că nu a fost actualizat de ceva timp, dar plugin-ul Media Library Gallery ar putea fi un bun exemplu de la care să începeți cercetarea.

12 mar. 2011 23:18:05