摘自documentation: (向下滚动至该页上的“使用修订版”部分)
注意:由于模式存储在用户的会话缓存中以避免重新获取,因此您可能需要打开一个新选项卡以重新读取模式。
So it\'s probably just a caching issue and you only needed to open a new (browser) tab, 或者在另一个选项卡或窗口中测试代码。
但是,如果不想打开其他选项卡/窗口,则可以强制浏览器删除架构的会话缓存right after WordPress定义了wpApiSettings
变量,当wp-api-request
脚本(wp-includes/js/api-request.js
) 已排队。
因此,您可以使用wp_add_inline_script()
:
// Enqueue the Backbone client library.
wp_enqueue_script( \'wp-api\' ); // this includes the wp-api-request (api-request.js) script
// And then delete the session cache. Note: Don\'t include the <script> and </script> tags!
wp_add_inline_script( \'wp-api-request\', "try { sessionStorage.removeItem( \'wp-api-schema-model\' + wpApiSettings.root + wpApiSettings.versionString ); } catch ( err ) {}" );
但是,我并不推荐上述内容;默认情况下,该模式已经非常多,浏览器可能需要一些时间来请求该模式,然后通过主干客户端进行处理。但是,如果每次加载页面时都必须重置缓存,那么我将该代码作为一个选项共享。其次,可以使用上面的代码确认存在缓存问题。
顺便说一下,除了骨干客户机之外,您还可以使用wp.apiRequest()
要向REST API端点发出请求,请执行以下操作:
PHP:wp_enqueue_script( \'wp-api-request\' );
贴子类型的JavaScript示例custom
作为slug:
// Fetch a collection (i.e. a list of posts).
wp.apiRequest( { path: \'wp/v2/custom\' } )
.then( posts => console.log( posts ) );
// Create a model/post.
wp.apiRequest( {
path: \'wp/v2/custom\',
method: \'POST\',
data: {
title: \'New Custom Post\',
content: \'Just testing\',
// ..other data, if any..
}
} ).then( post => console.log( post ) );
// Update a model/post.
wp.apiRequest( {
path: \'wp/v2/custom/123\', // change 123 to the correct ID
method: \'POST\',
data: {
title: \'New Title\',
// ..other data you want to UPDATE
}
} ).then( post => console.log( post ) );
// Destroy a model/post.
wp.apiRequest( {
path: \'wp/v2/custom/123\', // change 123 to the correct ID
method: \'DELETE\'
} ).then( post => console.log( post.status ) ); // \'trash\'