我现在使用以下代码获得它:
//featured image from postmeta
function postmeta_img_update() {
global $post;
// If Custom Post Meta Field for a Image/Thumnail Exists
if( get_post_meta($post->ID, "_image", true):
// Get Image Location and File Extention
$img = get_post_meta($post->ID, "_image", true);
$ext = substr(strrchr($img,\'.\'),1);
// WordPress Upload Directory to Copy to (must be CHMOD to 777)
$uploads = wp_upload_dir();
$copydir = $uploads[\'path\']."/";
// Code to Copy Image to WordPress Upload Directory (Server Must Support file_get_content/fopen/fputs)
$data = file_get_contents($img);
$filetitle = strtolower(str_replace(array(\' \', \'-\', \'.\', \'(\', \')\', \'!\', \'@\', \'#\', \'$\', \'%\', \'^\', \'&\', \'*\', \'_\', \'=\', \'+\', \'/\', \'"\'), "-", get_the_title()));
$file = fopen($copydir . "$filetitle-$post->ID.$ext", "w+");
fputs($file, $data);
fclose($file);
// Insert Image to WordPress Media Libarby
$filepath = $uploads[\'path\']."/$filetitle-$post->ID.$ext";
$wp_filetype = wp_check_filetype(basename($filepath), null );
$attachment = array(
\'post_mime_type\' => $wp_filetype[\'type\'],
\'post_title\' => get_the_title(),
\'post_content\' => \'Image for \'.get_the_title(),
\'post_status\' => \'inherit\'
);
wp_insert_attachment( $attachment, $filepath, $post->ID);
// Get Attachment ID for Post
global $wpdb; $attachment_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_parent = \'$post->ID\' AND post_status = \'inherit\' AND post_type=\'attachment\' ORDER BY post_date DESC LIMIT 1");
// Attached Image as Featured Thumbnail in Post
update_post_meta($post->ID, "_thumbnail_id", $attachment_id);
// Removes Custom Meta Field Image URL. This stop this function running again for the updated post.
delete_post_meta($post->ID, "_image");
endif;
}
add_action(\'the_post\',\'postmeta_img_update\');