在创建新帖子时添加标签

时间:2017-06-21 作者:Zach Tackett

我正在尝试创建一个带有标签的新帖子。没有任何运气,也无法在网上找到任何关于我可能做错了什么的解释。

methods: {
  createPost: function() {

    let title = this.newPostTitle;
    let content = this.newPostContent;
    let postCategories = this.postCategories;
    let tags = this.newPostTags.split(",");

    let data = {
      \'title\': title,
      \'content\': content,
      \'status\': \'publish\',
      \'categories\': postCategories,
      \'tags\': tags,
    };

    axios.post("/wp-json/wp/v2/posts/", data, {headers: {\'X-WP-Nonce\': portal.nonce}})
    .then(response => {
      console.log(response);
    })
    .catch(e => {
      this.errors.push(e);
      console.log(this.errors);
    });

    this.newPostTitle = \'\';
    this.newPostContent = \'\';
    this.newPostTags = \'\';
    this.postCategories = false;
  }
}
我使用上面的method属性来获取数据并使用VueJS和Axios发布数据。我需要做什么才能让标签正确张贴?

当我尝试发布时,我不断收到以下错误

“标记[0]不是整数类型。”

2 个回复
SO网友:mrben522

听起来它希望标记ID为整数,而您正在发送字符串。split 返回字符串数组,即使这些字符串是数字。而不是使用.split 试试这样的

let tags = JSON.parse("[" + this.newPostTags + "]");
如果您真的喜欢拆分,那么您可以这样做:

let tags = this.newPostTags.split(",").map(Number);

SO网友:MirzaP

实际上,它需要一个由逗号分隔的串联标记ID组成的字符串(如果有人仍在寻找答案的话)。

您的数据如下所示,拆分代码被注释掉:

let tags = this.newPostTags; // .split(",");
let data = {
  \'title\': title,
  \'content\': content,
  \'status\': \'publish\',
  \'categories\': postCategories,
  \'tags\': tags,
};

结束

相关推荐

从WP REST API获取用户元数据

我正在使用WordPress REST API和VueJS以及Axios(用于AJAX调用以获取/发布数据回站点)进行一个项目。然而,我需要能够从REST API访问用户的元数据,即“collapsed\\u widgets”,但我从GET响应中收到的数据是\"meta\": [], 这也适用于所有用户,这很奇怪,因为那里应该有数据。是否有任何方法可以为用户获取元数据?