Your code is going to cause a fatal error as you have defined a function inside a loop, and therefore are redefining the function at every iteration thereafter. That is part of the problem. Take a look at cleaned up code:
function pw_show_gallery_image_urls( $content ) {
global $post;
// Only do this on singular items
if( ! is_singular() )
return $content;
// Make sure the post has a gallery in it
if( ! has_shortcode( $post->post_content, 'gallery' ) )
return $content;
// Retrieve the first gallery in the post
$gallery = get_post_gallery_images( $post );
$image_list="<ul>";
// Loop through each image in each gallery
foreach( $gallery as $image_url ) {
$image_list .= '<li>' . '<img src="' . $image_url . '">' . '</li>';
}
$image_list .= '</ul>';
// Append our image list to the content of our post
$content .= $image_list;
return $content;
}
add_filter( 'the_content', 'pw_show_gallery_image_urls' );
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
} // end while
} // end if
Note the Loop at the bottom. You have added a filter to the_content
but there is nothing in the Loop that would apply that filter, or even print any content at all. You need:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
the_content(); // minimum
} // end while
} // end if