使用 Wordpress Rest API JS 填充 ACF 字段



我是新来的WordPress,我正在使用Advanced Custom Fields插件。看起来不错,但我想知道是否有可能通过WordPress REST APIPOST一个新对象(使用ACF创建)?我已经在使用它来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
}
}

有什么办法可以一次完成所有操作吗?我是否应该创建对象,然后发送额外的信息?

与GET请求一样,您也可以使用POST请求将数据存储到CMS中。您需要做的是使用 POST API 调用传递授权标头。
您可以在此处获取有关授权机制的更多详细信息:https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

头:

Authorization:Bearer <token>
Content-Type:application/json

其次,您可以将正文数据作为 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
]
}
}

如果需要任何帮助,请告诉我。

谢谢

TL;DR - ACF 现在支持 WP REST API

大家好,Iain 高级👋自定义字段的产品经理在这里

作为ACF 5.11版本的一部分,我们在WordPress REST API中添加了对ACF字段的本机支持。在此处阅读更多相关信息。

最新更新