外掛說明
控制存取 WordPress REST API 最全方位的外掛。
設定後便可不再需要管理。僅需上傳外掛並啟用,網站上的一般使用者便無法存取整個 REST API。
如果需要存取某些端點,這個外掛也可以辦到。前往外掛設定頁面,網站管理員可以快速設定 REST API 個別端點 (或端點的整個分支) 的允許清單。
網站管理員可以依據使用者角色進行設定,因此可以達成未經驗證的使用者 (例如沒有網站帳號及密碼的使用者) 有一組規則,WooCommerce 客戶另有一組規則,而訂閱者、編輯及網站管理員也有各自的一組規則。請注意,在隨裝即用的原則下,仍會授予全部已定義的使用者角色完整存取 REST API 的權限,直至完成相關設定才會限制存取。
對於大多數的 WordPress 核心程式版本來說,如果不允許使用者存取端點,這個外掛會傳回身分驗證錯誤。這個外掛對於舊版 WordPress 4.4、4.5 及 4.6 提供支援,會以 rest_enabled
篩選器停用整個 REST API。
螢幕擷圖
安裝方式
- 透過 FTP 上傳解壓縮所得的
disable-json-api
資料夾及其全部檔案至/wp-content/plugins/
目錄。 - 或是前往 WordPress 網站管理後台的 [外掛]→[安裝外掛] 頁面,上傳
disable-json-api_v#.#.zip
檔案。 - 在 WordPress 管理後台的 [外掛] 選單中啟用外掛。
常見問題集
-
如何確認這個外掛的執行是否有效?
-
外掛啟用後,以有帳號的 WordPress 使用者登入,REST API 會如預期般執行;如果使用者以另一個瀏覽器 (或 Chrome 的 [無痕式視窗]) 登入網站,會以乾淨的工作階段測試網站。在沒有登入的狀況下前往 yourdomain.com/wp-json/ (或 yourdomain.com/?rest_route=/,如果網站停用易於辨識的永久連結),便不會取得任何結果,並會傳回身分驗證錯誤 (Disable REST API: 僅有已驗證的使用者能存取 REST API)。
-
這個外掛可以停用 WordPress 網站中的全部 REST API 嗎?
-
這個外掛僅能停用 WordPress 核心程式本身提供的 REST API。如果外掛或佈景主題提供他們專屬的 REST API (不要與 WordPress API 本身提供的專屬端點混淆),這個外掛對這些第三方程式提供的 REST API 無效。
使用者評論
參與者及開發者
變更記錄
1.8
- Tested up to WP v6.3
- Added
dra_error_message
filter so devs can customize the access error message - Fixed bug that caused fatal errors if activating plugin on installations running the LearnPress plugin
- Changed minimum requirements to PHP 5.6 (up from 5.3) and WordPress 4.9 (up from 4.4). Adding docblock comments to support minimums.
1.7
- Tested up to WP v5.8
- Replace use of filemtime() with plugin version number for static file enqueues. Props @tangrufus for bringing this up!
- Fixed logic bug for role-based default_allow rules. Props @msp1974 for the report!
- Few small code-style updates
1.6
- Tested up to WP v5.6
- Added support for managing endpoint access on a per-user-role basis
- Soooooooo many small changes behind the scenes to support the above
1.5.1
- Tested up to WP v5.5
1.5
- Tested up to WP v5.3
- Added enforcement for WordPress and PHP minimum version requirements
- Fixed minor bug to prevent unintended empty routes
- Minor text updates and adding textdomain to translation functions that didn’t have them
1.4.3
- Added
load_plugin_textdomain()
for i18n
1.4.2
- Fixed issue causing unintentional unlocking of endpoints when another WP_Error existed before this plugin did its job
1.4.1
- Fixed echo of text URL to primary Plugins page in WP Dashboard
1.4
- Tested for WP v4.8
- Tested for PHP 5.3+
- Added settings screen
- Site Admins may now whitelist routes that they wish to allow unauthenticated access to
- Added
dra_allow_rest_api
filter to the is_logged_in() check, so developers can get more granular with permissions - Props to @tangrufus for all of the help that went into this release
1.3
- Tested for WP v4.7
- Adding new functionality to raise authentication errors in 4.7+ for non-logged-in users
1.2
- Tested for WP v4.5
- Removal of actions which publish REST info to the head and header
1.1
- Updated to support the new filters created in the 2.0 beta API
1.0
- Initial Release