How do I get image url only on the_post_thumbnail

The question:

I want to know how to get image url on the_post_thumbnail()

Default the_post_thumbnail()

<img width="800" height="533" src="" class="attachment-post-thumbnail wp-post-image" alt="book06" title="book06" />

Here I want grab the src only. How do I filter the_post_thumbnail() only to get

Let me know

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

You might also try:

If you only have one size thumbnail:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) );

Or…if you have multiple sizes:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

Note that wp_get_attachment_image_src() returns an array: url, width, height, is_intermediate.

So if you just want only the image url:

echo $thumbnail[0];


Method 2

This does the trick:

<?php wp_get_attachment_image_src('subgall-thumb'); ?>

Make sure you use the correct name for the thumbnail that you are calling.

Method 3

Since WordPress 4.4, there’s an efficient core function that can handle this in a cleaner way than the answers here.

You can use the_post_thumbnail_url( $size ) which will print the URL of the post thumbnail.

Alternatively if you want to return the URL instead of immediately output it, you can use $url = get_the_post_thumbnail_url( $post_id, $size )

Method 4

Ok got it using simplexml_load_string

$dom = simplexml_load_string(get_the_post_thumbnail());
$src = $dom->attributes()->src;
    echo $src;

Another method are welcome.

Method 5

Please Use the below code

<?php get_the_post_thumbnail_url(); ?>

If It’s not enough to achieve your goal then try below code

<?php $postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );

// Check for images if ( $postimages ) {

    // Get featured image   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>

Method 6

For a quick & dirty solution, slap this in the functions.php file of your theme

    $STRING = " ".$STRING;
    IF ($INI == 0) RETURN "";

Used within the loop, this will give you what you’re looking for

This will return something like

$THE_FEATURED_IMAGE = GET_STRING_BETWEEN(get_the_post_thumbnail(NULL,'post-large'), 'src="', '" class="');

* “Within the loop” = look for something like while ( have_posts() ) : the_post();

**You can also sub out “post-large” with any of these predefined image sizes :

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment