javascript - wordpress 以编程方式添加帖子标签
问题描述
我正在尝试使用 PHP 和 JS 以编程方式将帖子标签添加到新帖子中。我有使用 ajax 发送我想要添加的 id 的代码,PHP 检查它们是否存在,如果不存在则创建它们。然后它按名称搜索,并将 ID 发送回 Ajax。
我的问题在于将所有帖子标签添加到帖子中,因为只有最后一个将自己添加到帖子中。
success: function(data) {
for(var i = 0; i < data.length; i++) {
var obj = data[i];
console.log(obj.term_id);
wp.data.dispatch('core/editor').editPost({tags: [obj.term_id]})
}
},
Console.log 写入所有应该添加的帖子标签 ID。在 for 循环中使用时wp.data.dispatch('core/editor').editPost({tags: [obj.term_id]})
,它只会将最后一个 ID 添加到帖子中。在我的具体情况下,我有两个 ID,一个用于每个帖子标签(id 51 和 110),但它只将 ID 110 添加到帖子中。
不应该添加两者,因为它在 for 循环内?
谢谢
解决方案
在不了解 wp.data
api 的情况下,最好的猜测是您想要创建完整的值数组并且只调用editPost()
一次......传入整个数组。
您可以使用Array#map()
从 中创建完整的术语数组data
。
就像是:
success: function(data) {
var termsArray = data.map(function(el){
return el.term_id;
});
wp.data.dispatch('core/editor').editPost({tags: termsArray})
},
推荐阅读
- python - 传递给 numpy.ndarray.__format__ 的格式字符串不受支持
- javascript - nextTick 中的 Vue.js 错误:“RangeError:超出最大调用堆栈大小”和 RangeError:超出最大调用堆栈大小
- powerbi - PowerBi 创建可编辑表
- json - 如何在 Ruby on Rails 中解析 JSON?
- scala - Spark Structured Streaming 从 kafka 读取不同的事件类型
- one-time-password - 身份验证器无法从密码中解析代码
- c - char *ptr = "hi"; 有什么区别?int *ptr = "100"?
- tensorflow - 我可以找到训练 tensorflow 预训练模型的类名吗?
- javascript - Alexa Node.js 意图问题
- security - 用于下载所有 CA 证书的 API 或任何来源