
WordPress 的媒體庫只能依日期和檔案類型篩選,圖片一多,要找某個產品、某次活動的照片就很辛苦。如果直接拿文章分類來用,分類清單又會跟文章混在一起。
用一段程式碼,就能替媒體庫加上一組獨立的「媒體分類」,跟文章分類完全分開。
程式碼
加到子主題的 functions.php,或用 Code Snippets 外掛新增。建議用 Code Snippets,之後換主題,分類功能也不會跟著消失:
PHP
add_action( 'init', function () {
register_taxonomy( 'attachment_category', 'attachment', array(
'labels' => array(
'name' => '媒體分類',
'singular_name' => '媒體分類',
'menu_name' => '媒體分類',
'all_items' => '全部媒體分類',
'edit_item' => '編輯媒體分類',
'add_new_item' => '新增媒體分類',
'search_items' => '搜尋媒體分類',
'parent_item' => '上層分類',
),
'hierarchical' => true, // 跟文章分類一樣可以有上下層
'show_ui' => true,
'show_admin_column' => true, // 媒體庫清單多一欄「媒體分類」
'show_in_nav_menus' => false,
'publicly_queryable' => false, // 前台不產生分類頁面
'rewrite' => false,
'query_var' => true, // 後台可以用網址參數篩選
'update_count_callback' => '_update_generic_term_count',
) );
} );幾個重點:
- 分類的代號沿用舊版文章的
attachment_category,以前用過舊程式碼的網站,已經設定好的分類會直接接上。 update_count_callback設成_update_generic_term_count:媒體檔案的狀態跟一般文章不同,用預設的計算方式,分類後面顯示的「數量」常常會是 0 或算錯。publicly_queryable設成false:舊版寫法會在前台替每個媒體分類產生一個頁面,這種只有圖片、沒有內容的頁面,對訪客和搜尋引擎都沒有幫助。
怎麼使用?
1. 建立分類
加好程式碼後,後台「媒體」選單底下會多一個「媒體分類」,用法跟文章分類一樣。可以先把常用的分類建好,例如「產品照」「活動照片」「Logo」。
2. 替圖片指定分類
- 完整編輯頁面(最方便):在媒體庫切換成清單檢視,滑鼠移到圖片上點「編輯」,右側會出現「媒體分類」的勾選框,勾好後按「更新」。
- 媒體庫的彈出視窗:在格狀檢視點開圖片,附件詳細資料裡會多一個媒體分類的文字欄位,要輸入分類的代稱(slug),多個分類用半形逗號分隔。這個方式比較容易打錯,建議用上面的完整編輯頁面。
3. 依分類找圖片
在清單檢視中,「媒體分類」那一欄的分類名稱可以直接點,點了就會只列出這個分類的圖片。
加上依分類篩選的下拉選單
想在清單檢視上方多一個下拉選單,直接選分類來篩選,再加上這段:
PHP
add_action( 'restrict_manage_posts', function ( $post_type ) {
if ( 'attachment' !== $post_type ) {
return;
}
$selected = isset( $_GET['attachment_category'] )
? sanitize_text_field( wp_unslash( $_GET['attachment_category'] ) )
: '';
wp_dropdown_categories( array(
'taxonomy' => 'attachment_category',
'name' => 'attachment_category',
'value_field' => 'slug',
'selected' => $selected,
'show_option_all' => '所有媒體分類',
'hide_empty' => false,
'hierarchical' => true,
) );
} );選好分類後按「篩選」,就只會列出該分類的檔案。
注意事項
- 分類只是標籤:不會搬動檔案位置,也不會改變圖片網址,已經插入文章的圖片完全不受影響。
- 只在清單檢視能篩選:媒體庫預設的格狀檢視不會出現分類欄位與篩選選單,要切換到清單檢視。
- 移除程式碼後資料還在:分類與圖片的對應關係存在資料庫裡,之後把程式碼加回來就會恢復。
想要拖拉式的資料夾?
如果需要像電腦資料夾那樣,用拖拉的方式整理圖片,可以考慮媒體分類或資料夾類的外掛(例如 FileBird、Enhanced Media Library)。選擇時注意:
- 看外掛的更新日期與評價,選有持續維護的。
- 很多資料夾外掛用自己的方式儲存分類,之後換外掛時,整理好的資料夾可能帶不走。
程式碼的寫法功能比較陽春,但用的是 WordPress 內建的分類機制,資料不會被綁在特定外掛上。
延伸閱讀
- WordPress 刪除文章時一併刪除圖片:只刪沒被其他文章使用的安全寫法
- WordPress 限制上傳檔案類型:upload_mimes 寫法與 JPG、PNG、WebP、SVG 格式選擇
- WordPress 更改上傳路徑:後台欄位不見了怎麼辦?UPLOADS 常數寫法與風險
媒體庫整理得好,之後更新網站內容也會輕鬆很多。正威網路行銷是 25 年經驗的基隆網頁設計工作室,提供客製化網頁設計與 RWD 響應式網站,也服務台北與全台客戶,歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。