禁用 Wordpress REST API 查看页面名称的功能

问题描述 投票:0回答:1

我运营的网站是一个竞争性解谜网站,用户必须破解代码或解决密码才能解决下一个谜题。使用 woocommerce 会员资格(使用 Rest API),我注意到 mysiteexample.com/wp-json/wp/v2/pages?_fields=link&per_page=100 显示了我的会员有权访问的所有页面,这是一个问题并破坏了游戏。有没有办法在不关闭 REST API 的情况下阻止或隐藏此内容,以免用户查看,我认为这会破坏会员插件?

我在这里和reddit上尝试了多种解决方案

json wordpress rest woocommerce
1个回答
0
投票

Hook 可以在这里找到 https://developer.wordpress.org/reference/hooks/rest_dispatch_request/

function wpse_authenticate_page_route( $dispatch_result, $request, $route, $handler ) {
    if ( strpos( $route, '/wp/v2/pages' ) !== false ) {
        return new \WP_Error(
            'rest_auth_required',
            'Authentication required',
            array( 'status' => 401 )
        );
    }
    return $dispatch_result;
}
add_filter( 'rest_dispatch_request', 'wpse_authenticate_page_route', 10, 4 );

您可能想检查一下阻止此路由不会给 Wordpress 带来问题,他们确实说阻止 API 会破坏它。 https://developer.wordpress.org/rest-api/frequently-asked-questions/#can-i-disable-the-rest-api

© www.soinside.com 2019 - 2024. All rights reserved.