فرض کنید اطلاعات سایت وردپرسی شما فقط قرار نباشد داخل همان سایت استفاده شود. شاید بخواهید آخرین مقالات را در یک اپلیکیشن موبایل نمایش دهید، یک نرمافزار دیگر بهصورت خودکار در وردپرس پیشنویس ایجاد کند، یک داشبورد اختصاصی بسازید یا حتی ظاهر سایت را با Next.js توسعه دهید اما مدیریت محتوا همچنان در وردپرس باقی بماند. برای این ارتباط، یکی از مهمترین ابزارها WordPress REST API است.
REST API به نرمافزارهای دیگر اجازه میدهد با وردپرس ارتباط برقرار کنند، اطلاعات دریافت کنند و در صورت داشتن مجوز مناسب، دادههایی را ایجاد، ویرایش یا حذف کنند. به همین دلیل REST API یکی از اجزای مهم وردپرس مدرن و یکی از پایههای معماری Headless WordPress است.
در این راهنما از پایه بررسی میکنیم REST API وردپرس چیست، چگونه کار میکند، Endpoint و JSON چه هستند، چه کاربردهایی دارد، احراز هویت چگونه انجام میشود و هنگام استفاده از آن چه ملاحظات امنیتی باید رعایت شود.
ابتدا API چیست؟
API مخفف Application Programming Interface یا «رابط برنامهنویسی کاربردی» است. به زبان ساده، API روشی استاندارد برای ارتباط دو نرمافزار با یکدیگر فراهم میکند.
برای مثال، یک اپلیکیشن هواشناسی لازم نیست خودش ایستگاه هواشناسی داشته باشد؛ میتواند از API یک سرویس هواشناسی بخواهد «دمای فعلی رشت را بده». تقریباً همین منطق در WordPress REST API وجود دارد: یک نرمافزار میتواند از وردپرس بخواهد آخرین مقالات، اطلاعات یک صفحه، دستهبندیها یا دادههای دیگر را در اختیارش قرار دهد.
REST چیست؟
REST مخفف Representational State Transfer است. REST یک پروتکل مستقل نیست، بلکه مجموعهای از اصول معماری برای طراحی ارتباطات تحت وب است. در یک REST API، منابع مختلف معمولاً از طریق URLها در دسترس قرار میگیرند و از متدهای HTTP برای مشخصکردن نوع عملیات استفاده میشود.
برای نمونه، مسیر /posts میتواند نماینده مجموعه نوشتهها باشد و /posts/123 به یک نوشته مشخص اشاره کند.
REST API وردپرس چیست؟
WordPress REST API رابطی است که به برنامههای دیگر اجازه میدهد از طریق HTTP با دادهها و قابلیتهای WordPress ارتباط برقرار کنند. وردپرس داده را معمولاً در قالب JSON دریافت یا ارسال میکند.
برای بسیاری از دادههای داخلی وردپرس، از جمله نوشتهها، صفحات، دستهبندیها، برچسبها، رسانهها، دیدگاهها و کاربران، Endpointهای استاندارد وجود دارد. برنامهها میتوانند بر اساس سطح دسترسی خود این دادهها را بخوانند و در برخی موارد ایجاد، ویرایش یا حذف کنند.
REST API وردپرس کجاست؟
در یک نصب استاندارد WordPress، ریشه API معمولاً از این مسیر قابل دسترسی است:
https://example.com/wp-json/
برای مثال Endpoint نوشتهها چنین است:
https://example.com/wp-json/wp/v2/posts
wp-json یک فایل فیزیکی روی هاست نیست؛ این مسیر توسط وردپرس پردازش میشود و ورودی اصلی REST API است.
Endpoint چیست؟
Endpoint آدرسی است که یک Resource یا عملیات مشخص API از طریق آن قابل دسترسی است. برای مثال:
/wp-json/wp/v2/posts
با یک درخواست GET میتواند فهرست نوشتهها را برگرداند، در حالی که:
/wp-json/wp/v2/posts/123
به نوشتهای با ID برابر 123 اشاره میکند.
مهمترین Endpointهای REST API وردپرس
| اطلاعات | Endpoint پایه |
|---|---|
| نوشتهها | /wp/v2/posts |
| صفحات | /wp/v2/pages |
| دستهبندیها | /wp/v2/categories |
| برچسبها | /wp/v2/tags |
| رسانهها | /wp/v2/media |
| دیدگاهها | /wp/v2/comments |
| کاربران | /wp/v2/users |
| انواع محتوا | /wp/v2/types |
JSON چیست و چرا در REST API استفاده میشود؟
JSON مخفف JavaScript Object Notation و یک قالب سبک و استاندارد برای انتقال داده است. تقریباً همه زبانهای برنامهنویسی مدرن میتوانند JSON را پردازش کنند.
{
"id": 125,
"slug": "wordpress-rest-api",
"status": "publish",
"title": {
"rendered": "REST API وردپرس چیست؟"
}
}
در معماری REST، نرمافزار مصرفکننده معمولاً یک Request میفرستد و WordPress یک Response شامل دادههای JSON برمیگرداند.
Request و Response چیست؟
Request درخواستی است که Client برای Server میفرستد؛ مثلاً «مقاله شماره ۱۲۵ را بده». Response پاسخی است که Server بعد از پردازش درخواست بازمیگرداند.
در سادهترین حالت:
Application → Request → WordPress → Response → Application
HTTP Method چیست؟
GET
برای دریافت اطلاعات استفاده میشود. مثلاً GET /wp/v2/posts یعنی فهرست نوشتهها را دریافت کن.
POST
معمولاً برای ایجاد Resource جدید یا برخی عملیات تغییر داده استفاده میشود. با احراز هویت و مجوز مناسب، میتوان از آن برای ایجاد نوشته استفاده کرد.
DELETE
برای حذف Resource استفاده میشود و طبیعتاً نیازمند مجوز مناسب است.
PUT و PATCH
در REST APIها برای بهروزرسانی داده به کار میروند، هرچند نحوه پشتیبانی دقیق هر API میتواند متفاوت باشد.
چگونه REST API وردپرس را بدون برنامهنویسی امتحان کنیم؟
برای یک آزمایش ساده میتوانید آدرس زیر را در مرورگر باز کنید:
https://example.com/wp-json/wp/v2/posts
اگر دسترسی عمومی API محدود نشده باشد، دادههای مربوط به نوشتههای عمومی به شکل JSON نمایش داده میشوند. برای کار جدیتر ابزارهایی مانند Postman، Insomnia و cURL مناسبتر هستند.
چگونه یک مقاله خاص را دریافت کنیم؟
اگر ID مقاله را بدانید، آن را به Endpoint اضافه کنید:
/wp-json/wp/v2/posts/125
وردپرس در این حالت داده همان نوشته را برمیگرداند.
Query Parameterها چه کاربردی دارند؟
REST API وردپرس پارامترهای مختلفی برای فیلترکردن و صفحهبندی نتایج دارد. برای نمونه:
/wp-json/wp/v2/posts?per_page=5
تعداد نتایج را محدود میکند. پارامترهایی مانند page، search، after، before و author نیز بسته به Endpoint قابل استفادهاند.
REST API وردپرس چه کاربردهایی دارد؟
۱. ساخت Headless WordPress
یکی از شناختهشدهترین کاربردها جداکردن Frontend از WordPress است. معماری میتواند به شکل WordPress → REST API → Next.js → Website باشد. نویسنده همچنان در وردپرس محتوا تولید میکند، اما سایت اصلی توسط قالب WordPress رندر نمیشود.
برای درک تصویر بزرگتر این معماری، راهنمای Headless CMS چیست؟ را نیز مطالعه کنید.
۲. ساخت اپلیکیشن موبایل
یک رسانه میتواند WordPress را مرکز مدیریت محتوا قرار دهد و همان داده را از طریق API در وبسایت، اپ Android و اپ iOS نمایش دهد. در این حالت محتوا یک بار مدیریت و در چند کانال مصرف میشود.
۳. انتشار خودکار محتوا
یک نرمافزار خارجی میتواند با Authentication مناسب از طریق API در WordPress محتوا ایجاد کند. برای نمونه یک Workflow اتوماسیون میتواند متن را آماده کند، تصویر را بارگذاری کند و یک Draft در وردپرس بسازد تا قبل از انتشار بررسی شود.
۴. اتصال WordPress به نرمافزارهای دیگر
REST API میتواند WordPress را به CRM، ERP، اپلیکیشن موبایل، سامانههای هوش مصنوعی، داشبوردهای داخلی و سایر نرمافزارها متصل کند.
۵. ساخت داشبورد اختصاصی
لازم نیست همه عملیات مدیریتی الزاماً در wp-admin انجام شوند. میتوان رابطی اختصاصی ساخت که فقط دادهها و قابلیتهای مورد نیاز یک نقش خاص را نمایش دهد.
۶. استفاده از WordPress بهعنوان Content Hub
در معماریهای پیشرفتهتر، WordPress میتواند مرکز محتوا باشد و وبسایت، اپلیکیشن، خبرنامه، دستیار هوش مصنوعی یا Partner Portal همگی مصرفکننده همان محتوا باشند.
آیا Gutenberg از REST API استفاده میکند؟
بله. REST API فقط ابزاری برای Headless WordPress نیست و بخشهایی از WordPress مدرن، از جمله Block Editor، از آن استفاده میکنند. بنابراین این API یک قابلیت حاشیهای نیست و غیرفعالسازی بیدلیل آن میتواند قابلیتهای Core یا افزونهها را مختل کند.
Authentication چیست؟
Authentication یعنی اثبات هویت Client. خواندن محتوای عمومی معمولاً نیازی به احراز هویت ندارد؛ اما اگر برنامه بخواهد محتوای خصوصی بخواند، نوشته ایجاد یا ویرایش کند یا عملیاتی حساس انجام دهد، باید احراز هویت شود و حساب مربوطه Capability لازم را داشته باشد.
روشهای Authentication در WordPress REST API
Cookie Authentication
برای درخواستهایی که داخل همان محیط WordPress و توسط کاربر Loginشده انجام میشوند، Cookie Authentication روش استاندارد داخلی است و معمولاً Nonce نیز برای محافظت در برابر CSRF به کار میرود.
Application Passwords
برای اتصال برنامه خارجی، Application Password یکی از گزینههای رسمی WordPress است. این Credential از رمز اصلی حساب جدا است و میتوان آن را مستقل لغو کرد. در استفاده خارجی باید ارتباط HTTPS برقرار باشد.
آیا باید نام کاربری و رمز اصلی WordPress را به برنامه خارجی بدهیم؟
خیر. برای Integration واقعی بهتر است Credential اختصاصی، کماختیار و قابل لغو ایجاد شود. قراردادن رمز Administrator اصلی در سرویسهای خارجی یک تصمیم امنیتی ضعیف است.
آیا REST API وردپرس خطر امنیتی دارد؟
صرف فعال بودن REST API به معنی ناامن بودن سایت نیست. دادههای عمومی میتوانند از API نیز عمومی باشند، اما داده خصوصی و عملیات حساس باید تابع Authentication و Permission باشند.
ریسک اصلی زمانی ایجاد میشود که Endpoint سفارشی یا افزونهای Permission را اشتباه پیادهسازی کند، داده حساس را عمومی سازد یا Credentialها بهدرستی محافظت نشوند.
اصول امنیتی مهم در استفاده از REST API
- اصل کمترین دسترسی: هر Application فقط Permissionهایی را داشته باشد که واقعاً نیاز دارد.
- HTTPS: Credentialها روی ارتباط ناامن ارسال نشوند.
- محافظت از Secretها: Token یا Password داخل Frontend عمومی یا Repository عمومی قرار نگیرد.
- Permission Callback: Endpoint سفارشی باید سطح دسترسی را بهدرستی بررسی کند.
- Validation و Sanitization: به هیچ ورودی خارجی اعتماد مستقیم نشود.
- Rate Limiting و Monitoring: در پروژههای پرترافیک یا حساس، الگوی مصرف API کنترل شود.
آیا بهتر است REST API را غیرفعال کنیم؟
در اغلب سایتها، غیرفعالکردن کامل REST API راهکار امنیتی مناسبی نیست. بهتر است Endpointهای غیرضروری، Permissionها، دادههای منتشرشده و افزونههای آسیبپذیر بررسی شوند. محدودکردن کل API بدون شناخت وابستگیها ممکن است WordPress یا افزونهها را مختل کند.
Custom Post Type و REST API
انواع محتوای اختصاصی مانند پروژه، دوره، ملک یا کتاب نیز میتوانند از طریق REST API در دسترس قرار گیرند. هنگام ثبت Custom Post Type میتوان پشتیبانی REST را فعال کرد:
'show_in_rest' => true
آیا میتوان Endpoint اختصاصی ساخت؟
بله. توسعهدهنده میتواند Route و Endpoint اختصاصی تعریف کند. برای مثال:
/wp-json/gilarena/v1/services
WordPress تابع register_rest_route() را برای این کار ارائه میکند. در پروژه واقعی باید Namespace، Versioning، Permission، Validation و Schema با دقت طراحی شوند.
REST API چه تفاوتی با WPGraphQL دارد؟
REST API بخشی از WordPress Core است. WPGraphQL افزونهای مستقل است که GraphQL API را به وردپرس اضافه میکند. در REST معمولاً با Resourceها و Endpointهای متفاوت کار میکنید؛ در GraphQL، Client میتواند دقیقاً فیلدهای مورد نیازش را Query کند.
هیچکدام برای همه پروژهها ذاتاً بهتر نیستند. برای بسیاری از Integrationهای WordPress، REST API ساده و کافی است؛ در پروژههای دارای روابط داده پیچیده و Frontendهای GraphQL-based ممکن است WPGraphQL مناسبتر باشد.
آیا REST API باعث کندی WordPress میشود؟
وجود API به خودی خود سایت را کند نمیکند، اما Requestهای API نیز منابع Server مصرف میکنند. درخواستهای بسیار زیاد، Queryهای سنگین، نبود Pagination، Cache نامناسب یا Endpointهای غیربهینه میتوانند بار سرور را افزایش دهند. در پروژههای پرترافیک باید Caching، Pagination، Rate Limiting و Query Optimization را جدی گرفت.
REST API چه کاربردی برای هوش مصنوعی دارد؟
یک سیستم AI میتواند از طریق REST API مقالات WordPress را دریافت، تحلیل یا دستهبندی کند و با مجوز مناسب Draft، Metadata یا داده ساختاریافته به WordPress برگرداند. اما دادن دسترسی مستقیم انتشار به یک سیستم خودکار بدون Validation، Human Review و Guardrail مناسب میتواند ریسک محتوایی و امنیتی ایجاد کند.
یک نمونه کاربرد واقعی در اتوماسیون محتوا
یک Workflow حرفهای میتواند چنین باشد:
تولید یا دریافت محتوا → بررسی و تأیید → REST API → ایجاد Draft در WordPress → بازبینی انسانی → انتشار
در مرحله پیشرفتهتر میتوان تصویر شاخص، دستهبندی، برچسب، Excerpt و Custom Fieldها را نیز از طریق Integration مدیریت کرد. به این ترتیب REST API میتواند WordPress را از یک CMS دستی به بخشی از یک سیستم انتشار خودکار تبدیل کند.
چه کسانی باید REST API وردپرس را یاد بگیرند؟
- توسعهدهندگان WordPress
- Frontend Developerها
- توسعهدهندگان اپلیکیشن موبایل
- سازندگان افزونه
- توسعهدهندگان Headless WordPress
- متخصصان Automation و Integration
- توسعهدهندگان SaaS
مسیر پیشنهادی یادگیری REST API وردپرس
- مفاهیم HTTP شامل Request، Response، Method، Header و Status Code را یاد بگیرید.
- JSON را بشناسید.
- Endpointهای عمومی WordPress را در مرورگر امتحان کنید.
- Query Parameterها و Pagination را تمرین کنید.
- Postman یا cURL را یاد بگیرید.
- Authentication و Application Password را بررسی کنید.
- یک Custom Endpoint بسازید.
- Permission، Validation و Sanitization را تمرین کنید.
- در نهایت یک Integration واقعی ایجاد کنید.
چند تصور اشتباه درباره REST API وردپرس
REST API فقط برای Headless است
خیر. Headless تنها یکی از کاربردها است. Core وردپرس، افزونهها، داشبوردهای سفارشی و Integrationها نیز میتوانند از آن استفاده کنند.
فعال بودن wp-json یعنی سایت هک میشود
خیر. نمایش داده عمومی از Endpoint عمومی بهخودیخود آسیبپذیری نیست. مسئله اصلی Permission، Authentication و نوع دادهای است که Endpoint منتشر میکند.
هرکسی با REST API میتواند مقاله سایت را حذف کند
خیر. عملیات حساس نیازمند Authentication و Capability مناسب هستند.
اگر از REST API استفاده کنیم سایت Headless شده است
خیر. ممکن است یک افزونه از REST API استفاده کند در حالی که Frontend اصلی همچنان یک Theme استاندارد WordPress باشد. Headless یک تصمیم معماری درباره جدایی Presentation Layer از CMS است.
REST API وردپرس در یک نگاه
| مفهوم | توضیح |
|---|---|
| API | رابط ارتباط میان نرمافزارها |
| REST | سبک معماری API |
| WordPress REST API | API رسمی WordPress |
/wp-json/ |
مسیر پایه API |
| Endpoint | نقطه دسترسی به Resource یا عملیات |
| JSON | قالب متداول تبادل داده |
| GET | دریافت اطلاعات |
| POST | ایجاد یا تغییر داده |
| Authentication | احراز هویت |
| Application Password | Credential مخصوص Application |
| Headless WordPress | یکی از مهمترین کاربردهای API |
جمعبندی
REST API یکی از مهمترین اجزای معماری WordPress مدرن است. این API به WordPress اجازه میدهد از یک سیستم مدیریت محتوای منفرد به بخشی از یک اکوسیستم نرمافزاری بزرگتر تبدیل شود.
از طریق REST API میتوان دادههای WordPress را خواند، با مجوز مناسب محتوا ایجاد و ویرایش کرد، اپلیکیشن موبایل و Frontend مستقل ساخت، WordPress را Headless کرد، داشبورد اختصاصی ایجاد کرد و Workflowهای خودکار را به سایت متصل کرد.
مهمتر از همه، REST API صرفاً مجموعهای از URLها نیست؛ دروازه برنامهنویسی WordPress به نرمافزارهای دیگر است. هر زمان لازم باشد WordPress با یک Application دیگر ارتباط ساختاریافته داشته باشد، REST API یکی از نخستین گزینههایی است که باید بررسی شود.
منابع رسمی برای مطالعه بیشتر
پرسشهای متداول درباره REST API وردپرس
REST API وردپرس چیست؟
رابط برنامهنویسی رسمی WordPress است که به برنامههای دیگر اجازه میدهد از طریق HTTP با دادهها و قابلیتهای WordPress تعامل کنند.
آدرس REST API وردپرس چیست؟
در حالت معمول Index اصلی API در مسیر https://example.com/wp-json/ قرار دارد.
آیا WordPress REST API رایگان است؟
بله. قابلیتهای اصلی REST API بخشی از WordPress Core هستند.
آیا برای REST API باید افزونه نصب کرد؟
برای Endpointهای اصلی خیر. افزونهها میتوانند Endpointها یا قابلیتهای بیشتری به آن اضافه کنند.
آیا REST API وردپرس امن است؟
در صورت استفاده و طراحی صحیح بله. عملیات حساس باید بر اساس Authentication و Permission کنترل شوند و Secretها نیز بهدرستی محافظت شوند.
Application Password چیست؟
Credential مخصوص یک Application است که از رمز اصلی حساب جدا بوده و میتوان آن را مستقل لغو کرد.
آیا REST API را باید غیرفعال کنیم؟
در حالت عادی خیر. بهتر است بهجای غیرفعالسازی کامل، Endpointها، Permissionها و دادههای حساس بهدرستی مدیریت شوند.
آیا میتوان با REST API در WordPress مقاله منتشر کرد؟
بله. یک Client احراز هویتشده که Capability لازم را داشته باشد میتواند از Endpoint نوشتهها برای ایجاد و مدیریت محتوا استفاده کند.
