آشنایی با WP_REST_Widgets_Controller
کتابخانه وردپرس شامل کلاسهای مختلفی است که وظیفه مدیریت بخشهای مختلف سایت را بر عهده دارند. یکی از این کلاسها، WP_REST_Widgets_Controller است که به ما این امکان را میدهد تا با ویجتها از طریق REST API وردپرس کار کنیم. ممکن است شما بخواهید که ویجتها را به سادگی از طریق کدها مدیریت و کنترل کنید، و این کلاس به شما امکانات لازم برای اینکار را میدهد.
چیزی که باید در نظر داشته باشید این است که WP_REST_Widgets_Controller به شما اجازه میدهد تا بتوانید درخواستهایی به سرور بفرستید و دادههایی مثل اضافه کردن، حذف و بهروزرسانی ویجتها را انجام دهید. در پروژههای بزرگتر، این توانایی لازم است تا بتوانیم ویجتها را به راحتی و از طریق API مدیریت کنیم. به عبارتی دیگر، شما میتوانید با کمک این کلاس، فضای نحوه تعامل با ویجتها را بهبود ببخشید.
در کد زیر، شاهد یک نمونه از توابع مرتبط با این کلاس هستیم. توابع این کلاس به ما کمک میکنند تا بتوانیم ویجتها را ثبت کنیم و درخواست را به سرور ارسال کنیم. همچنین، در این کد نحوهی ثبت این ویجتها به REST API نشان داده شده است.
نمونه کد
function my_register_widget_routes() {
register_rest_route('myplugin/v1', '/widgets', array(
'methods' => 'GET',
'callback' => 'my_get_widgets',
));
}
add_action('rest_api_init', 'my_register_widget_routes');
function my_get_widgets() {
return array(
'widget-1' => 'First Widget',
'widget-2' => 'Second Widget',
);
}
توضیح کد
کد:
function my_register_widget_routes() {
این تابع، برای ثبت مسیرهای جدید در REST API طراحی شده است.
کد:
register_rest_route('myplugin/v1', '/widgets', array(...));
در این خط، یک مسیر جدید به API ثبت میشود که با استفاده از متد GET قرار است ویجتها را برگرداند.
کد:
add_action('rest_api_init', 'my_register_widget_routes');
این خط، تابع my_register_widget_routes را به اکشن 'rest_api_init' متصل میکند تا زمانی که API بارگذاری میشود این تابع هم اجرا شود.
کد:
function my_get_widgets() {
این تابع، برای برگرداندن لیستی از ویجتها طراحی شده است.
کد:
return array('widget-1' => 'First Widget', 'widget-2' => 'Second Widget');
در این خط، یک آرایه شامل ویجتها برگشت داده میشود که در API قابل مشاهده هستند.