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.

1 Answer 1


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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.