wordpress以编程方式添加帖子标签

时间:2019-09-14 13:40:32

标签: javascript php ajax 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(分别为ID 51和110),但是它仅将ID 110添加到帖子中。

由于它在for循环中,所以不应该同时添加两者吗?

谢谢

1 个答案:

答案 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})

},