用于检查REST命名空间是否存在的核心函数

时间:2018-10-31 作者:mrmadhat

WordPress是否具有检查rest命名空间是否存在的核心功能?

我想在多个插件中使用以下功能(或类似功能),因此如果core中有类似的功能,这将非常有用。

function rest_namespace_exists( string $namespace ) {
    // Create a rest request for the current rest url of the site
    $request  = \\WP_REST_Request::from_url( get_rest_url( null, \'\' ) );
    $response = rest_do_request( $request );
    $server   = rest_get_server();
    $data     = $server->response_to_data($response, false);

    return array_search( $namespace, $data[\'namespaces\'] ) !== false;
}
我挣扎是因为:

如果我复制代码,它就不会干

如果我在一个插件中使用上述功能,那么我会立即将两个插件结合使用,即使我可能只需要一个插件(取决于每个站点的要求),也必须同时使用这两个插件。

如果我构建了一个“助手”插件,那么我必须要求可能使用公共插件的用户下载其他插件。另外,我不知道安装一个XYZ助手会有多舒服,因为它可能有很多不需要的功能/膨胀。

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

您可以使用WP_REST_Server::get_namespaces() 方法

例如。

$exists = in_array( \'ns/v1\', rest_get_server()->get_namespaces() );

结束

相关推荐

WP-API:获取多个类别的帖子

比方说,我有两个类别,\'color\' 和\'temperature\'. 每一个都有许多子类别。当我转到如下URL时,Wordpress在显示请求类别中的帖子方面做得很好:http://www.example.com/category/pink+warm 现在我想对json-rest-api 插件,通过REST请求。有可能吗?如何使用REST请求获取多个类别的帖子(不是在任何一个类别中,而是在所有请求的类别中)?我尝试了不同的URI,但失败了。