WordPress教程

限制 WordPress 用户上传图片尺寸大小

阿里云

WordPress 多用户站点,文章作者上传图片时图省事,直接上传未经过任何压缩处理的原始图片,几 M 的文件,不仅占用空间,而且影响加载速度。可以通过下面的代码限制上传的尺寸,当上传图片超出尺寸限制时,会抛出最大图片尺寸的错误提示。代码添加到当前主题函数模板 functions.php 中:

按图片尺寸限制

也想出现在这里?联系我们
创客主机
  1.     add_action( 'admin_init', 'zm_wp_limit_image_upload_size' );
  2.  
  3.     function zm_wp_limit_image_upload_size() {
  4.     	// 排除管理员
  5.     	if( ! current_user_can( 'administrator' ) )
  6.     		add_filter( 'wp_handle_upload_prefilter', 'zm_limit_image_upload_size' ); 
  7.     }
  8.  
  9.     function zm_limit_image_upload_size( $file ) {
  10.     	// Mime type with dimensions, check to exit earlier
  11.     	$mimes = array( 'image/jpeg', 'image/png', 'image/gif' );
  12.  
  13.     	if( !in_array( $file['type'], $mimes ) )
  14.     		return $file;
  15.  
  16.     	$img = getimagesize( $file['tmp_name'] );
  17.     	$maximum = array( 'width' => 500, 'height' => 700 );
  18.  
  19.     	if ( $img[0] > $maximum['width'] )
  20.     		$file['error'] = '图片太大。 最大宽度为 ' . $maximum['width'] . 'px. 上传的图片宽度为 ' . $img[0] . 'px';
  21.  
  22.     	elseif ( $img[1] > $maximum['height'] )
  23.     		$file['error'] = '图片太大。 最大高度为' . $maximum['height'] . 'px. 上传的图片高度为' . $img[1] . 'px';
  24.     	return $file;
  25.     }

默认排除管理员。

按图片文件大小限制

  1.     function zm_limit_image_size($file) {
  2.     	// 以 KB 计算图像大小
  3.     	$image_size = $file['size']/1024;
  4.  
  5.     	// 限制文件大小以 KB 为单位
  6.     	$limit = 200;
  7.  
  8.     	// 检查它是否是图像
  9.     	$is_image = strpos($file['type'], 'image');
  10.  
  11.     	if ( ( $image_size > $limit ) && ($is_image !== false) )
  12.     		$file['error'] = '你的图片太大了。 必须小于 '. $limit .'KB';
  13.  
  14.     	return $file;
  15.  
  16.     }
  17.     add_filter('wp_handle_upload_prefilter', 'zm_limit_image_size');

限制 WordPress 用户上传图片尺寸大小

已有 237 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!