除了加载wp-api
如上所述的脚本here:
wp_enqueue_script( \'wp-api\' ); // or use below when enqueueing as dependency
//wp_enqueue_script( \'my_script\', \'path/to/my/script\', array( \'wp-api\' ) );
您还应该知道,每个集合都是一个函数(相当于PHP中的一个类),因此您需要使用
new
关键字来实例化集合。
Example:
var postsCollection = new wp.api.collections.Posts();
postsCollection.fetch( {
data: { per_page: 2 }
} ).done( function( posts ){
console.log( \'Title of the first item is: \' + posts[0].title.rendered );
} );
然而,对于Gutenberg,您可能希望或者可以使用
api-fetch
/
wp.apiFetch
package:
将wp-api-fetch
脚本:
wp_enqueue_script( \'wp-api-fetch\' ); // or use below when enqueueing as dependency
//wp_enqueue_script( \'my_script\', \'path/to/my/script\', array( \'wp-api-fetch\' ) );
然后打电话
wp.apiFetch()
像这样:
wp.apiFetch( { path: \'/wp/v2/posts?per_page=2\' } ).then( function( posts ){
console.log( \'Title of the first item is: \' + posts[0].title.rendered );
} );
path
REST API路由类似于
/wp/v2/posts
可以选择为该特定路由附加一个或多个参数。
如何在编辑器中获取所有帖子的列表以供选择
如果您在管理屏幕上编辑或创建帖子,则wp-api-fetch
如果为该帖子启用了块编辑器,则脚本已排队。如果您专门创建一个块,那么您实际上可以使用getEntityRecords()
随着withSelect
(用于侦听状态更改)。请参见Latest Posts block 用于示例实现。