Obter todas as imagens na Galeria de mídia?

28

Existe uma maneira de buscar os URLs de TODAS as imagens na galeria de mídia?

Eu acho que essa seria uma maneira fácil para um site ter uma página de Imagens que apenas retira todas as imagens da galeria de mídia, desde que isso seja necessário apenas em certos cenários.

Não preciso de instruções sobre como criar uma página Imagens, apenas sobre como extrair todos os URLs da imagem. Obrigado!

Jared
fonte
Você quer dizer todas as imagens em toda a biblioteca de mídia (ou seja, em todo o site)?
ZaMoose 12/03

Respostas:

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

Todas as imagens estão agora no URL $images;

Azizur Rahman
fonte
hum .. parece que @somatic me venceu. Ao contrário da solução acima, a minha só obterá imagens.
Azizur Rahman 12/03/11
2
obviamente, nossos métodos são semelhantes ... e azizur está certo, adicionar o 'post_mime_type' a qualquer uma das consultas restringirá os tipos retornados. Uma coisa a considerar: o guia geralmente contém o URL completo da imagem, mas não é uma fonte confiável. É estático, gerado apenas uma vez quando a postagem é criada e é construído no URL do site atual e na estrutura da pasta de mídia. Mas essa estrutura de pastas e do domínio poderia mudar em algum momento, e então o guid não é o URL da imagem real mais, apenas um registro do que era quando foi criado ...
somática
1
Esta resposta está errada . Não obtém imagens da Biblioteca de Mídia. Ele obtém imagens usadas em posts. Imagens não utilizadas não foram encontradas!
Christian
@ Christian - isso está errado? Ou devo perguntar 'ainda' errado? Eu percebo que estou comentando quase 2 anos mais tarde, mas eu tentei isso em WP 3.6 e estou recebendo imagens que eu acabei adicionados à biblioteca de mídia sem adicioná-los a quaisquer mensagens: /
Chris Kempen
Pode ser uma pergunta estúpida, mas como obteria agora os diferentes tamanhos de imagem?
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;

Consulte o banco de dados para todos os itens da biblioteca de mídia (não apenas os anexados às postagens), pegue o URL deles, despeje todos eles na $listmatriz.

somático
fonte
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' );
    }
?>

Isso puxa todos os anexos para uma postagem / página. Anexe mais imagens a uma postagem e ela será listada

stffn
fonte
5

ok y usou este código para mostrar TODAS as imagens na biblioteca de mídia!

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

e se você conhece o método para mostrar paginação, responda.

Hegel
fonte
3

Parece que ele não foi atualizado há algum tempo, mas o plug-in Galeria da Biblioteca da Mídia pode ser um bom exemplo para começar a analisar.

ZaMoose
fonte
1

Esta é apenas uma versão mais curta desta resposta usando get_posts()e 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
fonte