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?

Read More

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

Related posts

1 comment

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

Comments are closed.