我的方向对吗?
是的,如果我是你,我也会使用REST API。
我尝试过按照指示操作,但总是出现错误404。
这实际上是正常的,如果请求方法不是POST,例如使用浏览器手动访问/访问example.com/wp-json/real-estate-lite/v1/endpoint
其中(HTTP)请求方法为(或默认为)GET。
这之所以正常是因为methods
端点的POST
<仅限em(即。\'methods\' => \'POST\'
), 因此,所有其他请求方法(如GET)都是不允许的,因此当通过GET或其他不允许的(HTTP)方法访问端点时,WordPress会抛出错误404。
因此,例如,如果希望允许GET方法,则设置methods
对于这样的数组:
register_rest_route( \'real-estate-lite/v1\', \'/endpoint\', array(
\'methods\' => [ \'POST\', \'GET\' ], // allowed request methods
\'callback\' => \'my_awesome_func\',
) );
/* The above code is equivalent to:
register_rest_route( \'real-estate-lite/v1\', \'/endpoint\', array(
// Endpoint 1, for POST request method.
array(
\'methods\' => \'POST\',
\'callback\' => \'my_awesome_func\',
),
// Endpoint 2, for GET request method.
array(
\'methods\' => \'GET\',
\'callback\' => \'my_awesome_func\', // * the same callback
),
) );
*/
但当然,在您的情况下,您不会希望这样做,因为webhook使用POST方法连接到您的自定义WordPress REST API端点。但出于测试目的,您可以暂时允许GET请求(然后使用浏览器转到端点)。
正如您在示例中所看到的,我们可以在一条路由上有两个或多个端点,并且每个请求方法都应该有自己的回调。
顺便说一句,很抱歉之前没有真正理解您的问题。:)