وردپرس REST API ابزاری قدرتمند و جامع می باشد که برای تبادل داده بین سایتهای وردپرسی و سایر برنامهها مورد استفاده قرار می گیرد.
سیستم مذکور با ارائه دادهها در قالب JSON، به توسعهدهندگان امکان میدهد محتوای وردپرس را در برنامههای وب و موبایل ادغام نمایند.
در مقاله پیش رو، ویژگیهای اصلی وردپرس REST API، نحوه عملکرد، اقدامات امنیتی و روشهای سفارشی سازی آن بررسی خواهد شد.
وردپرس REST API چیست؟
REST API بر اساس اصول “انتقال حالت نمایشی” (Representational State Transfer) طراحی شده است و از درخواستهای HTTP پشتیبانی میکند.
وردپرس REST API به صورت پیشفرض متدهای HTTP زیر را پشتیبانی میکند.
-
GET:
برای دریافت داده استفاده میشود. -
POST:
برای افضودن داده جدید به کار می رود. -
PUT/PATCH:
برای بهروزرسانی دادههای موجود مورد استفاده قرار می گیرد. -
DELETE:
دستور حذف داده می باشد.
REST API از فرمت JSON برای تبادل داده بهره می گیرد و بر اساس URL درخواستها را پردازش میکند.
به عنوان مثال:
GET https://example.com/wp-json/wp/v2/posts
درخواست بالا، لیست پستهای وردپرس را در قالب JSON نمایش می دهد.
نقاط انتهایی API (Endpoints)
وردپرس REST API از نقاط انتهایی مشخصی استفاده میکند. برخی از نقاط انتهایی پیشفرض عبارتاند از:
-
پستها (Posts):
/wp-json/wp/v2/posts -
صفحات (Pages):
/wp-json/wp/v2/pages -
دستهبندیها (Categories):
/wp-json/wp/v2/categories -
برچسبها (Tags):
/wp-json/wp/v2/tags -
کاربران (Users):
/wp-json/wp/v2/users
نحوه استفاده از وردپرس REST API
برای فراخوانی API میتوان از یک کلاینت (مانند Postman، cURL یا Fetch API جاوا اسکریپت) استفاده کرد.
مثال دریافت لیست پستها با استفاده از Fetch API:
fetch(‘https://example.com/wp-json/wp/v2/posts’)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
احراز هویت و امنیت
برخی از نقاط انتهایی REST API عمومی هستند، اما برخی دیگر نیاز به احراز هویت دارند.
روشهای احراز هویت شامل موارد زیر می باشد.
-
احراز هویت با کوکی (Cookie Authentication):
برای کاربران وردپرس که وارد سیستم شدهاند، احراز هویت از طریق کوکی امکانپذیر است. -
احراز هویت از طریق OAuth:
برای دسترسی امن برنامههای شخص ثالث به API، میتوان از OAuth استفاده کرد. -
رمزهای عبور برنامه (Application Passwords):
از نسخه 5.6 به بعد، وردپرس از رمزهای عبور برنامه برای اتصال امن به REST API پشتیبانی میکند.
نمونه درخواست احراز هویت به شرح زیر خواهد بود.
curl -X GET -u “نامکاربری:رمزعبور_برنامه” “https://example.com/wp-json/wp/v2/posts”
سفارشیسازی REST API
۱. نحوه افزودن نقطه انتهایی سفارشی.
وردپرس REST API به توسعهدهندگان امکان میدهد نقاط انتهایی سفارشی طراحی نمایند.
برای افزودن Endpoint مورد نیاز، کد زیر را همراه با تغییرات مورد نظر به فایل functions.php قالب فعال سایت وردپرسی خود اضافه کنید.
function custom_api_endpoint() {
return new WP_REST_Response(array('message' => 'سلام، این یک نقطه انتهایی سفارشی است!'), 200);
}
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/hello/', array(
'methods' => 'GET',
'callback' => 'custom_api_endpoint',
));
});
این کد به درخواست
https://example.com/wp-json/custom/v1/hello
پاسخ سفارشی خواهد داد.
۲. افزودن فیلدهای سفارشی.
همچنین برای افزودن فیلدهای سفارشی به پاسخ API، می توان از کد زیر استفاده نمود.
function add_custom_field($data, $post, $context) {
$data->data['custom_field'] = get_post_meta($post->ID, 'custom_field_key', true);
return $data;
}
add_filter('rest_prepare_post', 'add_custom_field', 10, 3);
وردپرس REST API یکی از مدرنترین روشها برای ادغام محتوای وردپرس در پلتفرمهای مختلف می باشد.
این سیستم با رابط کاربری آسان، انعطافپذیر و قدرتمند، میتواند بهراحتی در برنامههای وب و موبایل ادغام شود.
با رعایت کامل موارد امنیتی، میتوان ابزار مورد بحث را سفارشیسازی کرده و امکانات آن را گسترش داد.