我是使用WordPress
的新手,并且正在使用Advanced Custom Fields
插件。看起来不错,但我想知道是否可以通过POST
ACF
新建一个对象(使用WordPress REST API
创建)?我已经使用它来GET
(所有自定义对象使用ACF to REST API Plugin
)。
我将WordPress
作为后端,将NextJS
作为前端,因此我想创建一个新的HTML表单,用户可以在其中输入一些信息并直接创建该表单的实例对象。
如果不可能,保存到数据库(常见的MySQL实例)并模拟所需的相同操作的机制是什么?我想阻止通过一些自定义实现(如果有的话)(让我知道您是否需要有关问题或数据的更多信息)
编辑:
经过研究,我发现我试图使用错误的端点来创建对象。
现在,我可以创建自己的对象(自定义帖子类型),但是无法填充ACF字段...
我发送了标准请求:
var data = JSON.stringify({
"title": "Test00",
"status": "publish",
"acf":{
"customfield1":"Some value..."
}
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "http://localhost:8000/wp-json/wp/v2/custom");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMCIsImlhdCI6MTU2MDM3NTQxNywibmJmIjoxNTYwMzc1NDE3LCJleHAiOjE1NjA5ODAyMTcsImRhdGEiOnsidXNlciI6eyJpZCI6IjIifX19.BCyrlFm_qD3-9DzCxQ37n4pJYkTasvLaN34NJtFAMC4");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.send(data);
我收到这个:
{
...
"acf":{
"customfield1":null
}
}
有什么办法可以一次完成所有操作?我应该创建对象,然后发送额外的信息吗?
答案 0 :(得分:0)
与GET请求一样,您也可以使用POST请求将数据存储到CMS。您需要做的是通过POST API调用传递授权标头。
您可以在此处获取有关授权机制的更多详细信息:https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
标题:
Authorization:Bearer <token>
Content-Type:application/json
第二,您可以将 Body 数据作为RAW json进行传递,如下所示:
{
"title":"Sample ACF field demo",
"status": "publish",
"fields":
{
"text_custom_field_name" : "Text value",
"checkbox_custom_field_name" : [
"Option1,",
"Option2,",
"Option3"
],
"textarea_custom_field_name" : "This is message field",
"boolean_custom_field_name" : [
true
]
}
}
请让我知道是否需要任何帮助。
谢谢