wordpress如何屏蔽wp-json(禁用REST API)

在wordpress网站日志文件中发现蜘蛛爬行了很多次的/wp-json/目录,在robots文件中disallow掉了爬虫还是访问了那个目录,能不能直接在程序中直接改呢?通过查询相关文档发现WordPress 4.4版本以后增加了一个REST API功能, 通过REST API可以很轻松的获取网站的数据,但是这个功能并不是每个网站都需要的,或者说有需要但并不希望它在head里面输出,那么可以禁用REST API或者说移除head里面wp-json链接。

移除方法

打开主题的 functions.php 文件,加入以下代码即可。但这样做实质上并不会禁用 oembed,如需完全禁用请使用 WordPress 官方开发了一个插件:Disable Embeds。文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

// 屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

// 移除头部 wp-json 标签和 HTTP header 中的 link 
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );

注意:屏蔽 REST API 会直接导致 文章 Emebed 功能失效。文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

由于wordpress新版编辑器的后台会使用wp-json,因此只需要让未登陆的禁止使用即可。上边的方法是都直接禁止了,前后台都禁止了,无法使用新版编辑器。用下面的代码,在你的主题里面的functions.php里面增加:文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

add_filter('rest_authentication_errors', function () {
            if (!is_user_logged_in()) {
                return new \WP_Error(403, 'not allowed');
            }
        });

 文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

使用插件禁用wp-json

1、使用disable-json-api插件方式解决:
在网站后台插件安装搜索 disable-json-api ,安装启动即可;文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

手动下载复制到插件安装目录,启动即可,下载地址:https://wordpress.org/plugins/disable-json-api/文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

2、wordpress站长工具箱插件imwpf插件:http://www.imwpweb.com/400.html文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

 文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

什么是wp-json

WordPress 4.4 版本以后增加了一个 REST API 功能,这是个非常棒功能,通过 REST API 生成的 JSON 接口,可以很轻松的获取网站的数据,可应用于其他网站、手机 APP 或小程序等。但是这个功能并不是每个网站都需要的,如果你博客没有任何客户端,那么你可以移除 WordPress 的 REST API 功能。文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

WP REST API 是 WordPress 的一个功能,为其提供对外标准的 RESTFul 接口,随着 RESTFul 的畅行和各种前端框架的出现,WP REST API可以让 WordPress 不仅仅存在 Web 端,可以让 WordPress 不仅仅履行一个博客功能,而是可以让它作为后台终端(BackEnd),然后以各种应用的形式实现在各种各样的设备中。文章源自SEO视频网-https://www.seoshipin.cn/jianzhan/wordpress/4234.html

什么是oembed

有没有想过,只需要在日志中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很酷!这个就是 WordPress 的 Embeds 的功能,让你直接发布一个 URL(需要单独一行,纯文本,不带链接才行),就能把这个 URL 中的视频显示到博客上,并且会根据博客的布局调整视频的大小。

 
  • 本文由 潮涌SEO 发表于 2022年2月12日 12:43:30
  • 转载请务必保留本文链接:https://www.seoshipin.cn/jianzhan/wordpress/4234.html