avatar

tetsai

原创声明

本文由tetsai原创,转载请注明来源

网上是找不到解决方法的,都是天下文章一般抄,什么function.php添加

//enable upload for webp image files. function webp_upload_mimes($existing_mimes) { $existing_mimes['webp'] = 'image/webp'; return $existing_mimes; } add_filter('mime_types', 'webp_upload_mimes'); //enable preview / thumbnail for webp image files. function webp_is_displayable($result, $path) { if ($result === false) { $displayable_image_types = array( "image/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图片,但是图库是显示不出来的

我跟踪了代码,以下是我的跟踪轨迹:

includes里的class-wp-media-list-table.php文件找到<span class="media-icon <?php echo sanitize_html_class( $mime . '-icon' ); ?>"><?php echo $thumb; ?></span>,判断它是媒体库加载列表 $thumb用了wp_get_attachment_image 函数获取了img代码,然后继*层层跟踪 -> image_hwstring(wp_get_attachment_image_src) ->image_downsize ->image_get_intermediate_size ->wp_get_attachment_metadata ->get_post_meta ->get_metadata

跟到后面就烦了,索性就改image_hwstring吧,只要图片像素不是1x1就好了!

打开include目录了的media.php,修改

function image_hwstring( $width, $height ) { $out = ''; if ( $width ) { $out .= 'width="' . intval( $width ) . '" '; } if ( $height ) { $out .= 'height="' . intval( $height ) . '" '; } return $out; }

改成

function image_hwstring( $width, $height ) { $out = ''; if(!($width==1&&$height==1)){ if ( $width ) { $out .= 'width="' . intval( $width ) . '" '; } if ( $height ) { $out .= 'height="' . intval( $height ) . '" '; } } return $out; }

效果如图:

能够正常显示了~

不足之处:

这种显示方式暂时还不能正常显示,如果能继***下去,也许能找到方法吧

发表评论

电子邮件地址不会被公开。 必填项已用*标注