Wordpress外贸建站教程:限制用户上传图片的大小

继续分享wordpress外贸建站教程。悦然跨境出海一直建议网站不要上传太大的图片,如果你的网站只是你自己在管理,那么管好自己就可以了,可如果你的网站还有其他用户可以上传图片,那么其他用户在上传图片时可能并不会按照要求上传,所以我们可以对其他用户进行一些限制。

悦然跨境出海找到如下两段代码,可以分别限制图片上传的像素尺寸和大小。

限制像素尺寸

        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');

使用方法

把上面的代码添加到当前wordpress建站主题的functions.php文件中即可,也可以添加到wpcode或Code Snippets插件中。

如果这篇内容对您有帮助,请给个五星哦!
[总计评分: 1 平均: 5]
购物车
优惠劵
搜索