وردپرس یکی از محبوب ترین سیستم های مدیریت محتوا (CMS) در جهان است که به کسب و کارهای کوچک و بزرگ کمک می کند تا اشکال مختلفی از محتوای وب سایت را راه اندازی و ایجاد کنند. اما وردپرس فقط از محتوای وبلاگ سنتی پشتیبانی کرده است – و این تا حد زیادی به لطف WordPress REST API است.
WordPress REST API وردپرس و سایر برنامه های کاربردی وب خارجی را به هم متصل می کند. این ارتباطات در دسترستر را تسهیل میکند و به شما کمک میکند تجارب وب فراگیر و جذابی بسازید که به طور یکپارچه با پلتفرم CMS یکپارچه میشوند.
این API از نقاط پایانی برای بازیابی و دستکاری محتوای وردپرس به عنوان اشیاء JSON استفاده می کند. با استفاده از این نقاط پایانی، میتوانید محتوای وردپرس را از راه دور بدون ورود به حساب مدیریت وردپرس ایجاد کنید، بخوانید، بهروزرسانی و حذف کنید (CRUD)، که انعطافپذیری را به ارمغان میآورد و عملکرد وردپرس را فراتر از ویژگیهای اصلی آن گسترش میدهد.
این راهنما به بررسی چیستی WordPress REST API، مزایای آن، چگونگی گسترش قابلیتهای پایه وردپرس و نحوه ایجاد، ثبت و دسترسی به یک نقطه پایانی سفارشی میپردازد.
پیش نیازها
برای دنبال کردن این آموزش، شما نیاز دارید:
آشنایی با WordPress REST API
WordPress REST API یک رابط قدرتمند است که به شما امکان می دهد با استفاده از روش های استاندارد HTTP به صورت برنامه نویسی با سایت های وردپرس تعامل داشته باشید.
قابلیتهای پیشفرض آن شامل دسترسی و دستکاری انواع مختلف دادههای وردپرس، مانند پستها، صفحات، نظرات، کاربران و طبقهبندیها در قالب JSON ساختاریافته است. همچنین می توانید از راه دور اقدامات CRUD را روی محتوا انجام دهید.
با این حال، ارزش واقعی WordPress REST API در توسعه پذیری آن از طریق نقاط پایانی سفارشی نهفته است. شما می توانید نقاط پایانی سفارشی ایجاد کنید تا API را با نیازهای خاص، مانند ادغام قابلیت های اضافی، خدمات شخص ثالث، یا ساختارهای داده منحصر به فرد، تنظیم کنید. این انعطافپذیری به شما این امکان را میدهد تا برنامههای بسیار سفارشیسازی شده و با ویژگیهای غنی را در بالای وردپرس بسازید.
چگونه نقطه پایانی API سفارشی خود را برنامه ریزی کنیم
برنامه ریزی ساختار و هدف نقاط پایانی سفارشی شما برای توسعه کارآمد API کلیدی است. نقاط پایانی سفارشی متناسب با نیازهای خاص شما نیازمند بررسی دقیق برای اطمینان از عملکرد بهینه است. برنامهریزی استراتژیک مقیاسپذیری و سازگاری را تسهیل میکند و نقاط پایانی آیندهنگر را برای تطبیق با الزامات تجاری در حال تحول تسهیل میکند.
برنامه ریزی نقاط پایانی API سفارشی قبل از پشتیبانی از پیاده سازی:
- وضوح تابع نقطه پایانی — برنامه ریزی نقطه پایانی، عملکرد خاص نقطه پایانی، انواع داده های مورد انتظار و استفاده از آن را روشن می کند.
- سازگاری و کارایی توسعه – برنامه ریزی همچنین ثبات در استفاده از نقاط پایانی، انواع پاسخ و قالب بندی را تضمین می کند که تعامل با API را بهبود می بخشد. علاوه بر این، دانستن هدف API امکان اجرای صحیح، کاهش زمان توسعه و خطر خطا را فراهم می کند.
- مقیاس پذیری و سازگاری – تعریف نیازهای نقطه پایانی شما به اثبات آینده کمک می کند تا نیازها و الزامات تجاری در حال تغییر را بدون نیاز به طراحی مجدد کامل برآورده کند.
- امنیت-برنامه ریزی صحیح نقطه پایانی به تعیین نیاز به احراز هویت برای دسترسی یا دستکاری داده ها کمک می کند. دریافت محتوا از طریق API گاهی اوقات مستلزم عدم احراز هویت کاربر است. با این حال، برای محتوای حاوی دادههای حساس یا غیرمجاز، تعریف الزامات امنیتی و اجرای اقداماتی مانند مجوز و کنترلهای دسترسی برای کمک به تضمین امنیت دادهها ضروری است.
بخشهای عملی زیر توضیح میدهند که چگونه میتوانید یک نقطه پایانی سفارشی ایجاد کنید که در آن موجود است site-domain/wp-json/custom/v2/testimonials
برای بازیابی توصیفات مشتری از سایت پایگاه داده وردپرس.
پس از ارسال یک درخواست، نقطه پایانی یک شی JSON حاوی اطلاعاتی در مورد توصیفات در سایت وردپرس شما همانطور که در تابع پاسخ به تماس شما تعریف شده است، برمی گرداند.
بیایید شیرجه بزنیم!
یک نوع پست سفارشی برای نقطه پایانی خود ایجاد کنید
ابتدا باید یک نوع پست سفارشی ایجاد کنید.
- هدایت به ویرایشگر فایل تم از ظاهر بخش داشبورد مدیریت وردپرس شما.
- تم خود را باز کنید function.php فایل و کد زیر را اضافه کنید:
function create_custom_testimonial_type() { register_post_type('testimonials', array( 'labels' => array( 'name' => 'Testimonials', 'singular_name' => 'Testimonial', ), 'public' => true, 'has_archive' => true, 'show_in_rest' => true, // This enables REST API support )); } add_action('init', 'create_custom_testimonial_type');
این کد یک نوع پست سفارشی “توصیه ها” ایجاد می کند و پشتیبانی از WordPress REST API را فعال می کند (
'show_in_rest' => true
). اینadd_action hook
تماس می گیردcreate_testimonial_type
تابع callback و آن را در حین اجرا راه اندازی می کند.میتوانید برچسبها و آرگومانها را با حذف یا اضافه کردن آنها برای رفع نیازهای خود سفارشی کنید.
- کلیک به روز رسانی فایل برای ذخیره تغییرات شما
برای مشاهده داشبورد را بازخوانی کنید گواهینامه ها گزینه ای به داشبورد وردپرس شما اضافه شده است.
- با کلیک کردن، یک پست جدید حاوی توصیفات ایجاد کنید توصیفات > افزودن پست جدید. می توانید استفاده کنید نقل قول مسدود کردن. بسته به نحوه ارائه گواهینامه خود، می توانید از بلوک های دیگر نیز استفاده کنید.
در اینجا دو نمونه از توصیفات ایجاد شده با استفاده از بلوک های Pullquote آورده شده است:
یک نقطه پایانی سفارشی در وردپرس ثبت کنید
ثبت یک نقطه پایانی سفارشی آن را برای مصرف از طریق REST API در دسترس قرار می دهد. این شامل استفاده از register_rest_route
تابع، فراخوانی آن در rest_api_init
hook، و ارائه یک متد برگشت به تماس که هنگام فراخوانی مسیر فراخوانی می شود.
کد زیر را در قالب خود قرار دهید function.php فایل:
add_action( 'rest_api_init', 'register_testimonial_rest_route' );
function register_testimonial_rest_route(){
register_rest_route(
'custom/v2',
'/testimonials',
array(
'methods' => 'GET',
'callback' => 'get_testimonials',
)
);
}
این register_rest_route()
دارای سه پارامتر است:
- فضای نام مسیر (
$route_namespace
) — این اولین بخش از بخش URL است و باید از الگوی شماره فروشنده/نسخه پیروی کند. فروشنده نشان دهنده فروشنده یا حلزون موضوعی است. فضای نام به تمایز نقاط پایانی کمک می کند و به مشتریان کمک می کند تا برای نقطه پایانی سفارشی شما با پشتیبانی تماس بگیرند. این آموزش ازcustom/v2
فضای نام - URL پایه (
$route
) – این از فضای نام پیروی می کند و یک URL است که به یک روش نگاشت شده است. شما می توانید بیش از یک نقطه پایانی را برای مسیر خود ثبت کنید. برای این آموزش از/testimonials
route، که به نقطه پایانی میگوید که گواهینامهها را بازیابی کند. - گزینه های نقطه پایانی (
$args
) — در اینجا، این آرایه ای است که حاوی روش HTTP است که هنگام فراخوانی مسیر استفاده می شود و تابع پاسخ به تماس که نقطه پایانی هنگام ارسال درخواست فراخوانی می کند. در بخش بعدی به بررسی این تابع تماس خواهیم پرداخت.
در نهایت، آدرس نقطه پایانی خود را یادداشت کنید. قالب یک نقطه پایانی است site-address/wp-json/namespace/route
. بنابراین، در این مثال، نقطه پایانی خواهد بود https://www.staging.kidspartysanctuary.co.uk/wp-json/custom/v2/testimonials
.
تابع callback را برای نقطه پایانی اجرا کنید
پس از ایجاد نوع پست سفارشی و ثبت نقطه پایانی سفارشی خود، مرحله بعدی نوشتن تابع پاسخ به تماس است. این تابع فراخوانی هر بار که به نقطه پایانی دسترسی پیدا می کند، فراخوانی می شود.
- خود را اعلام کنید
get_testimonials
تابع callback با استفاده از کد زیر:function get_testimonials(){ }
- یک آرایه گواهینامه های خالی را برای ذخیره داده های گواهینامه وردپرس بازیابی شده راه اندازی کنید:
$testimonials = array();
- یک آرایه به نام تنظیم کنید
$args
با پارامترهای پرس و جو برای aWP_Query
زنگ زدن.$args = array( 'post_type' => 'testimonials', //specifies you want to query the custom post type 'testimonial', 'nopaging' => true, // no pagination, but retrieve all testimonials at once ),
- ایجاد یک نمونه از
WP_Query
کلاسی که در$args
آرایه، یک پرس و جو را بر اساس پارامترهای مشخص شده انجام می دهد و نتایج پرس و جو وردپرس را در$query
متغیر.$query = new WP_Query($args)
- یک بیانیه شرطی بنویسید تا بررسی کنید که آیا پست های گواهی وجود دارد یا خیر. سپس، یک را ایجاد کنید
while
حلقه برای تکرار از طریق پست ها و برگرداندن پست توصیفاتtitle
وcontent
.if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $testimonial_data = array( /*an array that stores the title and content of every post*/ 'title' => get_the_title(), 'content' => get_the_content(), // Add other fields as needed ); $testimonials() = $testimonial_data; } wp_reset_postdata(); /* restores $post global to the current post to avoid any conflicts in subsequent queries*/ } return rest_ensure_response( $testimonials ); /*ensures response is correctly set as a response object for consistency*/
این هم کد کامل:
function get_testimonials() { $testimonials = array(); $args = array( 'post_type' => 'testimonials', 'nopaging' => true, ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $testimonial_data = array( 'title' => get_the_title(), 'content' => get_the_content(), // Add other fields as needed ); $testimonials() = $testimonial_data; } wp_reset_postdata(); } return rest_ensure_response( $testimonials ); }
- نقطه پایانی خود را با استفاده از Postman آزمایش کنید تا بررسی کنید که آیا می توانید به داده های خود دسترسی داشته باشید یا خیر.
شما همچنین می توانید این را با استفاده از یک مرورگر تست کنید. با وارد کردن URL به نقطه پایانی دسترسی پیدا کنید
site-domain/wp-json/custom/v2/testimonials
در نوار آدرس مرورگر شما
خلاصه
این آموزش نحوه پیاده سازی یک نقطه پایانی سفارشی API وردپرس را توضیح داده است. برای اینکه کاربران بتوانند به داده های پایگاه داده وردپرس خود دسترسی داشته باشند و با آنها تعامل داشته باشند، فقط باید مسیری را که تابع callback را پیاده سازی می کند، ثبت کنید.
آیا می خواهید بدانید چگونه وردپرس را برای کسب و کار خود به حداکثر برسانید؟ Kinsta گزینه های پیشرفته متعددی را به عنوان بخشی از سرویس میزبانی مدیریت شده وردپرس ما برای کمک به نیازهای تجاری منحصر به فرد شما ارائه می دهد. یک گزینه قابل توجه افزونه Kinsta MU (باید استفاده) است که ذخیره سازی را برای سایت شما مدیریت و پیاده سازی می کند تا تأخیر را کاهش دهد و عملکرد را بهبود بخشد. امروز Kinsta را امتحان کنید!
دیدگاه شما در مورد توسعه نقاط پایانی API وردپرس سفارشی چیست؟ آیا تا به حال طراحی کرده اید؟ ما دوست داریم در مورد تجربیات شما بشنویم. آنها را در بخش نظرات زیر به اشتراک بگذارید.