Hướng dẫn lập trình custom REST API endpoint cho theme WordPress

Giới Thiệu Về REST API Trong WordPress

REST API là một trong những tính năng mạnh mẽ nhất của WordPress, cho phép các ứng dụng bên ngoài giao tiếp với dữ liệu trên website thông qua những endpoint linh hoạt. Nhờ REST API, bạn có thể xây dựng mobile app, SPA, hệ thống tự động hoặc gửi – nhận dữ liệu mà không cần tải lại trang.

Nếu bạn đang muốn tạo một custom REST API endpoint cho theme hoặc plugin của mình, bài viết này sẽ hướng dẫn chi tiết từng bước để bạn có thể tự triển khai một cách dễ dàng và hiệu quả.

Chuẩn Bị Môi Trường Lập Trình

Trước khi bắt đầu, hãy đảm bảo bạn đã có các điều kiện sau:

  • Website WordPress hoạt động bình thường.
  • Theme đang kích hoạt và có quyền chỉnh sửa file.
  • Kiến thức cơ bản về PHP và WordPress Hooks.

Cách Tạo Custom REST API Endpoint Trong WordPress

Dưới đây là hướng dẫn từng bước để bạn tự tạo một endpoint tùy chỉnh:

  1. Tạo hàm PHP xử lý dữ liệu

    Đầu tiên, bạn cần một hàm để xử lý khi endpoint được gọi. Ví dụ, hàm bên dưới trả về danh sách 10 bài viết gần nhất:

    function get_custom_posts( $data ) {
        $args = array(
            'post_type'   => 'post',
            'post_status' => 'publish',
            'numberposts' => 10,
        );
    
        $posts = get_posts( $args );
    
        return rest_ensure_response( $posts );
    }
    
  2. Đăng ký REST API Endpoint

    Tiếp theo, bạn sử dụng hook rest_api_init để khai báo endpoint mới:

    add_action( 'rest_api_init', function () {
        register_rest_route( 'custom/v1', '/posts/', array(
            'methods'  => 'GET',
            'callback' => 'get_custom_posts',
        ));
    });
    

    Sau khi đăng ký, endpoint sẽ có dạng:

    https://yourwebsite.com/wp-json/custom/v1/posts/
  3. Thêm tham số tùy chỉnh cho endpoint

    Bạn có thể mở rộng endpoint để lọc theo thẻ (tag) hoặc danh mục. Ví dụ, thêm tham số tag:

    function get_custom_posts( $data ) {
        $tag = isset( $data['tag'] ) ? sanitize_text_field( $data['tag'] ) : '';
    
        $args = array(
            'post_type'   => 'post',
            'post_status' => 'publish',
            'numberposts' => 10,
            'tag'         => $tag,
        );
    
        $posts = get_posts( $args );
        return rest_ensure_response( $posts );
    }
    

    Sử dụng endpoint như sau:

    https://yourwebsite.com/wp-json/custom/v1/posts/?tag=your-tag
  4. Kiểm tra hoạt động của endpoint

    Để kiểm tra, bạn chỉ cần mở trình duyệt và truy cập vào đường dẫn endpoint. Nếu mọi thứ đúng, bạn sẽ thấy dữ liệu dạng JSON hiển thị trên màn hình.

Lỗi Phổ Biến Và Cách Khắc Phục

  • 404 Not Found: Kiểm tra xem bạn đã đặt đúng namespace và route chưa, hoặc thử lưu lại permalink.
  • Unauthorized: Endpoint cần xác thực nhưng không có token. Hãy kiểm tra quyền truy cập.
  • Invalid JSON: Dữ liệu trả về hoặc gửi lên không đúng định dạng JSON.

Ứng Dụng Thực Tế Của Custom REST API

Custom endpoint trong WordPress có thể được ứng dụng vào rất nhiều mục đích:

  • Tạo API cho ứng dụng di động.
  • Kết nối WordPress với hệ thống CRM, ERP hoặc website khác.
  • Gửi – nhận dữ liệu AJAX mà không cần tải lại trang.
  • Tạo dashboard tùy chỉnh ngoài admin để hiển thị dữ liệu.

Kết Luận

Tự xây dựng REST API endpoint trong WordPress là một kỹ năng quan trọng nếu bạn muốn mở rộng tính năng hoặc xây dựng hệ thống lớn hơn dựa trên WordPress. Chỉ với vài bước đơn giản – tạo hàm xử lý dữ liệu, đăng ký route và kiểm tra endpoint – bạn đã có thể tạo ra API theo nhu cầu riêng của mình.

Hãy tiếp tục khám phá, sáng tạo và mở rộng REST API để nâng cấp khả năng của theme hoặc plugin mà bạn đang phát triển!