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

如何将Handsontable数据按指定格式提交至WordPress REST API?

解决Handsontable数据适配WordPress REST API格式的问题

问题出在你当前提交的是数组格式的数据,但WordPress REST API要求的是带明确字段名的键值对对象。你只需要把Handsontable返回的数组元素映射到title、content、status这几个指定字段上即可。

直接修改你的代码如下:

$('#publish').on('click',function(e){
    // 获取第一行的数组数据
    const rowData = hot.getDataAtRow(0);
    
    // 将数组转换为WP API需要的结构化对象
    const postPayload = {
        title: rowData[0],
        content: rowData[1],
        status: rowData[2]
    };
    
    // 转为JSON字符串
    const data = JSON.stringify(postPayload);

    $.ajax({
        url: 'domain.com/staging/wp-json/wp/v2/posts/',
        method: 'POST',
        crossDomain: true,
        dataType: 'json',
        contentType: 'application/json',
        data: data,
        beforeSend : function(xhr) {
            xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
        },
        success: function( data ) {
            console.log( data );
        },
        error: function ( error ) {
            console.log( error );
        }
    });
});

关键说明:

  1. 先通过hot.getDataAtRow(0)拿到数组["John Doe","Sample text","publish"]
  2. 手动创建postPayload对象,把数组的每个元素对应到WP API要求的字段:
    • 数组第1个元素(索引0)对应title
    • 数组第2个元素(索引1)对应content
    • 数组第3个元素(索引2)对应status
  3. 最后再将这个对象转为JSON字符串提交,这样就和你手动测试的格式完全一致了

额外优化建议:

如果担心Handsontable的列顺序可能变动,或者数组元素可能缺失,可以加个默认值处理,避免提交空字段:

const postPayload = {
    title: rowData[0] || '未命名标题',
    content: rowData[1] || '无内容',
    status: rowData[2] || 'draft' // 默认设为草稿状态,避免误发布
};

内容的提问来源于stack exchange,提问作者Hendra Setiawan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:56:55