为什么路径与REST中编码的路径不同

时间:2017-08-26 作者:The WP Intermediate

获取代码的参考URL:Writing WP REST API Endpoint in 2 minutes

add_action( \'rest_api_init\', function () {
        register_rest_route( \'tomjn/v1\', \'/test/\', array(
                \'methods\' => \'GET\',
                \'callback\' => \'tomjn_rest_test\'
        ) );
} );

function tomjn_rest_test() {
        return "moomins";
}
根据以上代码,路径应为→

https://tomjn.com/tomjn/v1/test

那么为什么会这样:

https://tomjn.com/wp-json/tomjn/v1/test

这部分的逻辑是什么→

/wp json/

这是Primary question 我从哪里开始学习。

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

不,不应该。

第一个参数称为namespace。这就像您的功能范围,例如:

function my_function(){
    $data = 0;
}
您只能使用$data 在该功能内部。REST端点也是如此。路径/test/ 将仅在其特定命名空间下可用。

您应该为插件或主题选择一个唯一的命名空间,并为不同的端点构建不同的路径。

第二个参数是路径。就像树枝一样。将树想象为名称空间,将其分支想象为路径。你可以爬上树,然后选择一根树枝来收获果实。

然而,这两者都属于休息路线的范围,有一个基础/wp-json/ 如果启用了永久链接,或者/?rest_route= 如果您使用的是普通permalinks。

检查有关的代码参考register_rest_route() 了解更多详细信息。

结束

相关推荐

Php致命错误:无法将WP_REST_RESPONSE类型的对象用作wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php中

我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x