Wordpress Rest API返回错误

时间:2017-08-15 18:31:28

标签: wordpress wordpress-rest-api

我正在为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'),
        ) );
    } );
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

我有同样的问题。似乎方法ping_test不能是私有的。如果将其更改为公开,则错误消失。

答案 1 :(得分:1)

查看WordPress core,您可以看到以callback又名ping_test传递的方法必须是可调用的。

因此,只有当该方法不存在时才会触发此错误(例如我因错误而遇到它)或者如果无法访问(如受保护或私有方法)