禁用方法别人已经发了很多,但当年喊得最大声的,鼓吹禁用 Rest API 多好多棒的那批人,已经偷偷又把这功能打开了。
现在主流的流行的WP第三方客户端都是基于Rest API 实现的,包括守望轩大佬家的微信小程序等,还有跟微信公众号的互动,手机上独立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 文件内任意位置。
代码效果:https://www.guihet.com/wp-json/
默认状态:示例地址
wp5.8,放在主题functions.php第一行也不生效诶
在用 WP 5.9.1 测试没有问题
那个评论等级钩子函数怎么整,求大佬解决疑惑
谢谢博主 学习下