如何禁用WordPress程式REST API功能且移除wp-json連結
WordPress是什麼?
WordPress是使用PHP語言開發的部落格平臺,使用者可以在支援PHP和MySQL資料庫的伺服器上架設屬於自己的網站。也可以把 WordPress當作一個內容管理系統(CMS)來使用。
WordPress是一款個人部落格系統,並逐步演化成一款內容管理系統軟體,它是使用PHP語言和MySQL資料庫開發的。使用者可以在支援 PHP 和 MySQL資料庫的伺服器上使用自己的部落格。
WordPress有許多第三方開發的免費模板,安裝方式簡單易用。不過要做一個自己的模板,則需要你有一定的專業知識。比如你至少要懂的標準通用標記語言下的一個應用HTML程式碼、CSS、PHP等相關知識。
WordPress官方支援中文版,最新版本為5.0,同時有愛好者開發的第三方中文語言包,如wopus中文語言包。WordPress擁有成千上萬個各式外掛和不計其數的主題模板樣式。
WordPress算是當前比較好用的PHP程式,基本上個人部落格、企業網站,小型商務網站都可以使用到。而且WordPress官方的更新、第三方的外掛主題豐富,讓這個程式變得越來越豐富多樣,但是隨著不斷的升級功能,也會增加程式的負擔和不安全因素。
問題發現:
今天我在用WordPress5.0的時候,突然發現請求頭資訊header中多了一個link rel="https://api.w.org/",根據連結和字面意思可以認為是reset api;但是我們網站不需要這個玩意怎麼解決呢?
於是我們第一時間想到搜尋,看有沒有遇到相同問題的人?萬能的搜尋引擎幫我們找到相同的問題,但試過幾個依然無效果;
我們發現從WordPress4.4開始增加REST API功能, 對於一般的網站是沒有需要的,反而會拖累網站的速度,所以我們儘可能的禁止掉這些不必要的功能需求。我們在原始碼中可以看到類似的連結字元。
<link rel='https://api.w.org/' href=' https://www.52it.club/wp-json/' />
解決方案:
1、使用非外掛方式解決:
將下面程式碼新增到主題functions.php檔案中,去除head裡面輸出的連結資訊。
//遮蔽 REST API
add_filter('json_enabled', '__return_false' );
add_filter('json_jsonp_enabled', '__return_false' );
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 );
2、使用disable-json-api外掛方式解決:
1、在外掛安裝哪裡搜尋 disable-json-api ,安裝啟動即可;
2、手動下載複製到外掛安裝目錄,啟動即可,下載地址:https://wordpress.org/plugins/disable-json-api/