You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API获取并更新WordPress媒体的wooThumbs自定义元数据?

解决wooThumbs视频链接无法通过WP REST API获取/更新的问题

默认情况下,WordPress REST API不会自动暴露插件添加的自定义字段(比如wooThumbs的_iconic_woothumbs_media),也不允许直接通过API更新,需要手动添加代码开启该字段的REST支持。

步骤1:添加代码开启REST支持

将以下代码添加到主题的functions.php文件,或者自定义插件中:

// 注册wooThumbs视频链接字段到媒体REST API
add_action('rest_api_init', function() {
    register_rest_field('attachment', '_iconic_woothumbs_media', array(
        // 处理字段的获取逻辑
        'get_callback' => function($post_data) {
            return get_post_meta($post_data['id'], '_iconic_woothumbs_media', true);
        },
        // 处理字段的更新逻辑
        'update_callback' => function($video_url, $post_object) {
            // 验证用户权限
            if (!current_user_can('edit_post', $post_object->ID)) {
                return new WP_Error('rest_forbidden', '无权限编辑该媒体', array('status' => 403));
            }
            // 存储清洗后的视频链接
            update_post_meta($post_object->ID, '_iconic_woothumbs_media', sanitize_text_field($video_url));
            return true;
        },
        // 定义字段的Schema信息
        'schema' => array(
            'description' => 'wooThumbs关联的视频链接',
            'type' => 'string',
        ),
    ));
});

步骤2:验证效果

  1. 获取字段:发送GET请求 https://<site>/wp-json/wp/v2/media/281668,响应中会新增_iconic_woothumbs_media字段,返回对应的视频链接。
  2. 更新字段:发送POST/PUT请求 https://<site>/wp-json/wp/v2/media/281668,请求体携带如下数据即可成功更新:
{
    "_iconic_woothumbs_media": "https://your-video-url.com"
}

原理说明

wooThumbs插件将视频链接存储为媒体附件的自定义元数据_iconic_woothumbs_media,但WordPress REST API默认只暴露核心字段(标题、替代文本等)。通过register_rest_field函数,我们可以将这个自定义字段注册到REST API中,同时定义获取和更新的逻辑,确保API能正确处理该字段的读写操作。

内容的提问来源于stack exchange,提问作者Richard Shuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 23:47:16