隐藏WordPress Rest API端点定义

时间:2017-11-30 07:44:14

标签: wordpress rest api hook wordpress-rest-api

我想隐藏WordPress rest api中端点的定义...在https://www.wpwhitesecurity.com/wp-json的情况下我想返回404或空数组,但不返回站点端点列表。< / p>

有些想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

从版本4.4.0开始,钩子rest_index,https://developer.wordpress.org/reference/hooks/rest_index/中的文档描述:

  

这包含描述API的数据。这包括信息   关于支持的认证方案,支持的命名空间,路由   可在API上获得,以及有关该网站的少量数据。

下一段代码在我需要时完美运行:

function my_site_rest_index( $response ){
    return array();
}
add_filter('rest_index', 'my_site_rest_index');

答案 1 :(得分:1)

function chuck_disable_rest_endpoints( $access ) {
  if( ! is_user_logged_in() ) {
        return new WP_Error( 'rest_cannot_access', __( 'Only logged users are able to call REST API.', 'disable-json-api' ), array( 'status' => rest_authorization_required_code() ) );
  }return $access;                                                            
}                                                
add_filter( 'rest_authentication_errors', 'chuck_disable_rest_endpoints' );

这将返回只有已记录的用户才能访问API