Show All Media Attachments to a Post

How to Show All Media Attachments to a Post

in Media
Google+ LinkedIn

Prior to WordPress 3.6, we had to run a query to retrieve all media attachments to a specific post. We had to do something like this.

// show all WordPress post attachments
$args = array(
  'post_type' => 'attachment',
  'posts_per_page' => -1,
  'post_status' => 'any',
  'post_parent' => $post->ID
);
$attachments = get_posts( $args );
if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
        echo apply_filters( 'the_title', $attachment->post_title );
        the_attachment_link( $attachment->ID, false );
    }
}

But WordPress 3.6 made it really simple for us. WordPress 3.6 introduced the new get_attached_media() function that makes it very easy to retrieve any type media attachments to a specific post. So now we call this function to get all attached media, regardless of mimetype.

// show all WordPress post attachments
$attachments = get_attached_media( '', $post->ID );
if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
        echo apply_filters( 'the_title', $attachment->post_title );
        the_attachment_link( $attachment->ID, false );
    }
}

Share the love

If you like this snippet, share it with others!

Leave a Reply

Your email address will not be published. Required fields are marked *