メディアギャラリーですべての画像を取得しますか?


28

メディアギャラリーですべての画像のURLを取得する方法はありますか?

これは、特定のシナリオでのみ必要な場合、メディアギャラリーからすべての画像をプルするピクチャページをWebサイトで簡単に作成できる方法だと思います。

写真ページの作成方法に関する指示は必要なく、すべての画像URLを取得する方法だけが必要です。ありがとう!


メディアライブラリ全体(サイト全体)のすべての画像を意味しますか?
ザムース

回答:


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です。


えーと。@ somaticが私を打ち負かしたようです。上記の彼のソリューションとは異なり、私のものは画像のみを取得します。
アジズルラーマン

2
明らかに私たちのメソッドは似ています...そしてazizurは正しいです。どちらかのクエリに 'post_mime_type'を追加すると、返される型が絞り込まれます。考慮すべき点が1つあります。GUIDには画像の完全なURLが含まれていることがよくありますが、信頼できるソースではありません。これは静的で、投稿の作成時に一度だけ生成され、現在のサイトのURLとメディアフォルダー構造に基づいて構築されます。しかし、そのフォルダー構造ドメインはある時点で変更される可能性があり、その場合GUIDは実際の画像URLではなく、作成時の記録に過ぎません...-
somatic

1
この答えは間違っています。メディアライブラリから画像を取得しません。投稿内で使用される画像を取得します。未使用の画像は見つかりません!
クリスチャン

@クリスチャン-それは間違っていますか?または、「まだ」間違っていると尋ねるべきですか?ほぼ2年後にコメントしていることに気付きましたが、これをWP 3.6で試しました。投稿に追加せずにメディアライブラリに追加したばかりの画像を受信して​​います:/
クリスケンペン

馬鹿げた質問かもしれませんが、どのようにしてさまざまな画像サイズを取得できますか?
フレデリック・ウィッテ

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

OKこのコードを使用して、メディアライブラリのすべての画像を表示しました。

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

ショーページネーションの方法を知っている場合は、回答してください。



1

これは、とを使用したこの回答の短いバージョンです。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 );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.