其他人发了很多禁用方法,但是那些喊得最响,鼓吹禁用Rest API有多厉害有多厉害的人,又偷偷打开了这个功能。
现在流行的WP第三方客户端都是基于Rest API的,包括寿王轩家的微信APPlet、与微信微信微信官方账号的交互、手机上的独立app等。,这是注重操作的站长们的最爱。如果禁用,将没有食物。
至于站长,有时候需要用自己做的一些小工具来自动发文章什么的,Rest API接口是用的最多的一个。
使用wordpress过滤器要求对API用户进行身份验证,可以有效防止匿名外部访问。下面的代码实现了基于Rest API的第三方客户端可以正常使用,但普通访客无法访问接口。
代码如下:
//设置 REST API 请求权限
add_filter('rest_authentication_errors', function($result) {
if (true === $result || is_wp_error($result)) {
return $result;
}
if (!is_user_logged_in()) {
return new WP_Error(
'rest_not_logged_in',
__('You are not currently logged in.'),
array('status' => 401)
);
}
return $result;
});
代码写到主题下 functions.php 文件内任意位置。