รับรูปภาพทั้งหมดใน Media Gallery?


28

มีวิธีดึง URL ของภาพทั้งหมดในแกลเลอรี่สื่อหรือไม่

ฉันคิดว่านี่จะเป็นวิธีที่ง่ายสำหรับเว็บไซต์ที่จะมีหน้ารูปภาพที่เพิ่งดึงรูปภาพทั้งหมดจากแกลเลอรี่สื่อภาพเพราะมันจำเป็นสำหรับบางสถานการณ์เท่านั้น

ฉันไม่ต้องการคำแนะนำเกี่ยวกับวิธีสร้างหน้ารูปภาพเพียงวิธีดึง URL รูปภาพทั้งหมด ขอบคุณ!


คุณหมายถึงรูปภาพทั้งหมดในไลบรารีสื่อทั้งหมด (เช่นทั่วทั้งไซต์) หรือไม่
ZaMoose

คำตอบ:


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

ภาพทุกภาพที่ URL ที่เป็นอยู่ในขณะนี้$images;


อืม .. ดูเหมือนว่า @ โซมาติกได้เอาชนะฉันไปแล้ว ซึ่งแตกต่างจากวิธีการแก้ปัญหาข้างต้นของฉันจะได้รับภาพเท่านั้น
Azizur Rahman

2
เห็นได้ชัดว่าวิธีการของเราคล้ายกัน ... และ azizur นั้นถูกต้องการเพิ่ม 'post_mime_type' ลงในการสืบค้นจะทำให้ประเภทที่ส่งคืนแคบลง สิ่งหนึ่งที่ควรพิจารณา: guid มักประกอบด้วย URL แบบเต็มไปยังรูปภาพ แต่มันไม่ใช่แหล่งที่เชื่อถือได้ มันเป็นแบบคงที่สร้างเพียงครั้งเดียวเมื่อมีการสร้างโพสต์และสร้างขึ้นบนไซต์ปัจจุบันและโครงสร้างโฟลเดอร์สื่อ แต่โครงสร้างโฟลเดอร์และโดเมนสามารถเปลี่ยนแปลงได้ในบางจุดและ guid ไม่ใช่ URL ภาพจริงอีกต่อไปเพียงบันทึกสิ่งที่มันเป็นเมื่อมันถูกสร้างขึ้น ...
โซ

1
คำตอบนี้ผิด ไม่สามารถรับรูปภาพจาก Media Library มันได้รับภาพที่ใช้ภายในโพสต์ ไม่พบรูปภาพที่ไม่ได้ใช้!
คริสเตียน

@ คริสเตียน - มันผิดหรือเปล่า? หรือฉันควรถาม 'ยัง' ผิด ฉันรู้ว่าฉันแสดงความคิดเห็นเกือบ 2 ปีต่อมา แต่ฉันลองมันใน WP 3.6 และฉันได้รับภาพที่ฉันเพิ่งเพิ่มไปยังไลบรารีสื่อโดยไม่ต้องเพิ่มพวกเขาในการโพสต์ใด ๆ : /
Chris Kempen

อาจเป็นคำถามที่โง่ แต่ตอนนี้ฉันจะได้ขนาดภาพที่แตกต่างกันอย่างไร
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;

ค้นหา db สำหรับไอเท็มไลบรารีสื่อบันทึกทั้งหมด (ไม่ใช่เฉพาะที่แนบกับโพสต์), จับ url, ทิ้งไว้ใน$listอาร์เรย์


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

สิ่งนี้จะดึงสิ่งที่แนบมาทั้งหมดสำหรับโพสต์ / หน้า แนบรูปภาพเพิ่มเติมไปยังโพสต์และจะปรากฏในรายการ


5

ตกลงใช้รหัสนี้เพื่อแสดงภาพทั้งหมดใน Media Library!

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

และถ้าคุณรู้วิธีแสดงเลขหน้าโปรดตอบ


3

ดูเหมือนว่าจะยังไม่ได้รับการอัปเดตเป็นระยะเวลานาน แต่ปลั๊กอินMedia Library Galleryอาจเป็นตัวอย่างที่ดีในการเริ่มต้นดู


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.