WordPress限制用户上传图片尺寸的方法

有些网站开放了用户注册,这样就能让其他人注册账号发布文章,但是这样就会带来新的问题,用户在发布文章的时候上传的图片尺寸可能会太大,给网页的加载带来了负面影响,甚至严重拖累服务器运行。那么 WordPress 怎么限制用户上传的图片尺寸呢?主题巴巴今天就来给大家分享下WordPress系统限制用户上传图片尺寸大小的方法,帮助大家解决这个问题。

WordPress限制用户上传图片尺寸的方法:

大家可以将下列代码复制进当前主题的 function.php 中,代码的含义是按照图片的尺寸进行限制,已经排除掉了管理员的限制。

add_action( ‘admin_init’, ‘zm_wp_limit_image_upload_size’ );

function zm_wp_limit_image_upload_size() {
// 排除管理员
if( ! current_user_can( ‘administrator’ ) )
add_filter( ‘wp_handle_upload_prefilter’, ‘zm_limit_image_upload_size’ );
}

function zm_limit_image_upload_size( $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’ => 500, ‘height’ => 700 );

if ( $img[0] > $maximum[‘width’] )
$file[‘error’] = ‘图片太大。 最大宽度为 ‘ . $maximum[‘width’] . ‘px. 上传的图片宽度为 ‘ . $img[0] . ‘px’;

elseif ( $img[1] > $maximum[‘height’] )
$file[‘error’] = ‘图片太大。 最大高度为’ . $maximum[‘height’] . ‘px. 上传的图片高度为’ . $img[1] . ‘px’;
return $file;
}

 

如果想按照图片文件占用大小的限制,代码如下。

function zm_limit_image_size($file) {
	// 以 KB 计算图像大小
	$image_size = $file['size']/1024;
 
	// 限制文件大小以 KB 为单位
	$limit = 200;
 
	// 检查它是否是图像
	$is_image = strpos($file['type'], 'image');
 
	if ( ( $image_size > $limit ) && ($is_image !== false) )
		$file['error'] = '你的图片太大了。 必须小于 '. $limit .'KB';
 
	return $file;
 
}
add_filter('wp_handle_upload_prefilter', 'zm_limit_image_size');

如果嫌改代码太麻烦或者怕出问题,可以选择通过使用插件来解决,推荐一个叫作“WP Image Size Limit”的插件,可以对文件大小和尺寸进行限制,可以在自己的WP管理后台搜索并安装。

微信扫码咨询
微信扫码咨询
特惠: ¥499元加入终身会员下载所有主题 现在加入
中秋促销: 主题199元起 / 会员400元起 现在加入