php [将图像上传到媒体库]将图像上传到媒体库并将其设置为$ post_id(如果已指定)的特色图像。 #wordpress

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php [将图像上传到媒体库]将图像上传到媒体库并将其设置为$ post_id(如果已指定)的特色图像。 #wordpress相关的知识,希望对你有一定的参考价值。

/**
 * Upload the image into the media library and set it as featured image for $post_id (if specified).
 *
 * @param string $url the image url/path.
 * @param int    $post_id the post it to whom assign the featured image.
 *
 * @return int the attachment id.
 */
function nine3_upload_image( $url, $post_id = false ) {
	// Use file_get_contents for file saved locally and wp_remote_get for the remote ones.
	if ( preg_match( '/http.?:\/\//', $url ) ) {
		$content = wp_remote_get( $url );
	} else {
		$content = file_get_contents( $url );
	}

	// Set the upload date as the post date.
	$post_date   = $post_id ? get_post_field( 'post_date', $post_id ) : null;
	$filename    = basename( $url );
	$upload_file = wp_upload_bits( $filename, '', $content, $post_date );

	if ( ! $upload_file['error'] ) {
		$wp_filetype = wp_check_filetype( $filename, null );

		$attachment = array(
			'post_mime_type' => $wp_filetype['type'],
			'post_parent'    => (int) $post_id,
			'post_title'     => preg_replace( '/\.[^.]+$/', '', $filename ),
			'post_content'   => '',
			'post_status'    => 'inherit',
		);

		if ( ! empty( $post_date ) ) {
			$attachment['post_date'] = $post_date;
		}

		$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], 0 );

		if ( ! is_wp_error( $attachment_id ) ) {
			require_once( ABSPATH . 'wp-admin/includes/image.php' );

			$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
			wp_update_attachment_metadata( $attachment_id, $attachment_data );

			return $attachment_id;
		}
	}

	return null;
}

以上是关于php [将图像上传到媒体库]将图像上传到媒体库并将其设置为$ post_id(如果已指定)的特色图像。 #wordpress的主要内容,如果未能解决你的问题,请参考以下文章

Sitecore 媒体库上传错误

使用npm twit将图像上传到Twitter时“媒体类型无法识别”

我需要将 SQL Azure 中的媒体内容(视频或图像)存储上传到 Azure BLOB 容器

从 Wordpress 媒体库中获取单个特定图像

以编程方式将媒体上传到 Shopware 6 的最佳方式?

如何在 WP 中组织上传的媒体?