前陣子小編接到某客戶反饋,說是懷疑網站是不是被黑了,沒買多久的空間網站空間就用掉了 1.2G 多。當時小編也覺得奇怪,雖然客戶的 WordPress 網站是圖片站,不過小編看了下文章數量和每篇文章的圖片平均大小,應該佔用那麼多空間啊?當時覺得非常奇怪,正好前天好機油原始碼集合找小編更換友鏈的關鍵詞,小編突然想到原始碼以前曾經找過小編詢問過 WordPress 自動產生的縮圖佔用大量網站空間問題。小編立即登入客戶的空間檢視,果然是縮圖在作祟。 WordPress 在後臺寫文章時透過透過 「新增媒體」 上傳,或者直接在 「多媒體」 中上傳的圖片都會產生三個縮圖版本,原意是為了方便使用者快速的插入不同尺寸的縮圖。

那麼如何解決 WordPress 自動生成縮圖從而佔用大量網站空間容量的問題呢?其實只需要一段程式碼即可:

function wxd_remove_image_size($sizes) {
                unset( $sizes['small'] );
                unset( $sizes['medium'] );
                unset( $sizes['large'] );
                return $sizes;
        }
        add_filter('image_size_names_choose', 'wxd_remove_image_size');

將以上程式碼加入到主題的 functions.php 檔案即可刪除 WordPress 自帶的縮圖版本,這樣一來以後上傳的圖片就不會產生縮圖版本了,不過之前上傳的圖片的縮圖依舊存在,大家可以利用工具批次刪除。 (PS:三種縮圖可以按照自己的需求進行刪減。)

有些時候大家可能會用到固定尺寸的縮圖,這是時我們還可以自定義個固定尺寸的縮圖版本,程式碼如下:

if ( function_exists( 'add_image_size' ) ) {
    add_image_size( 'new-size', 300, 100, true ); //(設定尺寸)
}
add_filter('image_size_names_choose', 'wxd_image_sizes');
function wxd_image_sizes($sizes) {
        $addsizes = array(
                "new-size" => __( "固定縮圖")
                );
        $newsizes = array_merge($sizes, $addsizes);
        return $newsizes;
}