Với sự ra mắt của WordPress 7.0, tư duy và cách thức phát triển (development workflow) một plugin đã thay đổi rất lớn so với các phiên bản cũ (từ 6.x trở về trước). WordPress không còn đơn thuần là cung cấp các hàm hook (add_action, add_filter) rời rạc, mà dịch chuyển thành một nền tảng hướng API cấu trúc (API-driven platform).
Nếu bạn là nhà phát triển plugin, dưới đây là những điểm khác biệt cốt lõi trong cách tạo plugin ở kỷ nguyên mới này:
1. Viết Block chỉ bằng PHP (PHP-Only Block Registration)
-
Cách cũ: Muốn tạo một Block tùy chỉnh cho Gutenberg, bạn bắt buộc phải biết JavaScript (React), cấu hình Webpack/Babel và chạy một pipeline biên dịch phức tạp (
@wordpress/scripts). -
Cách mới trong 7.0: Bạn có thể đăng ký và render các Block hoàn toàn bằng PHP 100% mà không cần đụng vào một dòng React nào. Điều này giúp các lập trình viên chuyên Backend/Classic WordPress ngày xưa dễ dàng tạo block nhanh gọn mà không bị rào cản bởi Node.js.
2. Tích hợp AI thông qua Core API chung (WP AI Client)
-
Cách cũ: Nếu muốn làm plugin có tính năng AI (ví dụ: tự viết mô tả, tự tạo ảnh), bạn phải tự viết code cắm API Key của OpenAI hoặc Gemini vào plugin, tự xử lý mã nguồn kết nối, curl, và quản lý bảo mật. Mỗi plugin AI trên web của khách hàng lại bắt họ nhập một cái API Key riêng.
-
Cách mới trong 7.0: WordPress đưa thẳng hạ tầng WP AI Client và Connectors API vào nhân hệ thống.
-
Người dùng chỉ cần nhập API Key một lần duy nhất tại mục Settings > Connectors trong admin.
-
Plugin của bạn chỉ cần gọi hàm của Core (ví dụ sử dụng class
WP_AI_Client_Prompt_Builder) để yêu cầu AI xử lý. Nó hoàn toàn độc lập với nhà cung cấp (provider-agnostic), nghĩa là code của bạn sẽ tự chạy được cho cả OpenAI, Anthropic hay Google Gemini tùy theo cài đặt của khách hàng mà không cần viết lại logic.
-
3. Khai thác Client-Side Abilities API
-
Cách cũ: Để gán các “khả năng” (abilities) cho plugin phản hồi động trên trình duyệt, bạn phải tự viết các hàm REST API riêng và viết JS gọi qua gọi lại (Fetch/Axios).
-
Cách mới trong 7.0: Hệ thống bổ sung gói JavaScript
@wordpress/core-abilitiesvà@wordpress/abilities. Plugin của bạn có thể đăng ký các tác vụ tự động hóa (automation) ở phía server, và phía client (JS) sẽ tự động đồng bộ qua REST API, giúp tạo ra các con “AI Agent” chạy mượt mà ngay trong không gian làm việc của WordPress.
4. Xây dựng giao diện Admin bằng DataViews & DataForm
-
Cách cũ: Trang quản trị của plugin thường được xây dựng bằng cách tạo menu
add_menu_page(), sau đó viết mã HTML trộn lẫn PHP để tạo bảng dữ liệu (hoặc dùng lớpWP_List_Tablerất cũ kỹ). -
Cách mới trong 7.0: WordPress chuẩn hóa giao diện bằng bộ công cụ DataViews và DataForm (vốn dùng để làm trang quản lý bài viết mới của WP). Bạn có thể dùng các component React có sẵn của hệ thống để tạo ra các trang cấu hình plugin có bộ lọc dữ liệu cực mạnh, layout dạng lưới (Grid) hoặc dạng dòng thời gian (Timeline) thời thượng mà không cần tự code UI từ đầu.
5. Khai tử Classic Meta Boxes
-
Cách cũ: Tạo các ô nhập liệu tùy chỉnh dưới bài viết bằng hàm
add_meta_box(). -
Cách mới trong 7.0: Do WordPress 7.0 bắt đầu đặt nền móng cho tính năng Cộng tác thời gian thực (Real-time Collaboration), các Meta Box kiểu cũ bằng PHP thuần sẽ vô hiệu hóa chế độ cộng tác này của bài viết. WordPress khuyến khích (và ép buộc) lập trình viên chuyển sang sử dụng
register_post_meta()kết hợp với component<PluginSidebar>của Gutenberg để giao diện đồng bộ theo thời gian thực tốt nhất.
6. Tiêu chuẩn kỹ thuật cao hơn (PHP 7.4+ & React 19)
-
Cách cũ: Code plugin phải cố gắng tương thích ngược với các bản PHP rất cũ (như PHP 5.6 hay 7.0) để tiếp cận nhiều khách hàng dùng hosting cùi.
-
Cách mới trong 7.0: WordPress nâng mức PHP tối thiểu lên 7.4.0 (khuyến nghị 8.3). Bạn có thể tự tin dùng các cú pháp PHP hiện đại hơn (Arrow functions, Typed properties…). Ngoài ra, phần Editor đã nâng cấp lên React 19, đòi hỏi các đoạn mã custom block cũ bằng JS phải được rà soát lại để tránh lỗi không tương thích (deprecated).
Tóm lại: Tạo plugin cho WordPress 7.0 giống như bạn đang phát triển một ứng dụng SaaS hiện đại. Bạn viết ít mã nguồn boilerplate hơn, tận dụng được giao diện và hạ tầng AI có sẵn của Core, nhưng đổi lại bạn phải quen với tư duy lập trình hướng API và các tiêu chuẩn bảo mật/đồng bộ thời gian thực khắt khe hơn.
