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 دنیای وردپرس رو باز میکنه. با یاد گرفتنش، پروژه‌های حرفه‌ای رو راه بندازید.