我正在尝试使用RESTAPI更新CPT帖子的元数据。我可以使用如下帖子更新数字元数据元素:
实例com/wp-json/wp/v2/posts/73/meta/229?值=2
此方法基于以下解决方法:WP REST API "rest_no_route" when trying to update meta
我还可以使用这里的帖子更新元数据:示例。com/wp-json/wp/v2/posts/73/meta/229
正文中包含此JSON:
{"value":"2"}
但是,我需要更新的字段包含一个序列化的数据数组。当我尝试使用第二个方法(JSON body)更新字段时,出现以下错误:{"value": [
{
"name": "Related Documents",
"default": true,
"documents": [
{
"label": "RFA - Revit File",
"file_location": "http://example.com/wp-content/uploads/2017/03/file.pdf"
}
]
}
]
}
我还尝试以序列化数组的形式发送数据(这就是它存储在MySql中的方式)。发送时:
{"value": "{a:0}"}
我得到:{
"code": "rest_post_invalid_action",
"message": "Invalid existing meta data for action.",
"data": {
"status": 400
}
}
注意:此元数据是WooCommerce插件的一部分:https://woocommerce.com/products/product-documents/我安装了这个插件以向API公开我的自定义帖子类型(并且我能够检索数据):wordpress.org/plugins/wp-rest-api-controller/
我还安装了此插件以允许访问元端点:wordpress.org/plugins/rest-api-meta-endpoints/
我在这里的最终目标是将新数据填充到此自定义字段的MySql数据库中。我了解到,WP REST API仍然没有文档化,在元数据方面相当薄弱,尤其是(1)对于自定义post类型,以及(2)对于非字符串/数字数据类型。
我正在考虑编写一个基本的PHP页面,该页面将采用产品ID,使用WordPress函数找到正确的元记录,并通过将发布的JSON转换为序列化数组来更新数据,但我对PHP还不够熟悉,因此我还必须考虑一些安全问题。但是,有没有关于如何开始这项工作的示例或想法,或者有没有更好的方法来更新我的元数据?