WordPress为媒体添加自定义字段的方法

WordPress 中,我们可以很轻松的使用插件或者写代码为文章或页面添加自定义字段。可能是因为使用的场景不多,支持为媒体添加自定义字段的插件和教程确很少。

在这篇文章中,我们一起来看一下怎么为 WordPress 媒体添加自定义字段。实现代码其实很简单,也完全没必要用插件来实现。

首先,为媒体添加自定义字段表单

在下面的代码中,我们使用 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;
    }

保存数据到媒体字段中

然后,我们使用 attachment_fields_to_save Hook,在保存媒体数据的时候,顺便把前端提交过来的自定义字段的值保存在媒体自定义字段中即可。

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;
    }

如此,我们就实现了为 WordPress 媒体添加自定义字段的功能。需要注意的是,上面代码中的 $post ,不是指的每一篇文章,而是保存着媒体数据的「媒体自定义文章类型」。

添加保存了自定义字段之后,具体怎么使用,我们根据业务需求去调用这个媒体字段,然后做判断和显示即可。

👋 感谢您的观看!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享