WordPress 限制上傳圖片的尺寸

WordPress Maximum Require Image

為了維護一個 WordPress 網站的品質,限制上傳圖片尺寸的大小,是一個必要的工作;圖片尺寸過大,影響網站開啟的速度,圖片尺寸過小,影響了圖片展現的品質。

當網頁設計師完成 WordPress 網站後,要交案給客戶後,爾後的文章更新的動作,都是客戶來執行的話,限制上傳圖片尺寸的大小,就是一個很重要的事情。

客戶可能無法了解一張圖片尺寸寬與高的像素 (pixels) 多少才適合,可能從相機拍攝後就直接上傳到網站,沒有先在 PC 美工軟體上做適當尺寸的擷取,5400 px X 5400 px 的照片就上傳 WordPress 媒體庫,日積月累下來,/ wp-content / uploads 裡的圖檔越來越大,網站 Load time 時間就越來越久。

網路上有的教法是用 php.ini 的 upload_max_filesize 設置來控制上傳圖片的檔案大小,如果客戶的網站單獨使用一台 VPS,這樣的方法是簡單可行。

如果一台 VPS 裡面有不同的客戶網站,php.ini 的配置是影響所有的網站,若 upload_max MB 設置太小,外掛都無法安裝;若 upload_max MB 設置太大,又沒有達到效果。

所以,使用 WordPress 佈景的 functions.php 文件來控制圖片尺寸的大小,是比較好的做法。

為了保證網站文章的質量,需要限制其用戶上傳圖片的最小及最大寬度和高度。將下面的代碼添加到當前主題的 functions.php 最後面即可:

添加前請先備份 functions.php 文件

最小及最大寬度和高度請依網站實際需求自行調整

/**
 * WordPress 限制上傳圖片的最小及最大的寬度和高度
 * https://yungke.me/wordpress-maximum-require-image-size/
 */
add_filter('wp_handle_upload_prefilter','mdu_validate_image_size');
function mdu_validate_image_size( $file ) {
    $image = getimagesize($file['tmp_name']);
    $minimum = array(
        'width' => '400',
        'height' => '400'
    );
    $maximum = array(
        'width' => '1600',
        'height' => '1600'
    );
    $image_width = $image[0];
    $image_height = $image[1];

    $too_small = "圖片尺寸太小。 最小尺寸是 {$minimum['width']} by {$minimum['height']} pixels. 上傳的圖片尺寸是 $image_width by $image_height pixels.";
    $too_large = "圖片尺寸太大。 最大尺寸是 {$maximum['width']} by {$maximum['height']} pixels. 上傳的圖片尺寸是 $image_width by $image_height pixels.";

    if ( $image_width < $minimum['width'] || $image_height < $minimum['height'] ) {
        // add in the field 'error' of the $file array the message 
        $file['error'] = $too_small; 
        return $file;
    }
    elseif ( $image_width > $maximum['width'] || $image_height > $maximum['height'] ) {
        //add in the field 'error' of the $file array the message
        $file['error'] = $too_large; 
        return $file;
    }
    else
        return $file;
}

該代碼會對用戶進行限制,如果上傳的圖片最小或最大寬度或高度達不到要求,就會限制上傳和進行提示,如下圖:

Minimum Upload Images

Mazimum Upload Images

參考資料:

How to Require a Minimum Image Dimension for Uploading

I need a way to restrict authors from uploading images bellow specific dimensions. Say I only want to allow uploading images that are at least 400px x 400px. ...

Limit image resolution on upload

I'm running into a problem where a particularly huge image is causing my VPS server to reboot because of memory issues. The configuration of this is out of my h...

Featured Photo by FelixMittermeier on pixabay

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!
Back to top