如何在wordpress的媒體庫中顯示文件大小?
代码: 全选
要在 WordPress 媒體庫中顯示文件大小,最簡單且不依賴外掛的方法是透過 PHP 代碼。這可以讓你直接在媒體庫的列表視圖中看到每個檔案佔用的空間(例如 1.2 MB)。
你可以將以下代碼添加到主題的 `functions.php` 檔案中:
---
### PHP 代碼實現
```php
/**
* 在媒體庫列表增加「大小」欄位標題
*/
add_filter('manage_media_columns', 'add_file_size_column');
function add_file_size_column($columns) {
$columns['file_size'] = '檔案大小';
return $columns;
}
/**
* 抓取並顯示每個媒體文件的實際大小
*/
add_action('manage_media_custom_column', 'display_file_size_column', 10, 2);
function display_file_size_column($column_name, $post_id) {
if ($column_name === 'file_size') {
// 獲取檔案路徑
$file_path = get_attached_file($post_id);
if (file_exists($file_path)) {
// 獲取位元組數並轉換為易讀格式 (KB, MB)
$size = filesize($file_path);
echo size_format($size);
} else {
echo '未知';
}
}
}
/**
* 讓「大小」欄位支援點擊排序
*/
add_filter('manage_upload_sortable_columns', 'make_file_size_column_sortable');
function make_file_size_column_sortable($columns) {
$columns['file_size'] = 'file_size';
return $columns;
}
```
---
### 代碼功能詳解:
1. **`manage_media_columns`**: 這會在媒體庫的表格標題列插入一個新的「檔案大小」欄位。
2. **`get_attached_file($post_id)`**: 這是關鍵。它會根據我們之前聊過的 **Attachment ID** 找到伺服器上的實體路徑。
3. **`size_format()`**: 這是 WordPress 內建的函數,會自動幫你把 $1048576$ bytes 轉換成 `1 MB` 這種人類看得懂的格式,非常方便。
4. **排序功能**: 最後一段代碼讓你可以點擊標題,按檔案大小進行升冪或降冪排列,方便找出佔用空間的大檔案。
---
### 如何查看效果?
1. 保存 `functions.php` 後,進入後台 **媒體 > 媒體庫**。
2. **重要:** 必須切換到 **「列表視圖 (List View)」**(點擊左上角的清單圖示),而不是預設的網格圖示。
3. 你就會看到多出一欄「檔案大小」。
### 補充:如果不想寫代碼?
如果你偏好使用外掛,可以搜尋 **"Filesize in Media Library"** 或 **"Admin Columns"**,這些外掛也提供類似的功能,並支援更多自定義欄位。
你目前是想清理網站空間,還是單純想在選取檔案時有個參考?