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