利用wordpress搭建的站点可以上传图片,如果站点开放了用户注册,除了管理员自己外其他人也就可以上传图片。有时候为了省事站长会直接上传原图,如果没有对上传图片的尺寸大小做限制,用户也会直接上传原图,这样就会带来问题。大量的大图不仅会占用服务器空间,同时也会影像网页的加载速度。所以最好的解决办法还是要对Wordpress限制下图片上传尺寸和大小。那应该如何操作呢?今天17站长网就来给大家分享下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”,可以对文件大小和尺寸进行限制,可以在后台搜索并安装。

插件地址:https://cn.wordpress.org/plugins/wp-image-size-limit/