Cách Mình Tích Hợp WordPress
Nguyên tắc tích hợp WordPress REST API để tự động tạo và quản lý bài viết từ hệ thống nội bộ
WordPress là điểm cuối của content pipeline. Đăng bài thủ công thì chậm và dễ sai -- tích hợp qua API cho phép mình kiểm soát toàn bộ quá trình, từ upload media cho tới gắn category, một cách tự động và nhất quán.
Nguyên Tắc Tích Hợp
1. Dùng Application Passwords cho server-to-server
WordPress hỗ trợ nhiều cách xác thực, nhưng cho việc tự động publish từ server thì Application Passwords là đủ và đơn giản nhất.
| Phương thức | Phù hợp khi | Không phù hợp khi |
|---|---|---|
| Application Passwords | Server-to-server, automation pipeline, một site | Cần user consent, multi-site SaaS |
| OAuth 2.0 | Hành động thay mặt user, multi-tenant app | Setup phức tạp không cần thiết cho internal tool |
| JWT | Stateless auth, microservices | WordPress không hỗ trợ mặc định, cần plugin |
Application Passwords tạo trực tiếp trong WordPress admin (Hồ sơ → Mật khẩu ứng dụng). Để tạo mật khẩu ứng dụng, nhập tên mật khẩu bất kì vào ô "Tên mật khẩu ứng dụng mới" và bấm thêm mật khẩu.
Lưu ý: Mật khẩu ứng dụng chỉ xuất hiện một lần sau đó sẽ copy được nữa. Vì thể, nhớ lưu lại để dùng trong tương lai.
2. Upload media trước, tạo post sau
Đây là thứ tự bắt buộc. WordPress cần attachment ID để gắn ảnh vào bài viết. Nếu tạo post trước rồi upload ảnh sau, phải update post lần nữa -- phức tạp hơn và dễ rơi vào trạng thái nửa vời (post đã publish nhưng thiếu ảnh).
Pipeline đúng:
1. Chuẩn bị ảnh (resize, compress, đặt tên)
↓
2. Upload từng ảnh lên WordPress → nhận attachment ID
↓
3. Thay URL ảnh trong content bằng URL WordPress
↓
4. Tạo post với content đã có ảnh + set featured_media
Image optimization trước khi upload:
- Resize về kích thước hợp lý (WordPress tạo thumbnail tự động, nhưng ảnh gốc quá lớn tốn storage)
- Compress để giảm dung lượng
- Đặt tên file SEO-friendly:
tu-khoa-chinh-1.webpthay vìIMG_20240315_001.jpg - Alt text và caption không bao giờ để trống -- quan trọng cho SEO và accessibility
Đặt Tên Ảnh (Image Slug)
Tên file ảnh ảnh hưởng tới SEO. Cách đặt tên cụ thể tùy thuộc vào yêu cầu của Technical SEO phụ trách từng dự án, nhưng thường theo một trong hai cách:
Cách 1: Lấy từ alt text (5-10 từ)
Rút 5-10 từ đầu từ alt text của ảnh, bỏ dấu tiếng Việt, chuyển thành kebab-case.
Ví dụ: alt text "Giao diện trang quản lý bài viết WordPress" → giao-dien-trang-quan-ly-bai-viet-wordpress.webp
Cách 2: Đánh số theo từ khóa chính
Dùng từ khóa chính của bài viết, đánh số thứ tự cho từng ảnh.
Ví dụ: từ khóa chính "tối ưu seo on-page" → toi-uu-seo-on-page-1.webp, toi-uu-seo-on-page-2.webp, toi-uu-seo-on-page-3.webp
Tham Khảo Nhanh
Các Endpoint Hay Dùng
| Endpoint | Method | Mục đích |
|---|---|---|
/wp-json/wp/v2/posts |
GET | Lấy danh sách bài viết |
/wp-json/wp/v2/posts |
POST | Tạo bài viết mới |
/wp-json/wp/v2/posts/{id} |
PUT | Cập nhật bài viết |
/wp-json/wp/v2/media |
POST | Upload media |
/wp-json/wp/v2/categories |
GET/POST | Quản lý danh mục |
/wp-json/wp/v2/tags |
GET/POST | Quản lý thẻ |
Post Fields Thường Dùng
| Field | Kiểu | Ghi chú |
|---|---|---|
title |
string | Tiêu đề bài viết |
content |
string (HTML) | Nội dung bài viết |
slug |
string | URL slug (tự generate, không dấu) |
status |
draft / pending / publish |
Trạng thái bài viết |
featured_media |
number | Attachment ID của ảnh đại diện |
categories |
number[] | Mảng category IDs |
tags |
number[] | Mảng tag IDs |
excerpt |
string | Mô tả ngắn (meta description) |