How to get url image page the right way?

Im guessing it is because you are using echo the_post_thumbnail_url(array(300, 150)); instead of the_post_thumbnail_url(array(300, 150)); the_post_thumbnail_url echos the output for you. Another observation, the the_post_thumbnail_url uses the post data that is setup using setup_postdata, so there is no need for these two lines: $thumb_id = get_post_thumbnail_id($post, ‘news-image’); $url = wp_get_attachment_thumb_url($thumb_id, ‘300, 300’);