WordPress از 4.7 REST API داخلی داره. با اون میتونید از هر برنامهای به WordPress متصل بشید. برای Headless WordPress، Mobile App، Integration ضروریه.
REST API چیه؟
Representational State Transfer. یه استاندارد برای ارتباط بین سیستمها با HTTP.
Base URL
https://example.com/wp-json/wp/v2/
Endpoints محبوب
Posts: /posts
Pages: /pages
Users: /users
Media: /media
Comments: /comments
Categories: /categories
Tags: /tags
مثال Request
GET /wp-json/wp/v2/posts
JSON برمیگرده با همه پستها.
Query Parameters
?per_page=20&page=2&search=keyword&categories=5
Authentication
Application Passwords
در Users → Profile. برای هر Application یه Password.
OAuth
پیچیدهتر. برای Third-party.
JWT
پلاگین JWT Authentication. Stateless.
Read Post
GET /wp-json/wp/v2/posts/123
Create Post
POST /wp-json/wp/v2/posts
{
"title": "عنوان",
"content": "محتوا",
"status": "publish"
}
Update Post
PUT/POST /wp-json/wp/v2/posts/123
{
"title": "عنوان جدید"
}
Delete Post
DELETE /wp-json/wp/v2/posts/123
Custom Post Type
در register_post_type: show_in_rest => true
Endpoint: /wp-json/wp/v2/book
Custom Fields (ACF)
ACF to REST API پلاگین. Custom Fields به REST اضافه میشه.
Custom Endpoint
add_action('rest_api_init', function() {
register_rest_route('myplugin/v1', '/data', [
'methods' => 'GET',
'callback' => 'my_data_callback'
]);
});
Headless WordPress
Frontend با React یا Vue، Backend WordPress. REST API پل بین دو.
Next.js + WordPress
محبوبترین ترکیب Headless. سرعت React + انعطاف WordPress.
Mobile App
React Native، Flutter از REST API استفاده میکنن.
CORS
برای Domain مختلف:
add_action('rest_api_init', function() {
header('Access-Control-Allow-Origin: *');
});
Rate Limiting
Cloudflare یا پلاگینهای Rate Limit.
Cache
REST API Response رو Cache کنید:
- Cloudflare
- W3 Total Cache
- Custom transient
Debug
Postman یا Insomnia برای تست REST API.
Documentation
developer.wordpress.org/rest-api/
GraphQL
WPGraphQL جایگزین. Query انعطافپذیر.
Security
SSL: HTTPS اجباری
Rate Limit: جلوی DDoS
Permissions: فقط لازم
Nonce: برای Ajax
Disable Users API
پیشفرض User endpoint اطلاعات کاربران رو نشون میده. Disable کنید یا Restrict.
Performance
محدود کردن Fields:
?_fields=id,title,content
Embed
?_embed برای اطلاعات مرتبط.
سباهاست
هاست وردپرس سباهاست از REST API پشتیبانی کامل.
جمعبندی
REST API دنیای وردپرس رو باز میکنه. با یاد گرفتنش، پروژههای حرفهای رو راه بندازید.