Extracting gallery images in WordPress 3.5 on index.php

I’m trying to add a slider on my front blog page for every gallery post, but I have some trouble extracting the images from the post gallery, using the following code:

$post_content = get_the_content();
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

The problem is that each gallery post consists of paragraph with text, “read more” break and a gallery after the break and thus get_the_content() skips the images because they are after the break. How can I make it get the whole content, regardless of breaks?

I use “read more” because I want short description about the gallery post before clicking on it to read it.

Solutions Collecting From Web of "Extracting gallery images in WordPress 3.5 on index.php"

get_the_content is a template tag and would only work reliably inside a Loop. That means that you should also be able to use the $post global instead.

global $post; // may not be necessary unless you have scope issues
              // for example, this is inside a function
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

You can then use wp_get_attachment_image to actually get the images.

foreach ($array_ids as $id) {
  echo  wp_get_attachment_image($id);
}