WP版本为5.5.3
我在管理仪表板页面中使用的插件中设置了3个API路由。一条路线将被使用”;公开发布;。
我有两个非常奇怪的问题:
我的3条以管理为中心的路由未指定permission_callback
. 我应该得到通知,但我没有,当文档和WP核心功能说它将抛出doing_it_wrong
错误我的第四条公共路线\'permission_callback\' => \'__return_true\'
设置我收到rest_not_logged_in
错误代码
class My_Plugin
{
public function __construct()
{
add_action( \'rest_api_init\', [ &$this, \'register_routes\' ] );
}
public function register_routes(): void
{
register_rest_route(\'my-api-route\', \'/uri\', [
\'methods\' => WP_REST_Server::READABLE,
\'callback\' => [&$this, \'api_get_available_stuff\'],
]);
register_rest_route(\'my-api-route\', "/uri/(?P<param>[a-zA-Z0-9-]+)", [
\'methods\' => WP_REST_Server::READABLE,
\'callback\' => [&$this, \'api_get_specific_stuff\'],
]);
register_rest_route(\'my-api-route\', "/uri/(?P<param>[0-9-]+)", [
\'methods\' => WP_REST_Server::EDITABLE,
\'callback\' => [&$this, \'api_update_specific_stuff\'],
]);
register_rest_route(\'my-api-route\', "/uri/(?P<param>[a-zA-Z0-9-]+)/load-more", [
\'methods\' => WP_REST_Server::READABLE,
\'callback\' => [&$this, \'api_load_more_stuff\'],
\'permission_callback\' => \'__return_true\',
]);
}
}
// header approach
$.ajax({
url: \'/wp-json/my-api-route/uri/param/load-more\',
method: \'GET\',
headers: {
\'X-WP-Nonce\': \'<?php echo wp_create_nonce(\'wp_rest\'); ?>\'
},
data: {
\'max_items\': 5,
\'offset\': 5 * current_count,
},
})
// _wpnonce approach
$.ajax({
url: \'/wp-json/my-api-route/uri/param/load-more\',
method: \'GET\',
data: {
\'_wpnonce\': \'<?php echo wp_create_nonce(\'wp_rest\'); ?>\',
\'max_items\': 5,
\'offset\': 5 * current_count,
},
})
我唯一的结论可能是,尽管看到;版本5.5.3“;在WP Admin的下角,我可能不在5.5.3上。