1. REST API là gì trong WordPress?
REST API là cách để gửi – nhận dữ liệu giữa client và server mà không cần reload trang. Trong WordPress, REST API giúp lấy dữ liệu bài viết, gửi form, thực hiện action… thông qua các endpoint dạng /wp-json/....
Thay vì chỉ gọi data có sẵn, bạn hoàn toàn có thể tạo route riêng để xử lý logic của chính mình.
2. Tạo route REST API cơ bản
Đặt đoạn code sau vào file functions.php hoặc plugin riêng:
add_action('rest_api_init', function () {
register_rest_route('demo/v1', '/hello', [
'methods' => 'GET',
'callback' => 'demo_api_hello',
]);
});
function demo_api_hello($request) {
return [
'status' => 'success',
'message' => 'Xin chào từ REST API!',
];
}
Truy cập thử: /wp-json/demo/v1/hello
Kết quả sẽ là một đoạn JSON như sau:
{
"status": "success",
"message": "Xin chào từ REST API!"
}
3. Gửi tham số và xử lý logic
Bạn có thể lấy tham số từ URL bằng $request->get_param('ten'). Ví dụ:
add_action('rest_api_init', function () {
register_rest_route('demo/v1', '/greet', [
'methods' => 'GET',
'callback' => 'demo_api_greet',
]);
});
function demo_api_greet($request) {
$name = sanitize_text_field($request->get_param('ten'));
if (!$name) {
return new WP_Error('no_name', 'Thiếu tham số ten', ['status' => 400]);
}
return [
'status' => 'success',
'message' => 'Chào ' . $name,
];
}
Gọi thử: /wp-json/demo/v1/greet?ten=Tuấn → Kết quả:
{
"status": "success",
"message": "Chào Tuấn"
}
4. Trả dữ liệu dạng danh sách
Ví dụ: bạn muốn trả danh sách 5 bài viết gần đây, chỉ gồm ID, tiêu đề và link:
function demo_api_latest_posts($request) {
$posts = get_posts([
'numberposts' => 5,
'post_type' => 'post',
]);
$data = array_map(function($post) {
return [
'id' => $post->ID,
'title' => get_the_title($post),
'link' => get_permalink($post),
];
}, $posts);
return [
'status' => 'success',
'data' => $data,
];
}
add_action('rest_api_init', function () {
register_rest_route('demo/v1', '/latest', [
'methods' => 'GET',
'callback' => 'demo_api_latest_posts',
]);
});
5. Lưu ý khi viết REST API
- Trả JSON có cấu trúc rõ ràng:
status,message,datanếu cần - Sử dụng
WP_Errornếu muốn trả lỗi chuẩn - Luôn sanitize dữ liệu người dùng gửi lên
- Có thể dùng
'permission_callback'để giới hạn quyền truy cập nếu cần
Kết luận
REST API là công cụ cực kỳ mạnh mẽ để biến WordPress thành một nền tảng mở, kết nối dễ dàng với JavaScript, app di động, hoặc hệ thống khác. Bắt đầu bằng những route nhỏ như /demo/v1/hello là cách nhanh và dễ hiểu nhất để tiếp cận REST API – rồi bạn có thể mở rộng đến form, filter, Ajax hoặc plugin tùy biến sau này.
Nếu bạn muốn xem plugin thực tế đã dùng REST API thế nào, hãy thử Init Live Search hoặc Init View Count – tất cả đều dùng REST API để xử lý phía client.
Bình luận