if the image is inserted (attached) into the post and not a external link:
function get_my_thumbnail($post_id, $size, $attr=""){
// check of featured image first
$t = get_post_thumbnail_id($post_id);
// no featured image set, check post attachments
if(empty($t)){
$attachments = get_children(array(
'post_parent' => $post_id,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID',
));
$attachment = array_shift($attachments); // we only need one
$t = $attachment ? $attachment->ID : false;
}
// no attachments either...
if(empty($t)) return 'no image...';
// we have either attachment / featured image, so output the post thumbnail
do_action('begin_fetch_post_thumbnail_html', $post_id, $t, $size); // compat
$html = wp_get_attachment_image($t, $size, false, $attr);
do_action('end_fetch_post_thumbnail_html', $post_id, $t, $size);
return $html;
}
You may want to also regenerate all attachment sizes (auto-create $size
-d images from your older ones), so you don’t get browser-resized huge images…