وردپرس (WordPress) REST API Controller پلتفرم: wordpress پیشرفته (Hard) سطح ریسک: متوسط (Medium Risk)

ساخت اندپوینت اختصاصی در REST API وردپرس (Custom REST API Endpoint)

تست‌شده و بازبینی‌شده در 1405/06/29 ۳۶۴ بار کپی ۱۹۳۳ مشاهده
پاسخ سریع و خلاصه کاربردی (Quick Answer)

با تابع `register_rest_route` در اکشن `rest_api_init` یک اندپوینت GET با اعتبارسنجی ورودی‌ها بسازید.

مشخصات فنی و شناسنامه کد (Code Information)

بازبینی: 1405/06/29
پلتفرم اجرایی (Platform) wordpress
نوع کد (Code Type) REST API Controller
محل قرارگیری فایل (Location) functions.php یا افزونه اختصاصی
سطح دشواری (Difficulty) پیشرفته (Hard)
سطح ریسک (Risk Level) متوسط (Medium Risk)
نیاز به بکاپ اولیه؟ بله، حتماً بکاپ بگیرید
سازگاری با وردپرس تمامی نسخه‌ها (WP 4.7+)
سازگاری با ووکامرس و HPOS سازگار
هشدار ایمنی: این تغییر مستقیماً فایل‌های حساس سرور یا دیتابیس را ویرایش می‌کند. حتماً پیش از ذخیره کد از وب‌سایت یا فایل مورد نظر فایل پشتیبان (Backup) تهیه کنید.
|
<?php
/**
 * ایجاد اندپوینت اختصاصی در REST API برای دریافت خلاصه آمار سایت
 * آدرس اندپوینت: /wp-json/bisco/v1/stats
 */
function bisco_register_custom_rest_route() {
    register_rest_route( 'bisco/v1', '/stats', array(
        'methods'             => WP_REST_Server::READABLE, // متد GET
        'callback'            => 'bisco_get_site_stats_callback',
        'permission_callback' => '__return_true', // اجازه دسترسی عمومی
    ) );
}
add_action( 'rest_api_init', 'bisco_register_custom_rest_route' );

function bisco_get_site_stats_callback( WP_REST_Request $request ) {
    $published_posts = wp_count_posts( 'post' )->publish;
    $comments_count  = wp_count_comments()->approved;

    $response = array(
        'status'          => 'success',
        'published_posts' => (int) $published_posts,
        'total_comments'  => (int) $comments_count,
        'timestamp'       => current_time( 'timestamp' ),
    );

    return new WP_REST_Response( $response, 200 );
}

کد را کجا قرار دهیم؟ (Placement Guide)

کد را به functions.php یا فایل پلاگین اضافه کنید.

مسیر فایل: functions.php یا افزونه اختصاصی

این کد چگونه کار می‌کند؟ (How it Works)

هسته وردپرس مسیر bisco/v1/stats را مپ کرده و در پاسخ به درخواست متناظر متد callback را فراخوانی و خروجی را با هدر application/json ارسال می‌کند.

چه زمانی از این کد استفاده کنیم؟ (Use Cases)

هنگام ارتباط با فریم‌ورک‌های مدرن نظیر Vue، React یا وب‌سرویس‌های خارجی برای ارسال و دریافت تمیز داده‌ها.

چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)

برای کارهای ساده‌ای که با کدهای معمولی PHP در همان قالب قابل رندر هستند.

پیش‌نیازهای اجرا

وردپرس ۴.۷ به بالا و PHP 7.4 به بالا.

نحوه تست و اطمینان از عملکرد

آدرس https://site.com/wp-json/bisco/v1/stats را در مرورگر یا Postman باز کنید؛ پاسخ جیسون را دریافت خواهید کرد.

نحوه بازگردانی سریع (Rollback)

تابع را از functions.php پاک کنید.

خطاهای رایج و راه‌حل رفع

فراموش کردن تنظیم permission_callback در وردپرس نسخه ۵.۵ به بالا که باعث اخطار امنیتی می‌شود.

ملاحظات و نکات امنیتی

همیشه از permission_callback استفاده کرده و برای داده‌های خصوصی دسترسی را چک کنید.

تاثیر بر سرعت و پرفورمنس

بسیار سریع‌تر از سیستم سنتی admin-ajax.php و دارای خروجی بهینه ساختاریافته.

پرسش‌های متداول پیرامون این کد (FAQ)

چون REST API استاندارد مدرن وب است، قابلیت کش شدن با CDN را دارد و بخش‌های سنگین غیرضروری ادمین را لود نمی‌کند.
منابع و مستندات رسمی بررسی‌شده (Official Sources):

سبد خرید شما

0 افزونه

سبد خرید شما خالی است

هنوز محصولی را به سبد خرید اضافه نکرده‌اید. می‌توانید از افزونه‌های اختصاصی ما دیدن فرمایید.

مشاهده فروشگاه افزونه‌ها

ثبت درخواست مشاوره

با تکمیل فرم زیر، کارشناسان فنی بیسکو وب در سریع‌ترین زمان ممکن با شما تماس می‌گیرند.

مشاور
پشتیبانی و مشاوره تخصصی
پاسخگویی سریع کارشناسان
09903336117