WordPress — Вставка в медиафайлы картинки с удаленного ресурса

Данный сниппет (кусок кода) поможет вам вставить картинку, или файл с удаленного ресурса, его можно переписать для других типов файлов, не только картинок. Соответственно если вам нужно скачать откуда-то картинку и поставить её как миниатюру к записи то можно воспользоваться им.

function insert_remoteimage_to_post($post_id = -1, $url = '', $post_title = '', $setthumbnail = false) {
	$filename = time().rand(1000,9999).'neatekalbum.jpg';
	file_put_contents($filename, fopen($url, 'r'));
	$upload = wp_upload_bits( $filename, null, file_get_contents($filename) );
	unlink($filename);
	if ( empty($upload['error']) ) {
		$parent_post_id = $post_id;
		if(empty($post_title)) {
			$post_title = preg_replace( '/\.[^.]+$/', '', basename( $filename ) );
		}
		$filename = $upload['file'];
		$filetype = wp_check_filetype( $filename, null );
		$attachment = array(
			'guid'           => $upload['url'],
			'post_mime_type' => $upload['type'],
			'post_title'     => $post_title,
			'post_content'   => '',
			'post_status'    => 'inherit'
		);
		$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
		require_once( ABSPATH . 'wp-admin/includes/image.php' );
		$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
		if(!empty($attach_data)) {
			wp_update_attachment_metadata( $attach_id, $attach_data );
			if($setthumbnail == true) {
				set_post_thumbnail( $parent_post_id, $attach_id );
				return $attach_id;
			}
		}
	}
	return false;
}

КолДваТриЧетыреОтлично! (оценок еще нет, поставь?)
Loading...