首页
  • /
  • WordPress 教程
  • /
  • 从媒体库上传源头限制图片尺寸,进一步优化WordPress网站的内容质量
从媒体库上传源头限制图片尺寸,进一步优化WordPress网站的内容质量
2018-04-29

在上一篇《从媒体库上传源头限制图片大小,优化WordPress网站的内容质量》文章中,偶米工作室介绍了如何使用WP Image Size Limit插件来限制媒体库上传的图片的大小,从而优化网站的质量。

随着移动互联网的进一步发展,很多企业找偶米工作室定制WordPress主题时 ,仅建设手机端的网站,根本不考虑PC端,其实呢,PC端对于企业展示来说还有必要的,但是以客户的要求出发,为客户提供最优质的建站服务。扯远了啊,回到主题,既然是只需要定制手机端的WordPress主题,那么网站就不需要使用比如1920宽度的图片了,那么直接使用媒体库的图片自动裁剪功能可以吗?

当然没问题!但是从客户的使用体验来说,这不是好的方式。那么,偶米工作室定制主题时是这么做的呢?在主题中集成图片尺寸检测的功能,如用户上传不满足要求的尺寸,则提醒用户图片不合规,禁止上传!

对于只有手机端而言的网站,如果你想禁止用户上传很大的图片,那么请将如下代码拷贝至function.php文件即可。下面的例子中,只允许用户上传宽度小于1200的图片。

add_action( 'admin_init', 'wpse_28359_block_authors_from_uploading_large_images' );

function wpse_28359_block_authors_from_uploading_large_images()
{
// if( !current_user_can( 'administrator') )
add_filter( 'wp_handle_upload_prefilter', 'wpse_28359_block_large_images_upload' );
}

function wpse_28359_block_large_images_upload( $file )
{
// Mime type with dimensions, check to exit earlier
$mimes = array( 'image/jpeg', 'image/png', 'image/gif' );

if( !in_array( $file['type'], $mimes ) )
return $file;

$img = getimagesize( $file['tmp_name'] );
$maximum = array( 'width' => 1200, 'height' => 9999 );

if ( $img[0] > $maximum['width'] )
$file['error'] =
'Image too large. Maximum width is '
. $maximum['width']
. 'px. Uploaded image width is '
. $img[0] . 'px.';

elseif ( $img[1] > $maximum['height'] )
$file['error'] =
'Image too large. Maximum height is '
. $maximum['height']
. 'px. Uploaded image height is '
. $img[1] . 'px.';

return $file;
}

说到这里,肯定又有朋友会问到,为了保证网站图片的质量,我不想用户上传太小的图片,怎么办呢?

这个好说啊,请将如下代码拷贝至function.php文件即可。下面的例子中,只允许用户上传宽度大于400且高度大于300的图片。

add_action( 'admin_init', 'wpse_28359_block_authors_from_uploading_small_images' );

function wpse_28359_block_authors_from_uploading_small_images()
{
// if( !current_user_can( 'administrator') )
add_filter( 'wp_handle_upload_prefilter', 'wpse_28359_block_small_images_upload' );
}

function wpse_28359_block_small_images_upload( $file )
{
// Mime type with dimensions, check to exit earlier
$mimes = array( 'image/jpeg', 'image/png', 'image/gif' );

if( !in_array( $file['type'], $mimes ) )
return $file;

$img = getimagesize( $file['tmp_name'] );
$minimum = array( 'width' => 400, 'height' => 300 );

if ( $img[0] < $minimum['width'] )
$file['error'] =
'Image too small. Minimum width is '
. $minimum['width']
. 'px. Uploaded image width is '
. $img[0] . 'px.';

elseif ( $img[1] < $minimum['height'] )
$file['error'] =
'Image too small. Minimum height is '
. $minimum['height']
. 'px. Uploaded image height is '
. $img[1] . 'px.';

return $file;
}

通过以上介绍,偶米工作室通过在主题中控制图片尺寸,来达到优化网站质量的目的,当然,更重要的目的是提升网站管理员的体验,确保上传符合条件的图片,来帮助用户创建精美的WordPress网站。

如果您不懂如何设置插件,或者需要在自己的网站中增加图片尺寸限制,或者需要定制WordPress主题,也可以联系偶米工作室,为您提供个性化的网站搭建服务。

相关知识