我正在为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'),
) );
} );
}
感谢您的帮助。
答案 0 :(得分:9)
我有同样的问题。似乎方法ping_test
不能是私有的。如果将其更改为公开,则错误消失。
答案 1 :(得分:1)
查看WordPress core,您可以看到以callback
又名ping_test
传递的方法必须是可调用的。
因此,只有当该方法不存在时才会触发此错误(例如我因错误而遇到它)或者如果无法访问(如受保护或私有方法)