Nhận tất cả hình ảnh trong thư viện phương tiện truyền thông?


28

Có cách nào để tìm nạp URL của TẤT CẢ hình ảnh trong thư viện phương tiện không?

Tôi nghĩ rằng đây sẽ là một cách dễ dàng để một trang web có một trang Hình ảnh chỉ cần lấy tất cả các hình ảnh từ thư viện phương tiện, với điều kiện là nó chỉ cần thiết trong một số trường hợp nhất định.

Tôi không cần hướng dẫn về cách tạo trang Ảnh, chỉ cách kéo tất cả các URL hình ảnh. Cảm ơn!


Bạn có nghĩa là tất cả hình ảnh trong toàn bộ thư viện Media (nghĩa là toàn trang web)?
ZaMoose

Câu trả lời:


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

Tất cả các url hình ảnh hiện đang ở $images;


um .. có vẻ như @somatic đã đánh bại tôi. Không giống như giải pháp của anh ấy ở trên, tôi sẽ chỉ nhận được hình ảnh.
Azizur Rahman

2
rõ ràng các phương thức của chúng tôi tương tự ... và azizur là đúng, việc thêm 'post_mime_type' vào một trong hai truy vấn sẽ thu hẹp các kiểu được trả về. một điều cần xem xét: hướng dẫn thường không chứa url đầy đủ cho hình ảnh, nhưng nó không phải là một nguồn đáng tin cậy. Nó là tĩnh, chỉ được tạo một lần khi bài đăng được tạo và được xây dựng trên url trang web hiện tại và cấu trúc thư mục phương tiện. Nhưng cấu trúc thư mục tên miền đó có thể thay đổi vào một lúc nào đó, và sau đó hướng dẫn không còn là URL hình ảnh thực tế nữa, chỉ là bản ghi về những gì nó được tạo ra ...
somatic

1
Câu trả lời này là SAI . Nó không nhận được hình ảnh từ Thư viện phương tiện. Nó được hình ảnh được sử dụng trong bài viết. Không tìm thấy hình ảnh không sử dụng!
Christian

@Christian - có sai không? Hay tôi nên hỏi 'vẫn' sai? Tôi nhận ra tôi đã bình luận gần 2 năm sau, nhưng tôi đã thử nó trên WP 3.6 và tôi nhận được những hình ảnh mà tôi vừa thêm vào thư viện phương tiện mà không thêm chúng vào bất kỳ bài đăng nào: /
Chris Kempen

Có thể là một câu hỏi ngu ngốc, nhưng làm thế nào bây giờ tôi có được các kích cỡ hình ảnh khác nhau?
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;

Truy vấn db cho tất cả các mục trong thư viện phương tiện (không chỉ các mục được đính kèm với bài đăng), lấy url của chúng, kết xuất tất cả trong $listmảng.


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

Điều này kéo tất cả các tệp đính kèm cho một bài viết / trang. Đính kèm thêm hình ảnh vào một bài đăng, và nó sẽ được liệt kê


5

ok y đã sử dụng mã này để hiển thị TẤT CẢ hình ảnh trong Thư viện phương tiện!

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

và nếu bạn biết phương pháp hiển thị phân trang, xin vui lòng trả lời.


3

Có vẻ như nó chưa được cập nhật trong một thời gian, nhưng plugin Thư viện Thư viện có thể là một ví dụ tốt để bắt đầu xem xét.


1

Đây chỉ là một phiên bản ngắn hơn của câu trả lời này bằng cách sử dụng get_posts()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 );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.