影象和其他媒體檔案是任何WordPress網站的重要組成部分。要有效地使用它們,有助於牢牢掌握WordPress媒體庫的工作原理。
這個方便的WordPress功能使您能夠 隨著時間的推移儲存和管理您的影象和其他媒體。通過一些內幕知識和一些簡單的技巧,您可以通過媒體庫做很多事情來改進您的網站。
在本綜合指南中,我們將帶您瞭解有關WordPress媒體庫的所有資訊,包括如何匯入和下載內容。我們還將介紹影象編輯、長期檔案管理和四個用於合併高階功能的技巧。
WordPress媒體庫簡介
就其核心而言,您的WordPress媒體庫正如其名稱所暗示的那樣:您上傳到網站的所有媒體檔案的目錄:
WordPress媒體庫
WordPress能夠託管多種型別的媒體,包括:
- 影象(.jpg、.jpeg、.png、.gif、。webp和.ico)。
- 音訊檔案(.mp3、.m4a、.ogg和.wav)。
- 視訊(.mp4、.m4v、.mov、.wmv、.avi、.mpg、.ogv、.3gp和.3g2)。
- PDF檔案。
- Word文件。
- Excel電子表格。
- PowerPoint簡報。
- Adobe Photoshop文件。
它還具有一些有限的照片編輯功能,因此您可以直接從儀表板根據需要進行調整。
要訪問您的媒體庫,只需隨時單擊管理側欄中的媒體 :
訪問WordPress媒體庫
這裡有一些基本選項可用。
首先,您可以通過單擊相關圖示來確定是否要在列表或網格檢視中檢視您的檔案:
WordPress媒體庫檢視選項
您還可以使用下拉選單過濾檔案:
過濾WordPress媒體庫檔案
第一個選單使您可以按型別檢視媒體,而第二個選單將按上傳日期過濾您圖書館的內容。
您還可以使用搜尋欄按名稱查詢特定檔案:
WordPress媒體庫搜尋欄
最後,還有一個批量選擇按鈕。此功能可讓您一次從WordPress安裝中刪除多個檔案:
WordPress媒體庫中的批量選擇選項
這涵蓋了WordPress媒體庫螢幕中可用的所有本機功能。
正如您稍後將看到的,您可以進行許多修改來增強它。但是,首先,我們需要討論如何將檔案新增到WordPress。
如何將檔案新增到WordPress媒體庫
您可以通過幾種不同的方式將檔案(例如您網站的收藏夾圖示)新增到您的WordPress媒體庫。首先是導航到媒體> 新增新檔案:
訪問WordPress媒體上傳器
在這裡,您可以上傳儲存在計算機或其他裝置上的檔案:
WordPress媒體上傳器
您還可以直接從WordPress編輯器新增媒體。在區塊編輯器中,首先為要合併的媒體型別新增相應的區塊:
WordPress媒體區塊
在生成的佔位符中,選擇上傳並從您的計算機中選擇一個檔案:
從區塊編輯器上傳媒體
或者,您可以簡單地將檔案從桌面拖放到相關塊中。
在經典編輯器中,您需要單擊新增媒體按鈕:
經典編輯器新增媒體按鈕
然後導航到“上傳” 選項卡並從您的計算機中選擇一個檔案:
從經典編輯器上傳媒體
您還可以隨時將檔案從桌面直接拖放到編輯器中。
在某些情況下,您可能會發現需要通過FTP手動將媒體檔案上傳到WordPress站點。您可以使用諸如FileZilla之類的客戶端來執行此操作。
連線到伺服器後,導航到wp-content > uploads:
通過FileZilla將檔案上傳到WordPress媒體庫目錄
將檔案上傳到此目錄以將它們新增到您的媒體庫。
從WordPress媒體庫下載內容
在某些情況下,您可能需要將檔案從媒體庫下載到計算機上。WordPress使您可以通過導航到工具 > 匯出來本地執行此操作:
WordPress匯出工具
然後選擇媒體選項。如果您只需要在特定時間範圍內上傳的檔案,您可以使用下拉選單來指定您的請求:
匯出WordPress媒體
最後,單擊“下載匯出檔案”按鈕。這會將相關媒體檔案下載到您的計算機。
如何在WordPress媒體庫中編輯影象
正如我們之前提到的,WordPress具有一些原生影象編輯功能。要訪問它們,請導航到您的 WordPress 媒體庫並選擇要編輯的檔案。然後,單擊“編輯影象” 按鈕:
WordPress中的“編輯影象”按鈕
這將開啟影象編輯器:
WordPress影象編輯器
您可以進行五種基本編輯:
裁剪使您能夠剪下影象的某些部分:
WordPress中的影象裁剪
旋轉影象會將其逆時針或順時針旋轉90度:
影象在WordPress中向左旋轉
翻轉影象將垂直或水平反映它:
WordPress中的影象水平翻轉
其他三個設定在側邊欄中。第一個使您能夠通過拉伸來更改影象的大小。只需輸入所需的高度或寬度,另一個欄位將自動填充。然後點選拉伸按鈕:
在WordPress中拉伸影象
請務必注意,在WordPress中調整影象大小有時會對它們的質量產生負面影響。
此外,您只能拍攝大影象並將其縮小。您無法將影象放大到更大的尺寸!
要裁剪影象以使其具有特定的縱橫比或尺寸,您可以使用影象裁剪下的長寬比和選區欄位:
在WordPress中設定影象裁剪選擇尺寸
最後,如果您希望保留現有的影象縮圖,您可以使用縮圖設定。只需選擇要應用更改的影象版本的單選按鈕:
WordPress影象編輯器中的縮圖設定
WordPress的預設影象編輯很有用,但也很有限。它不會取代您可能用於進行更廣泛修改的任何軟體,尤其是在您執行攝影網站或照片部落格時。
瞭解WordPress媒體庫錯誤
不幸的是,發生了WordPress錯誤。WordPress媒體庫也不例外。
通常出現的一個問題是未指定的“HTTP錯誤” ,當您從編輯器中上傳新檔案時可能會出現該錯誤:
媒體上傳的HTTP錯誤
通常,您只需等待此錯誤消失並在幾分鐘後再次嘗試上傳。如果HTTP錯誤再次出現,則可能是您的WordPress會話已過期。您需要重新登入 ,然後重試上傳。
一些使用者面臨的另一個問題是媒體庫無法載入。這通常是由於與您的外掛和/或主題衝突。要解決此錯誤,請嘗試停用所有外掛並切換到WordPress預設主題。
如果您的媒體庫再次正確載入,您需要進一步解決外掛衝突問題以永久解決問題。
有時,當您開始通過媒體庫上傳檔案時,可能會遇到“上傳:無法將檔案寫入磁碟”錯誤。通常,當您的上傳目錄設定為不可寫時,會出現此問題。您可以通過WordPress 的站點健康工具檢查您的檔案系統許可權 。
長期媒體庫管理
到目前為止,當涉及到媒體庫時,我們只專注於WordPress的本機功能。但是,隨著時間的推移使用此功能,您可能會遇到一些需要外部解決方案幫助的問題。
例如,您新增的檔案越多,您的WordPress媒體庫就越雜亂無章。除了本文開頭討論的搜尋和過濾選項之外,WordPress並沒有為處理不規則的媒體提供太多幫助。
但是,有一些外掛可以讓您將媒體檔案排列到資料夾中。
WordPress Media Library Folders外掛是最受歡迎的選項:
WordPress外掛-WordPress Media Library Folders
除了使您能夠建立媒體資料夾外,該外掛還與MaxGalleria整合, 讓您可以直接從媒體庫建立圖片庫:
WordPress外掛-WordPress Gallery MaxGalleria
升級到WordPress Media Library Folders Pro提供了與NextGEN Gallery外掛和Advanced Custom Fields的額外整合。它還使您能夠建立類別和標籤以進一步組織您的檔案。
WordPress缺乏的另一個功能是用新版本替換媒體檔案的能力。由於這些型別的檔案可能非常大,因此您不想在需要更新內容時簡單地繼續新增新檔案。
這意味著在上傳新檔案後,您需要找到舊版本並將其刪除。您可以通過使用Enable Media Replace為ShortPixel直接替換舊影象來節省一些時間:
WordPress外掛-Enable Media Replace
使用此外掛,您還可以替換指向舊檔案的所有連結。這有助於避免整個站點中出現損壞的媒體。
Real Media Library是另一個值得一試的資料夾和檔案管理器,讓您的檔案管理變得輕而易舉。
WordPress外掛-Real Media Library
多虧了它,您可以直接在WordPress中處理大量檔案,例如圖片、視訊和文件。很高興知道:Real Media Library有 12 種語言版本。如果免費版本不足以滿足您的需求,他們還提供具有更多功能的購買PRO版本。
4個WordPress媒體庫小技巧
WordPress媒體庫可以處理站點管理員的大多數常見要求。但是,WordPress提供了許多功能和鉤子,使使用者能夠增強媒體庫的特定功能,而無需使用第三方外掛。讓我們通過四個實際示例深入瞭解這些函式和鉤子。
1. 將自定義後設資料新增到附件文章型別
每當您上傳媒體檔案時,WordPress都會生成一個附件文章型別。
就像任何其他文章型別一樣,附件在wp_posts表中註冊,它們各自的後設資料可以在資料庫的wp_postmeta表中找到:
預設附件詳細資訊面板
wp_posts表儲存包括資料POST_CONTENT(附件描述),post_excerpt(附件說明),post_author,POST_TITLE,post_status,和post_mime_type。
wp_postmeta表儲存任何型別的後設資料,如附加的檔案URL,影象尺寸和MIME型別,以及可交換影象檔案格式(EXIF)和國際報業電信委員會(IPTC)的後設資料。
您可能偶爾需要向附件新增自定義後設資料,例如文件作者的姓名、關聯的URL或照片的拍攝位置。向附件新增元欄位與向帖子新增元欄位有點不同,需要特定的鉤子和函式。
首先,您需要將所有必要的自定義欄位新增到“編輯媒體” 螢幕。您可以通過wp-admin/includes/media.php中的attachment_fields_to_edit過濾器過濾可用附件欄位來完成此任務。
function media_hacks_attachment_field_to_edit( $form_fields, $post ){ // https://codex.wordpress.org/Function_Reference/wp_get_attachment_metadata $media_author = get_post_meta( $post->ID, 'media_author', true ); $form_fields['media_author'] = array( 'value' => $media_author ? $media_author : '', 'label' => __( 'Author' ) ); return $form_fields; } add_filter( 'attachment_fields_to_edit', 'media_hacks_attachment_field_to_edit', 10, 2 );
該函式有兩個引數: 表單欄位的$form_fields陣列和$post物件。首先,get_post_meta檢索現有的“media_author” 值,然後將“media_author” 元素新增到$form_fields 陣列中。
最後,回撥返回$form_fields (參見Gist上的程式碼)。
這將在“編輯媒體” 頁面上顯示一個新欄位,您可以通過從媒體庫中選擇相關影象並單擊“編輯更多詳細資訊”連結來訪問該欄位:
訪問WordPress編輯媒體頁面
在結果螢幕上,您將在底部看到新的自定義後設資料欄位:
新的“作者”後設資料欄位
下一步是儲存使用者輸入。您可以通過將新函式掛鉤到edit_attachment動作來完成此操作:
function media_hacks_edit_attachment( $attachment_id ){ if ( isset( $_REQUEST['attachments'][$attachment_id]['media_author'] ) ) { $media_author = $_REQUEST['attachments'][$attachment_id]['media_author']; update_post_meta( $attachment_id, 'media_author', $media_author ); } } add_action( 'edit_attachment', 'media_hacks_edit_attachment' );
這個函式只保留一個引數: 當前媒體檔案的$attachment_id。首先,該函式檢查是否已傳送自定義元欄位的有效值。然後它通過update_post_meta函式註冊該值(參見Gist上的程式碼)。
現在,您可以通過get_post_meta函式檢索“media_author”值:
$media_author = get_post_meta( $post->ID, 'media_author', true );
之後,您可以在前端的任何位置顯示它。
2. 在編輯媒體螢幕中顯示EXIF和IPTC後設資料
WordPress自動儲存JPEG和TIFF mime型別的擴充套件後設資料。現在您知道如何通過media.php將欄位新增到“編輯媒體”螢幕,您可以顯示此資料。
要完成此任務,您必須按如下方式更改第一個回撥函式:
function media_hacks_attachment_fields_to_edit( $form_fields, $post ){ // get post mime type $type = get_post_mime_type( $post->ID ); // get the attachment path $attachment_path = get_attached_file( $post->ID ); // get image metadata $metadata = wp_read_image_metadata( $attachment_path ); if( 'image/jpeg' == $type ){ if( $metadata ) { $exif_data = array( 'aperture' => 'Aperture', 'camera' => 'Camera', 'created_timestamp' => 'Timestamp', 'focal_length' => 'Focal Length', 'iso' => 'ISO', 'shutter_speed' => 'Exposure Time', 'orientation' => 'Orientation' ); foreach ( $exif_data as $key => $value ) { $exif = $metadata[$key]; $form_fields[$key] = array( 'value' => $exif ? $exif : '', 'label' => __( $value ), 'input' => 'html', 'html' => "ID][$exif]' value='" . $exif . "' /> ); } } } return $form_fields; } add_filter( 'attachment_fields_to_edit', 'media_hacks_attachment_fields_to_edit', 10, 2 );
此程式碼段使用以下WordPress功能:
- get_post_mime_type 根據ID檢索附件的MIME型別。
- get_attached_file 根據ID檢索附加檔案路徑。
- wp_read_image_metadata 獲取EXIF或IPTC後設資料(如果可用)。
如果影象mime型別是“image/jpeg”,並且如果後設資料存在,則宣告所需後設資料的陣列,併為陣列中的每個元素建立一個表單欄位:
WordPress附件詳細資訊中的EXIF和IPTC後設資料欄位
這個例子的表單欄位有點複雜,因為我們正在為‘html’表單元素設定一個值(參見Gist上的程式碼)。您不需要儲存EXIF和IPCT後設資料,因為WordPress在上傳影象時會自動將它們儲存到wp_postmeta表中。
3. 在前端顯示擴充套件後設資料
在後端為自己提供所有這些資訊很有用。但是,如果您還想在前端顯示媒體檔案的擴充套件後設資料,則需要做更多的修改。
為此,您可以使用wp-admin/includes/post.php中的the_content 過濾器將此資訊附加到附件描述中,如下所示:
function media_hacks_the_content( $content ){ global $post; if( is_attachment() && 'image/jpeg' == get_post_mime_type( $post->ID ) ) { $fields = wp_get_attachment_metadata( $post->ID ); $meta = $fields['image_meta']; if( ! empty( $meta['camera'] ) ){ $custom_content = " <ul> <li>Camera: {$meta['camera']}</li> <li>Created timestamp: {$meta['created_timestamp']}</li> <li>Aperture: {$meta['aperture']}</li> <li>Focal length: {$meta['focal_length']}</li> <li>ISO: {$meta['iso']}</li> <li>Shutter speed: {$meta['shutter_speed']}</li> <li>Orientation: {$meta['orientation']}</li> </ul>"; $content .= $custom_content; } } return $content; } add_filter( 'the_content', 'media_hacks_the_content' );
此處 呼叫wp_get_attachment_metadata函式。如果當前文章型別為“附件”,並且當前 mime 型別為“image/jpeg”,則檢索可用影象後設資料並用於構建欄位的無序列表,該列表附加到文章內容。
回撥函式返回$content (請參閱Gist上的此程式碼):
附件頁面上顯示的EXIF和IPTC後設資料
在上方,您可以看到新的附件文章,後設資料附加到說明中。
4. 釋出照片檔案
開箱即用,WordPress不顯示附件檔案。發生這種情況是因為附件帖子型別的has_archive選項設定為false。
此外,雖然$query物件的預設post_status引數設定為“publish”,但預設附件post_status設定為“inherit”。這意味著除非我們將查詢post_status明確設定為“inherit”或“any”,否則檔案中不會顯示任何附件( 有關更多資訊,請參閱WP_Query型別引數)。
話雖如此,為了顯示影象檔案,您必須定義兩個函式。第一個函式過濾指定文章型別的引數,並將附件has_archive屬性設定為true:
function media_hacks_register_post_type_args( $args, $post_type ){ if( $post_type == 'attachment' ){ $args['has_archive'] = true; } return $args; } add_filter( 'register_post_type_args', 'media_hacks_register_post_type_args', 10, 2 );
第二個函式為post_mime_type和post_status查詢變數設定自定義值:
function media_hacks_pre_get_posts( $query ){ if ( !is_admin() && $query->is_main_query() ) { if( is_post_type_archive('attachment') ){ $query->set('post_mime_type', 'image/jpeg'); $query->set( 'post_status', 'inherit' ); } } } add_action( 'pre_get_posts', 'media_hacks_pre_get_posts' );
該函式與pre_get_posts動作鉤子掛鉤,該鉤子在建立查詢之後但在執行之前觸發。在$query物件是按引用傳遞,而不是價值,這也就意味著當前例項任何改變$query會影響原來的$query物件。
出於這個原因,驗證您要更改哪個查詢很重要(請參閱Gist上的此程式碼)。然後,如果您在瀏覽器中輸入https://yourdomain.com/?post_type=attachment,您應該會看到一個JPEG影象存檔:
WordPress媒體檔案
所有這些hack的完整程式碼都可以作為公共Gist中的外掛獲得,我們已經通過本節連結到了它。您可以將其下載為.zip 檔案並將其上傳到您的WordPress網站以實施所有這四種技巧,而無需手動編輯您的檔案。
評論留言