在很多WordPress項目中,媒體文件的管理通常僅局限于基本的標題和描述,但有時候,我們可能需要為特定的媒體文件添加額外的信息,如視頻鏈接或版權(quán)聲明。不幸的是,為媒體添加自定義字段的插件或教程很少。
在這篇文章中,我們一起來看一下怎么為WordPress 媒體添加自定義字段。實現(xiàn)代碼其實很簡單,也完全沒必要用插件來實現(xiàn)。最終實現(xiàn)的效果如下圖所見。

首先,為媒體添加自定義字段表單
在下面的代碼中,我們使用 attachment_fields_to_edit Hook 為媒體添加了一個 video_url 表單。
add_filter('attachment_fields_to_edit', 'add_video_url_field_to_media_uploader', 10, 2);
function add_video_url_field_to_media_uploader($form_fields, $post)
{
$form_fields[ 'video_url' ] = [
'label' => __('Video URL', 'woocommerce'),
'input' => 'text',
'value' => get_post_meta($post->ID, '_video_url', true),
'helps' => __('Enter the URL of the product video if this image represents a video.', 'woocommerce'),
];
return $form_fields;
}
保存數(shù)據(jù)到媒體字段中
然后,我們使用 attachment_fields_to_save Hook,在保存媒體數(shù)據(jù)的時候,順便把前端提交過來的自定義字段的值保存在媒體自定義字段中即可。
add_filter('attachment_fields_to_save', 'save_video_url_field_to_media_uploader', 10, 2);
function save_video_url_field_to_media_uploader($post, $attachment)
{
if (isset($attachment[ 'video_url' ])) {
update_post_meta($post[ 'ID' ], '_video_url', esc_url_raw($attachment[ 'video_url' ]));
}
return $post;
}
如此,我們就實現(xiàn)了為 WordPress 媒體添加自定義字段的功能。需要注意的是,上面代碼中的$post,不是指的每一篇文章,而是保存著媒體數(shù)據(jù)的「媒體自定義文章類型」。
添加保存了自定義字段之后,具體怎么使用,我們根據(jù)業(yè)務(wù)需求去調(diào)用這個媒體字段,然后做判斷和顯示即可。除了媒體自定義字段,本站之前的文章 以編程方式獲取附件 Alt 文本、標題、描述和名稱 中,還介紹了怎么獲取媒體的其他數(shù)據(jù),有需要的朋友可以參考。
通過本文的介紹,我們掌握了如何為WordPress媒體添加自定義字段的方法,這種方法簡單搞笑,能通過代碼靈活定制多種功能,你是可以將這一方法應用到更復雜的項目中,比如為音頻或視頻文件添加時長字段,為圖片添加來源信息等等。


