حماية REST Endpoint بصلاحية المستخدم
تحديد permission_callback بيفصل السماح بالوصول عن منطق إرجاع البيانات
تجهيز المثال
أنشئ مجلد ezl-demo-13 داخل wp-content/plugins في نسخة WordPress للتجربة ثم ضع ملف الإضافة التالي بداخله وفعلها من لوحة التحكم
كود الإضافة
<?php
/*
Plugin Name: Academy Demo 13
*/
if (!defined("ABSPATH")) { exit; }
add_action('rest_api_init', function () {
register_rest_route('ezl-demo/v1', '/draft-count', [
'methods' => 'GET',
'permission_callback' => function () {
return current_user_can('manage_options');
},
'callback' => function () {
return rest_ensure_response(['drafts' => (int) wp_count_posts('post')->draft]);
},
]);
});طريقة التجربة والنتيجة
طلب /wp-json/ezl-demo/v1/draft-count بدون مصادقة بيرفض الوصول وطلب مصادق بحساب إداري بيرجع العدد
ملحوظة
مع مصادقة Cookies ابعت REST Nonce صالح في X-WP-Nonce وتسجيل الدخول وحده مش كفاية لطلب REST بالطريقة دي