我正在尝试使用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(分别为ID 51和110),但是它仅将ID 110添加到帖子中。
由于它在for循环中,所以不应该同时添加两者吗?
谢谢
答案 0 :(得分:1)
在不了解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})
},