问题描述
我正在尝试使用wordpress的Backbone.js客户端创建新帖子。
var post = wp.api.models.Post({ title: "Lorem ipsum",status: "publish" });
但是我遇到了以下错误:
Uncaught TypeError: Cannot read property 'apply' of undefined
at Object.h.Model (backbone.min.js?ver=1.4.0:formatted:232)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i (backbone.min.js?ver=1.4.0:formatted:1247)
at Object.i [as Post] (backbone.min.js?ver=1.4.0:formatted:1247)
有人有类似的问题吗?我在任何地方都找不到解决方案。
解决方法
步骤1 -启用wp-api-fetch
作为脚本的依赖项:
wp_enqueue_script('my-script','path/to/my/script.js',array('wp-api-fetch'));
步骤2 -在path/to/my/script.js
中调用rest-api创建一个新的帖子,如下所示:
wp.apiFetch({
path: 'wp/v2/posts',method: 'POST',data: { title: 'New Title'}
}).then(post => console.log(post))
此 answer 提出了其他一些用例:
https://wordpress.stackexchange.com/a/361012/119120
REST API手册中有关javaScript / Backbone客户端库的更多信息:
https://developer.wordpress.org/rest-api/using-the-rest-api/backbone-javascript-client/