Created
July 19, 2022 14:49
-
-
Save kbcarte/08d7f4f76ec6945898aa6cdccccb240c to your computer and use it in GitHub Desktop.
Wordpress function to upload and set a posts featured image with php.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Yoink: https://wordpress.stackexchange.com/a/41300 | |
// Function to upload images from url to Wordpress | |
// then set the new image as a posts featured image via post ID | |
function Generate_Featured_Image( $image_url, $post_id ){ | |
$upload_dir = wp_upload_dir(); | |
$image_data = file_get_contents($image_url); | |
$filename = basename($image_url); | |
if(wp_mkdir_p($upload_dir['path'])) | |
$file = $upload_dir['path'] . '/' . $filename; | |
else | |
$file = $upload_dir['basedir'] . '/' . $filename; | |
file_put_contents($file, $image_data); | |
$wp_filetype = wp_check_filetype($filename, null ); | |
$attachment = array( | |
'post_mime_type' => $wp_filetype['type'], | |
'post_title' => sanitize_file_name($filename), | |
'post_content' => '', | |
'post_status' => 'inherit' | |
); | |
$attach_id = wp_insert_attachment( $attachment, $file, $post_id ); | |
require_once(ABSPATH . 'wp-admin/includes/image.php'); | |
$attach_data = wp_generate_attachment_metadata( $attach_id, $file ); | |
$res1= wp_update_attachment_metadata( $attach_id, $attach_data ); | |
$res2= set_post_thumbnail( $post_id, $attach_id ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment