我正在为wordpress开发一个插件,并且在使用Rest API时遇到了麻烦。在我的测试服务器上,它没有问题。 (v4.6.6)在另一台服务器(v4.4.10)上,API返回以下错误消息:
{"code":"rest_invalid_handler","message":"
Der Handler f\u00fcr die Route ist ung\u00fcltig","data":{"status":500}}%
该消息是德语,意思是“路由的处理程序无效”。不明白为什么他们翻译API的错误消息。对我没有任何意义。 :)
http://domain/wp-json上的路线是平等的。也许是不同WP版本的问题?
路线的定义:
function __construct() {
add_action( 'rest_api_init', function(){
register_rest_route( 'test_namespace', 'ping', array(
'methods' => 'POST',
'callback' => array($this, 'ping_test'),
'permission_callback' => array($this, 'myhacks_permission_callback'),
) );
} );
}
感谢帮助。
我遇到过同样的问题。似乎方法ping_test
不能是私人的。如果将其更改为公共,则错误消失。
看看WordPress core,你可以看到传递的方法是callback
aka ping_test
必须是可调用的。
因此,只有当该方法不存在时(例如我刚刚因为拼写错误而遇到它)或者如果不可访问(如受保护或私有方法),此错误才会触发