Cho phép WordPress tải lên hình ảnh WEBP

WebP là một loại định dạng hình ảnh được tạo ra bởi Google, với mục đích thay thế cho JPEG, PNG và GIF, đồng thời hỗ trợ tốt nén, hình ảnh trong suốt và các hiệu ứng. Nếu bạn muốn cho phép WordPress có thể tải lên hình ảnh định dạng .webp thì bạn thêm đoạn code sau vào tập tin functions.php của giao diện.

Cho phép tải lên định dạng WEBP cho WordPress

// Allow upload WEBP image mime type
function hocwp_theme_upload_mimes_filter( $mimes ) {
	$mimes['webp'] = 'image/webp';

	return $mimes;
}

add_filter( 'upload_mimes', 'hocwp_theme_upload_mimes_filter' );

// Update WEBP image file type
function hocwp_theme_wp_check_filetype_and_ext_filter( $types, $file, $filename ) {
	if ( is_file( $file ) && false !== strpos( $filename, '.webp' ) ) {
		$types['ext']  = 'webp';
		$types['type'] = 'image/webp';
	}

	return $types;
}

add_filter( 'wp_check_filetype_and_ext', 'hocwp_theme_wp_check_filetype_and_ext_filter', 10, 3 );

// Mark WEBP image as real image
function hocwp_theme_file_is_displayable_image_filter( $result, $path ) {
	if ( HT()->is_file( $path ) ) {
		$info = pathinfo( $path );

		if ( isset( $info['extension'] ) && 'webp' == $info['extension'] ) {
			$result = true;
		}
	}

	return $result;
}

add_filter( 'file_is_displayable_image', 'hocwp_theme_file_is_displayable_image_filter', 10, 2 );

// Re-update WEBP image metadata
function hocwp_theme_wp_get_attachment_metadata_filter( $data, $media_id ) {
	$path = get_attached_file( $media_id );

	if ( HT()->is_file( $path ) ) {
		$info = pathinfo( $path );

		if ( isset( $info['extension'] ) && 'webp' == $info['extension'] ) {
			$data = wp_generate_attachment_metadata( $media_id, $path );
			wp_update_attachment_metadata( $media_id, $data );
		}
	}

	return $data;
}

add_filter( 'wp_get_attachment_metadata', 'hocwp_theme_wp_get_attachment_metadata_filter', 10, 2 );

Nếu bạn không thích chèn vào tập tin functions.php của giao diện thì bạn có thể thử viết plugin WordPress để sử dụng lâu dài nhé. Chúc bạn thành công.

5 bình luận cho “Cho phép WordPress tải lên hình ảnh WEBP

    1. Bạn phải chỉnh sửa lại chứ không cóp dán nguyên được. Trong nội dung code có mấy chỗ mình dùng hàm viết sẵn của bên mình nên bạn copy sẽ không dùng được.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *