ホームページ  >  記事  >  CMS チュートリアル  >  WordPress で WebP 形式の画像をサポートする方法

WordPress で WebP 形式の画像をサポートする方法

藏色散人
藏色散人転載
2020-11-05 16:16:412948ブラウズ

次のコラム WordPress チュートリアル では、WordPress で WebP 形式の画像をサポートする方法を紹介します。

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 サイトの他の関連記事を参照してください。

声明:
この記事はzmingcx.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。