How to: Retrieve images in post content

December 23, 2008 at 9:03 am

Many of you asked me how to get or count the images contained within the content of a post. I’m very happy to provide you a working and easy to use solution for this highly requested recipe.

To achieve this recipe, simply paste the following code on one of your theme files. It will search for all images contained in the post content, and display it.

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<?php
$szPostContent = $post->post_content;
$szSearchPattern = '~<img [^\>]*\ />~';

// Run preg_match_all to grab all the images and save the results in $aPics
preg_match_all( $szSearchPattern, $szPostContent, $aPics );

// Check to see if we have at least 1 image
$iNumberOfPics = count($aPics[0]);

if ( $iNumberOfPics > 0 ) {
     // Now here you would do whatever you need to do with the images
     // For this example the images are just displayed
     for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
          echo $aPics[0][$i];
     };
};

endwhile;
endif;
?&gt,

Many thanks to Matt Varone for this very nice hack!