Đăng nhập

Lập trình WordPress nâng cao: REST API trong WordPress

REST API trong WordPress – phần này giúp bạn kết nối WordPress với các ứng dụng bên ngoài như:

  • Web app (React, Vue, Next.js,…)
  • App mobile (iOS, Android)
  • Hệ thống nội bộ (CRM, học trực tuyến, v.v.)
  • Các plugin sử dụng AJAX hoặc fetch data động

REST API là gì?

REST API (Representational State Transfer) là cách WordPress cung cấp và nhận dữ liệu dưới dạng JSON thông qua các URL đặc biệt (gọi là endpoint).

Với REST API:

  • Bạn có thể truy xuất bài viết, chuyên mục, CPT,…
  • Gửi dữ liệu từ bên ngoài vào WP (thêm bài viết, comment,…)
  • Tạo endpoint riêng để xử lý logic đặc biệt (nâng cao)

1. Truy cập API mặc định của WordPress

Bạn có thể truy cập URL sau:

https://tenmien.com/wp-json/wp/v2/posts

Kết quả: trả về JSON danh sách bài viết mới nhất

Một số endpoint mặc định của WordPress:

API URLMô tả
/wp-json/wp/v2/postsDanh sách bài viết
/wp-json/wp/v2/pagesDanh sách trang
/wp-json/wp/v2/categoriesDanh mục
/wp-json/wp/v2/tagsTag
/wp-json/wp/v2/usersTài khoản (cần quyền admin)
/wp-json/wp/v2/khoahocCPT tên khoahoc nếu có bật show_in_rest

2. Bật REST API cho CPT (Custom Post Type)

Trong bài CPT bạn đã học, hãy chắc chắn có dòng này:

'show_in_rest' => true,

⚠ Nếu thiếu, CPT sẽ không có endpoint REST mặc định.

3. Tùy chỉnh REST API (thêm field mới)

Ví dụ: Thêm custom field ACF “giảng viên” vào API khoahoc:

function gfon_rest_api_add_fields() {
    register_rest_field('khoahoc', 'giang_vien', array(
        'get_callback' => function($post_arr) {
            return get_field('giang_vien', $post_arr['id']);
        },
        'schema' => null,
    ));
}
add_action('rest_api_init', 'gfon_rest_api_add_fields');

➡️ Kết quả: khi bạn gọi /wp-json/wp/v2/khoahoc, mỗi bài sẽ có trường giang_vien

4. Gửi dữ liệu vào WP từ bên ngoài (POST, PUT)

🔐 Gửi dữ liệu cần có xác thực (JWT hoặc Cookie Auth)

Ví dụ:

POST /wp-json/wp/v2/posts
Headers:
  Authorization: Bearer <token>
Body:
  {
    "title": "Bài viết mới",
    "content": "Nội dung...",
    "status": "publish"
  }

👉 Bạn có thể dùng Postman, fetch(), axios, hoặc mobile app gửi dữ liệu vào WordPress.

5. Tạo API riêng (Custom Endpoint)

Bạn có thể tạo endpoint API của riêng bạn.

Ví dụ: /wp-json/gfon/v1/hello

add_action('rest_api_init', function () {
    register_rest_route('gfon/v1', '/hello', array(
        'methods' => 'GET',
        'callback' => function () {
            return ['message' => 'Xin chào từ API Gfon!'];
        }
    ));
});

➡️ Truy cập: https://tenmien.com/wp-json/gfon/v1/hello

Công cụ test:

  • Postman – Gửi yêu cầu API, test các endpoint
  • Trình duyệt → mở DevTools > tab Network → test các API được gọi
  • JS/React: dùng fetch() hoặc axios để gọi API từ giao diện

Tổng kết

Bạn đã học được gìMục đích
REST API URL mặc địnhTruy xuất bài viết, trang, CPT, danh mục…
Cấu hình CPT để dùng được APIshow_in_rest => true
Thêm field tùy chỉnh vào APIDùng register_rest_field()
Tạo endpoint riêngregister_rest_route()
Dùng API để nhận dữ liệu bên ngoàiPOST, PUT, DELETE (cần xác thực bảo mật)

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.