/** * Upload image, and set as featured image * @param int $post_id Assign as featured image for this post. * @param string $image_url Image URL from the feed * @return void */ private function moove_set_featured_image($post_id, $image_url) { // Add Featured Image to Post. $upload_dir = wp_upload_dir(); // Set upload folder. $image_data = file_get_contents($image_url); // Get image data. $filename = basename($image_url); // Create image file name. // Check folder permission and define file location. if (wp_mkdir_p($upload_dir['path'])) { $file = $upload_dir['path'] . '/' . $filename; } else { $file = $upload_dir['basedir'] . '/' . $filename; } if ($wp_filetype = wp_check_filetype($filename, null)) { if (!file_exists($file)) { // Create the image file on the server. file_put_contents($file, $image_data); // Check image file type. $wp_filetype = wp_check_filetype($filename, null); // Set attachment data. $attachment = array('post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name($filename), 'post_content' => '', 'post_status' => 'inherit'); // Create the attachment. $attach_id = wp_insert_attachment($attachment, $file, $post_id); // Include image.php require_once ABSPATH . 'wp-admin/includes/image.php'; // Define attachment metadata. $attach_data = wp_generate_attachment_metadata($attach_id, $file); // Assign metadata to attachment. wp_update_attachment_metadata($attach_id, $attach_data); } else { // Searching for attachement ID. $attach_id = Moove_Importer_Controller::moove_get_attachment_id_from_src($file); } // And finally assign featured image to post. set_post_thumbnail($post_id, $attach_id); } }