詳解如何禁用WordPress自動生成的不同尺寸的圖片

您可能知道,WordPress為通過媒體庫上傳的所有圖片創建了大量副本。這些附加圖像會根據您的設置和其他因素生成各種尺寸的圖像。一般來說,這可能完全沒問題,但是如果您在站點上使用大量圖片,但您的站點沒有使用所有尺寸的圖像,那多余的文件會占用您的磁盤空間。因此,為幫助您節省資源,消除浪費并保持運行狀態盡可能輕巧,本文詳細說明了禁用所有WordPress默認(或自定義)自動生成的圖像。

了解如何禁用任何/所有WordPress自動生成的圖像以為您的網站實現理想的配置。

先來看一個例子

為了更好地了解正在發生的事情及其重要性,我們將以我們的一個真實的網站作為例子。這個網站是我喜歡發布奇怪/啟發/發現圖像的地方。到目前為止,已經通過WP 媒體庫將800多個圖像上傳到該站點。因此,如果我沒有采取措施阻止WordPress自動生成每個圖像的多個副本,那么800個數字將更像數千個圖像

具體算一下

因此,以我們這個網站為例,讓我們做一些快速數學運算。我們有一個WordPress網站,其中包含800張原始圖片,每張圖片平均大小約為2MB。因此,總共800張原始圖像的總體積約為1,600 MB或1.6 GB。現在,讓我們讓WordPress完成其工作,并為每個圖像創建各種尺寸的額外副本。從WordPress 5.3版開始,WordPress為通過媒體庫上傳的每個圖像創建以下額外圖像:

圖片尺寸外型尺寸
縮略圖( Thumbnail )(大小取決于媒體設置。默認為 150像素)
中等大小( Medium )(大小取決于媒體設置。默認為300像素)
大尺寸( Large )(大小取決于媒體設置。默認為1024像素)
中大尺寸( Medium Large )768像素
2x中大尺寸( 2x Medium Large )1536像素
2x大尺寸( 2x Large )2048像素
縮放( Scaled )2560像素

好了,現在我們對所有生成的圖像的實際文件大小有所了解,讓我們考慮一下800個原始圖像中每個圖像重約1.5MB至2MB的平均情況。結果大致如下:

圖片尺寸外型尺寸文件大小總大小
縮略圖( Thumbnail )(大小取決于媒體設置)10KB8MB
中等大小( Medium )(大小取決于媒體設置)20KB16MB
大尺寸( Large )(大小取決于媒體設置)100KB80MB
中大尺寸( Medium Large )768像素50KB40MB
2x中大尺寸( 2x Medium Large )1536像素200KB160MB
2x大尺寸( 2x Large )2048像素400KB320MB
縮放( Scaled )2560像素500KB400MB

我們將最右邊的列進行相加,總共可以得到1024MB或1.024 GB!考慮到整個WordPress核心的重量不到50MB,加上一堆插件和主題仍然不到幾百兆字節。因此,相對于整個網站而言,所有這些額外映像所需的磁盤空間量相當大。

這只是一個只有800張圖片的典型網站;一些站點使用了很多,更不用說高分辨率圖像和比以前計算中使用的平均數大得多的圖像了。因此,很容易理解,如果不檢查WordPress生成的圖像,則所需的磁盤空間量確實會增加

但是,還不僅如此

到目前為止,WordPress已經為每個原始上傳的圖像生成了七個尺寸的圖像。但這還不是所有可能生成的額外圖像。因為有些主題和插件,可以通過以下WordPress核心函數創建更多圖像尺寸:

  • set_post_thumbnail_size() —為“特色圖片”創建自定義尺寸
  • add_image_size() —創建任何指定大小的額外圖像

例如,名為“ Twenty Fifteen ”的WordPress默認主題添加了另一個額外生成的圖像:

set_post_thumbnail_size( 825, 510, true );

因此,在服務器上,一個額外的圖像,加上其他七個默認生成的圖像,再加上原始圖像,看起來像這樣:

除了WordPress生成的七個額外圖像之外,您的主題還可以添加額外的圖像,如此處顯示的“ Twenty Fifteen ”主題所示。

總結一下: WordPress 為每個上傳的圖像至少生成7個額外的圖像尺寸。然后根據您的主題和插件,還可以創建任意數量的其他圖像大小。對于某些網站,這很有用或沒什么大不了的;但是對于其他網站,這可能是完全沒有必要的,最糟糕的是浪費了很多磁盤空間。

解決方案:禁用不需要的圖像尺寸

以上情況只是說明這一點的一個示例。圖像總體積或多或少取決于圖像、媒體設置、主題和插件功能等。幸運的是,我很多年前就禁用了多余的WordPress圖像尺寸,因此我能夠避免自己站點上的大量磁盤占用。

那么解決方案是什么?如何管理所有這些額外的圖片并節省磁盤空間?訣竅是了解如何禁用每個額外的圖像大小,因此您可以添加所需的代碼以禁用(或自定義)不需要的尺寸。以下是控制它們的神奇方法

  • 禁用縮略圖大小
  • 禁用中等大小
  • 禁用大尺寸
  • 禁用中大尺寸
  • 禁用2x中大尺寸
  • 禁用2倍大尺寸
  • 禁用縮放
  • 禁用其他尺寸

注意:請勿禁用主題所需的任何圖像尺寸,否則主題將不能正常顯示布局!

禁用縮略圖大小

要禁用縮略圖尺寸圖像的生成,請在“設置>媒體>圖像大小”下將“縮略圖大小”選項設置為“0”。設置為“0”將禁用此尺寸圖像的自動生成。設置為任何其他值可自定義大小而不是禁用大小。在WordPress后臺的設置菜單下,默認界面如下所示:

要禁用或自定義縮略圖大小,中等大小和大尺寸圖像,請在WP管理區域中訪問此界面。
輸入“0”(不帶引號)以禁用任何/所有這些額外尺寸的圖像。

或者,如果您希望以代碼方式禁用縮略圖大小的圖像,則可以將以下代碼段添加到主題中functions.php

function shapeSpace_disable_thumbnail_images($sizes) {

	unset($sizes['thumbnail']); // disable thumbnail size
	return $sizes;

}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_thumbnail_images');

提示:如以下某些技術所示,上述技術可用于禁用其他圖像尺寸。因此,您可以將一些禁用大小的代碼整合到一個代碼段中(如本文底部所示)。

禁用中等大小

要禁用中等尺寸圖像的生成,請在“設置>媒體>圖像大小”下將“中等大小”選項設置為“0”。設置為“0”將禁用此尺寸圖像的自動生成。設置為任何其他值可自定義大小而不是禁用大小。

或者,如果您希望通過編程方式禁用中型圖像,則可以將以下代碼段添加到主題中functions.php

function shapeSpace_disable_medium_images($sizes) {
	
	unset($sizes['medium']); // disable medium size
	return $sizes;

}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_images');

禁用大尺寸

要禁用大尺寸圖像的生成,請在“設置>媒體>圖像大小”下將“大尺寸”選項設置為“0”。設置為“0”將禁用此尺寸圖像的自動生成。設置為任何其他值可自定義大小而不是禁用大小。

或者,如果您希望以編程方式禁用大尺寸圖像,則可以將以下代碼段添加到主題中functions.php

function shapeSpace_disable_large_images($sizes) {
	
	unset($sizes['large']); // disable large size
	return $sizes;
	
}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_large_images');

禁用中大尺寸

要禁用“中大”尺寸的圖像,請在主題functions.php文件中添加以下代碼段:

function shapeSpace_disable_medium_large_images($sizes) {
	
	unset($sizes['medium_large']); // disable 768px size images
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_medium_large_images');

禁用2x中大尺寸

要禁用“2x中大”尺寸的圖像,請在主題functions.php文件中添加以下代碼段:

function shapeSpace_disable_2x_medium_large_images($sizes) {
	
	unset($sizes['1536x1536']); // disable 2x medium-large size
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_medium_large_images');

禁用2倍大尺寸

要禁用“ 2倍大”尺寸的圖像,請在主題functions.php文件中添加以下代碼段:

function shapeSpace_disable_2x_large_images($sizes) {
	
	unset($sizes['2048x2048']); // disable 2x large size
	return $sizes;
	
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_disable_2x_large_images');

禁用縮放

要禁用“縮放”圖像,請在主題functions.php文件中添加以下代碼段:

add_filter('big_image_size_threshold', '__return_false');

禁用其他尺寸

對于通過set_post_thumbnail_size()add_image_size() 生成的任何其他圖像,可以使用remove_image_size()。這是一個例子:

function shapeSpace_disable_other_images() {
	
	remove_image_size('post-thumbnail'); // disable set_post_thumbnail_size() 
	remove_image_size('another-size');   // disable other add image sizes
	
}
add_action('init', 'shapeSpace_disable_other_images');

關鍵是要知道要刪除的自定義圖像尺寸的名稱/標記。對于設定的文章縮略圖(即特色圖片),始終為post-thumbnail。對于通過添加圖像尺寸添加的其他圖像,名稱將根據您的主題或插件而有所不同。因此進行操作前,請首先檢查您的上傳目錄和/或主題功能文件,以確定正在生成的大小。有些主題會增加一堆額外的圖像尺寸,而有些則不會,這取決于主題。

多合一代碼段

以上是針對不同需求單獨的代碼示例,這里有一個“多合一”代碼段,它將上述所有技術組合并簡化為一個即插即用的代碼段:

// 禁用自動生成的圖片尺寸
function shapeSpace_disable_image_sizes($sizes) {
	
	unset($sizes['thumbnail']);    // disable thumbnail size
	unset($sizes['medium']);       // disable medium size
	unset($sizes['large']);        // disable large size
	unset($sizes['medium_large']); // disable medium-large size
	unset($sizes['1536x1536']);    // disable 2x medium-large size
	unset($sizes['2048x2048']);    // disable 2x large size
	
	return $sizes;
	
}
add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_image_sizes');

// 禁用縮放尺寸
add_filter('big_image_size_threshold', '__return_false');

// 禁用其他圖片尺寸
function shapeSpace_disable_other_image_sizes() {
	
	remove_image_size('post-thumbnail'); // disable images added via set_post_thumbnail_size() 
	remove_image_size('another-size');   // disable any other added image sizes
	
}
add_action('init', 'shapeSpace_disable_other_image_sizes');

該代碼段結合了禁用所有WordPress生成的圖像(僅保留原始上傳的圖像)所需的所有技術。唯一需要的編輯是針對最后一個函數,其中“其他”圖像尺寸被禁用;您可能需要在其中編輯字段名another-size以便匹配其他自定義尺寸,或者如果沒有其他尺寸,只需注釋掉或刪除該行。

提示:除了WordPress產生的所有其他圖像外,您可能還希望控制或禁用WordPress提供的所有額外的響應圖像功能。可以直接使用 Disable Responsive Images Complete 插件來進行設置,非常簡單。

總結

對于包含大量圖像的網站,控制WordPress圖像大小可能更為重要。但是,即使您的站點不時地僅上傳一些圖像,也要使文件盡可能簡單和輕巧,這可以創建一個更精簡、更快、更優化的WordPress驅動的網站。

參考出處: https://perishablepress.com/disable-wordpress-generated-images/

更多相關文章推薦:

倡萌

一個文科IT宅男,喜歡折騰WordPress和被它折騰 ^_^

3 條評論

  1. 上傳圖片,wp 提示 圖像后期處理失敗。如果這是一張照片或較大圖像,請將其縮小到2500像素并重新上傳,實際圖片已經上傳上去了,不知道如何處理,有人知道嗎?

    1. 的確挺煩的,所以我開發的主題都采用了靈活的縮略圖截取方式,減少縮略圖的產生,尤其是今年開發的新主題,都是采用直接緩存到指定的目錄,可以隨時刪除掉,然后自動生成,也可以允許用戶在布局主題的時候自由設置縮略圖尺寸和比例

發表評論