JSON REST API là một tính năng mạnh mẽ được tích hợp sẵn trong WordPress từ phiên bản 4.7. Tính năng này cho phép các nhà phát triển giao tiếp với trang web WordPress từ xa, tạo ra các ứng dụng di động, tích hợp với các dịch vụ bên ngoài, và nhiều hơn thế nữa. Tuy nhiên, không phải tất cả người dùng đều cần tính năng này và có thể muốn tắt nó vì lý do bảo mật hoặc để tối ưu hiệu suất của trang web. Bài viết này sẽ hướng dẫn bạn cách tắt JSON REST API trong WordPress một cách dễ dàng.
1. Tại sao bạn có thể muốn tắt JSON REST API?
Bảo mật: Mở JSON REST API có thể làm tăng rủi ro bảo mật, đặc biệt là khi trang web của bạn không yêu cầu bất kỳ kết nối API nào từ bên ngoài.
Tối ưu hiệu suất: JSON REST API có thể tiêu tốn tài nguyên máy chủ nếu có quá nhiều yêu cầu từ API, ảnh hưởng đến hiệu suất tổng thể của trang web.
Giảm thiểu lỗi: Với các trang web đơn giản không cần tích hợp bên ngoài, tắt JSON REST API có thể giúp giảm thiểu lỗi phát sinh từ các plugin hoặc mã nguồn tùy chỉnh không tương thích.
2. Cách tắt JSON REST API trong WordPress
Có một số cách để tắt JSON REST API trong WordPress, từ việc sử dụng plugin đến việc thêm mã vào tệp functions.php của theme.
a. Sử dụng Plugin
Một trong những cách đơn giản nhất để tắt JSON REST API là sử dụng plugin. Dưới đây là các bước thực hiện:
Cài đặt và kích hoạt plugin “Disable REST API”:
Truy cập vào Bảng điều khiển WordPress (Dashboard).
Chọn “Plugins” -> “Add New”.
Tìm kiếm “Disable REST API” và nhấp vào “Install Now”.
Sau khi cài đặt xong, nhấp vào “Activate” để kích hoạt plugin.
Kiểm tra:
Sau khi plugin đã được kích hoạt, JSON REST API sẽ tự động bị tắt.
Bạn có thể kiểm tra bằng cách truy cập vào URL: https://yourdomain.com/wp-json/
. Nếu API bị tắt, bạn sẽ thấy một thông báo lỗi thay vì dữ liệu JSON.
b. Thêm mã vào tệp functions.php
Nếu bạn không muốn sử dụng plugin, bạn có thể tắt JSON REST API bằng cách thêm mã vào tệp functions.php
của theme. Dưới đây là cách thực hiện:
Truy cập vào tệp functions.php:
Đăng nhập vào Bảng điều khiển WordPress.
Chọn “Appearance” -> “Theme Editor”.
Tìm và mở tệp functions.php
.
Thêm mã sau vào tệp functions.php:
add_filter('rest_authentication_errors', function($result) {
if (!empty($result)) {
return $result;
}
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', 'Bạn phải đăng nhập để truy cập REST API.', array('status' => 401));
}
return $result;
});
Lưu tệp:
Sau khi thêm mã vào functions.php
, nhấp vào “Update File” để lưu thay đổi.
Mã này sẽ yêu cầu người dùng phải đăng nhập trước khi có thể truy cập vào JSON REST API. Điều này sẽ bảo vệ API khỏi những truy cập không mong muốn.
c. Sử dụng file .htaccess
Ngoài hai cách trên, bạn cũng có thể sử dụng tệp .htaccess
để tắt JSON REST API. Cách này yêu cầu bạn phải có quyền truy cập vào tệp .htaccess
trên máy chủ.
Truy cập vào tệp .htaccess:
Sử dụng FTP hoặc trình quản lý file của hosting để truy cập vào thư mục gốc của trang web WordPress và mở tệp .htaccess
.
Thêm đoạn mã sau vào tệp .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/ [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
Lưu tệp:
Sau khi thêm mã, lưu và tải lại tệp .htaccess
. Mã này sẽ chặn mọi yêu cầu đến JSON REST API.
3. Những lưu ý khi tắt JSON REST API
Tác động đến tính năng WordPress: Việc tắt JSON REST API có thể ảnh hưởng đến một số tính năng WordPress và plugin, đặc biệt là những tính năng liên quan đến REST API. Hãy đảm bảo rằng trang web của bạn không phụ thuộc vào API này trước khi tắt.
Kiểm tra kỹ trước khi áp dụng: Trước khi áp dụng bất kỳ phương pháp nào, hãy thử nghiệm trên một trang web phụ hoặc bản sao của trang web để đảm bảo không gây ra lỗi không mong muốn.
Kết luận
Tắt JSON REST API trong WordPress có thể là một bước cần thiết để bảo vệ trang web của bạn khỏi các rủi ro bảo mật và tối ưu hiệu suất. Bạn có thể chọn giữa việc sử dụng plugin, thêm mã vào functions.php
, hoặc chỉnh sửa tệp .htaccess
tùy theo nhu cầu và kiến thức kỹ thuật của mình. Hãy nhớ kiểm tra kỹ trước khi thực hiện để đảm bảo không làm gián đoạn hoạt động của trang web.
Kết nối với web designer Lê Thành Nam