次のコラム WordPress チュートリアル では、WordPress で WebP 形式の画像をサポートする方法を紹介します。
WordPress は、デフォルトでは WebP 形式の画像のアップロードをサポートしていません。アップロードの問題を解決するには、現在のテーマの関数テンプレート function.php に次のコードを追加します。
function webp_filter_mime_types( $array ) { $array['webp'] = 'image/webp'; return $array; } add_filter( 'mime_types', 'webp_filter_mime_types', 10, 1 );
function webp_upload_mimes($existing_mimes) { $existing_mimes['webp'] = 'image/webp'; return $existing_mimes; } add_filter('mime_types', 'webp_upload_mimes');
WebP 形式で画像をアップロードできますが、メディア リストにサムネイルが表示されません。これは、WordPress が wp_generate_attachment_metadata() 関数を使用して画像データを生成するタイミングを決定するために file_is_displayable_image() 関数を使用するためです。ファイルが画像であるかどうかの判定結果がWebP画像ではないため、画像データの保存操作は中断されます。
この関数は次の場所にあります: wp-admin/includes/image.php Expand
解決策は、テーマのfunctions.phpに次のコードを追加することです:
function webp_file_is_displayable_image($result, $path) { $info = @getimagesize( $path ); if($info['mime'] == 'image/webp') { $result = true; } return $result; } add_filter( 'file_is_displayable_image', 'webp_file_is_displayable_image', 10, 2 );
function webp_is_displayable($result, $path) { if ($result === false) { $displayable_image_types = array( IMAGETYPE_WEBP ); $info = @getimagesize( $path ); if (empty($info)) { $result = false; } elseif (!in_array($info[2], $displayable_image_types)) { $result = false; } else { $result = true; } } return $result; } add_filter('file_is_displayable_image', 'webp_is_displayable', 10, 2);
本文中のイラストは WebP 画像です。Qiniu、Youpaiyun、Alibaba Cloud oss、Tencent Cloud cos などは現在 WebP をサポートしていますが、Apple デバイスは IOS バージョンの WeChat を含む WebP 画像をサポートしていないことがわかりました。これも可能性があります。 WordPress が WebP 画像をサポートしていないためです。
以上がWordPress で WebP 形式の画像をサポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。