代码实现WordPress上传图片尺寸

手册/FAQ (460) 2015-08-05 14:02:40

  WordPress站点更新博客类文章插件图片可以增加用户的体验,但有时候我们上传的图片可能有大有小,不是很美观和谐。那么,怎样来限制上传图片的尺寸,确保图片打开的大小都是一样的呢?或许首先想到的就是利用插件,当然可以。不过总是安装插件的话会导致对服务器的压力,最好的方法就是利用代码来实现。

 

  实现代码如下:

 

  add_action( 'admin_init', 'block_authors_from_uploading_small_images' );

  function block_authors_from_uploading_small_images(){

  //除管理员以外,其他用户都限制

  if( !current_user_can( 'manage_options') )

  add_filter( 'wp_handle_upload_prefilter', 'block_small_images_upload' );

  }

  function block_small_images_upload( $file ){

  // 检测文件的类型是否是图片

  $mimes = array( 'image/jpeg', 'image/png', 'image/gif' );

  // 如果不是图片,直接返回文件

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

  return $file;

  $img = getimagesize( $file['tmp_name'] );

  // 设置最小宽度和高度

  $minimum = array( 'width' => 640, 'height' => 480 );

  if ( $img[0] < $minimum['width'] )

  $file['error'] =

  '图片太小了,最小宽度是 '

  . $minimum['width']

  . 'px,当前上传的图片宽度是 '

  . $img[0] . 'px';

  elseif ( $img[1] < $minimum['height'] )

  $file['error'] =

  '图片太小了,最小高度是 '

  . $minimum['height']

  . 'px,当前上传的图片高度是 '

  . $img[1] . 'px';

  return $file;

  }

 

  将上面的代码插入WordPress主题目录文件名functions.php中即可。

THE END