پلاگین API. پلاگین API اتصال یک پلاگین api شخص ثالث برای Minecraft

پلاگین ها یک قطعه کلیدی از اکوسیستم بسته وب هستند و راه قدرتمندی را برای استفاده از فرآیند گردآوری وب پک در اختیار جامعه قرار می دهند. یک افزونه می تواند به رویدادهای کلیدی که در هر کامپایل اجرا می شوند متصل شود. در هر مرحله از راه، افزونه دارای خواهد بود. دسترسی کامل به کامپایلر و در صورت لزوم، کامپایل فعلی.

برای آشنایی سطح بالا با نوشتن افزونه ها، با نوشتن یک افزونه شروع کنید.

بیایید با مرور برنامه کاربردی tapable که ستون فقرات رابط پلاگین وب پک را فراهم می کند، شروع کنیم.

قابل لمس

این کتابخانه کوچک یک ابزار اصلی در وب پک است، اما همچنین می تواند در جاهای دیگر برای ارائه یک رابط افزونه مشابه استفاده شود. بسیاری از اشیاء در بسته وب کلاس Tapable را گسترش می دهند. این کلاس متدهای tap، tapAsync و tapPromise را نشان می‌دهد که افزونه‌ها می‌توانند از آنها برای تزریق مراحل ساخت سفارشی استفاده کنند که در طول یک کامپایل اجرا می‌شوند.

می توان خروجی چاپ شده را با ارسال آرگومان های مختلف به تابع reportProgress ProgressPlugin سفارشی کرد.

برای گزارش پیشرفت، یک افزونه باید با استفاده از گزینه context: true به یک قلاب ضربه بزند:

کامپایلر. قلاب ها بیرون ریختن. tapAsync (( نام: "MyPlugin" ، زمینه: true) ، (زمینه، کامپایلر، پاسخ به تماس) => (const reportProgress = زمینه && Context. reportProgress; if (reportProgress) reportProgress (0.95، "شروع کار") ; setTimeout (( ) => ( if (reportProgress) reportProgress (0.95، "کار انجام شد") ; callback () ;) , 1000 ) ; ) );

تابع reportProgress ممکن است با این آرگومان ها فراخوانی شود:

گزارشپیشرفت(درصد، ... args);
  • درصد: این آرگومان استفاده نشده است. در عوض، ProgressPlugin درصدی را بر اساس قلاب فعلی محاسبه می کند.
  • ...args: هر تعداد رشته ای که به کنترل کننده ProgressPlugin ارسال می شود تا به کاربر گزارش شود.

توجه داشته باشید که تنها زیر مجموعه ای از کامپایلر و قلاب های کامپایل از تابع reportProgress پشتیبانی می کنند. برای لیست کامل به ProgressPlugin مراجعه کنید.

ورود به سیستم

Logging API از زمان انتشار webpack 4.37 در دسترس است. هنگامی که ورود به سیستم در پیکربندی آمار و/یا زمانی که ثبت زیرساخت فعال است، ممکن است افزونه ها پیام هایی را ثبت کنند که در قالب لاگر مربوطه چاپ می شوند (آمار، زیرساخت).

  • افزونه ها ترجیح می دهند از compilation.getLogger ("PluginName") برای ورود به سیستم استفاده کنند. این نوع ورود به سیستم در آمار ذخیره می شود و بر اساس آن قالب بندی می شود. می تواند توسط کاربر فیلتر و صادر شود.
  • افزونه ها ممکن است از compiler.getInfrastructureLogger ("PluginName") برای ورود به سیستم استفاده کنند. استفاده از ثبت زیرساخت در آمار ذخیره نمی شود و بنابراین قالب بندی نمی شود. معمولاً مستقیماً به کنسول / داشبورد / رابط کاربری گرافیکی وارد می شود. کاربر می تواند آن را فیلتر کند.
  • ممکن است افزونه‌ها از منطق بازگشتی ویژه برای تشخیص گزارش پشتیبانی compilation.getLogger استفاده کنند؟ compilation.getLogger("PluginName"): کنسولی برای ارائه نسخه بازگشتی برای مواردی که از یک نسخه بسته وب قدیمی استفاده می شود که از روش getLogger در شی کامپایل پشتیبانی نمی کند.

مراحل بعدی

برای فهرست دقیق همه قلاب های کامپایلر موجود و پارامترهایی که در دسترس قرار می دهند، به بخش قلاب های کامپایلر مراجعه کنید.

این افزونه یک کتابخانه بارگذاری شده پویا (DLL) است. پس از نصب برنامه، تمامی افزونه های موجود در توزیع در دایرکتوری قرار می گیرند c:\Program Files (x86)\Common Files\Soft Gold\Inventory 14\Plugins\...پسوند *.abl مورد نیاز است دانلود خودکارپلاگین از دایرکتوری مشخص شده هنگام شروع برنامه. افزونه را می توان با مشخص کردن مسیر جستجو در تنظیمات، از هر مکان دیگری روی دیسک بارگیری کرد.

راه اندازی API افزونه

(برنامه های افزودنی دلفی VCL)

(رابط افزونه برای ABViewer/Inventory)

(کپی رایت (ج) 2002-2010 شرکت نرم افزاری SoftGold)

{************************************************************}

واحد sgPluginItem;

رابط

پیاده سازی

XMLDocRef: IXMLDocument = صفر;

ClientRef: IXMLNode = nil;

P: اشاره گر = صفر.

PluginsHostWnd: HWND = 0;

PluginsHostWndName: string = "";

XMLAtomString: string = "";

رویه InitializeDoc;

شروع

// دریافت نام منحصر به فرد کلاس پنجره با پارامترها

PluginsHostWndName:= Format("TsgPluginsHost:%.8X:%.8X", );

// پیدا کردن خود پنجره

PluginsHostWnd:= FindWindow(PChar(PluginsHostWndName), nil);

اگر PluginsHostWnd<>0 سپس

شروع

// رشته اتمی را دریافت کنید پارامتر xmlسند

XMLAtomString:= فرمت("XMLOfs%.8X%.8X"،

XMLDocRef:= IXMLDocument(GetProp(PluginsHostWnd، PChar(XMLAtomString)));

اگر اختصاص داده شده است (XMLDocRef) سپس

شروع

// افزودن یک عنصر به لیست

ClientRef:= XMLDocRef.DocumentElement.ChildNodes.ChildNodes.AddChild(sClient);

// مقدار دهی اولیه آدرس تابع Invoke

ClientRef.ChildValues["Invoke"] := IntToId(Integer(@Invoke)); // هگزادسیمال XXXXXXXXX $

پایان؛

پایان؛

پایان؛

مقداردهی اولیه

CoInitialize(P);

InitializeDoc;

راه اندازی و اجرای نسخه آزمایشی افزونه

نسخه آزمایشی افزونه هنگام نصب برنامه به صورت خودکار پیکربندی می شود و بلافاصله پس از راه اندازی Inventory متصل می شود. این بسته شامل کد منبع مؤلفه (نام پروژه sgPlugin.dpk) و نسخه آزمایشی افزونه (نام پروژه plug1.dpr) است.

مراحل راه اندازی افزونه از حالت اشکال زدایی:

▪ باز کنید C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Demos\Plug1\plug1.dpr

▪ گزینه های پروژه را تنظیم کنید:

مسیر جستجو: "..\...\Components\PlugItem";

مخزن خروجی، به عنوان مثال: "c:\Program Files\Common Files\Soft Gold\Inventory 14\Plugins";

برنامه میزبان، دوباره روشن می شود برنامه نصب شدهبه عنوان مثال: "c:\Program Files\Soft Gold\Inventory 14\Inventory 14.exe".

▪ راه اندازی برای اجرا.

برای استفاده از کامپوننت در زمان طراحی، باید باز، بازسازی و نصب کنید C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Components\PlugItem\sgPlugin.dpk. پس از نصب کامپوننت، در پالت اجزای دلفی، مؤلفه TsgPluginItem در برگه Soft Gold ظاهر می شود که می تواند در زمان طراحی استفاده شود. روی فرم قرار دهید

قلاب‌ها توسط وردپرس ارائه می‌شوند تا به افزونه شما اجازه دهند تا به بقیه وردپرس متصل شود. یعنی در زمان‌های مشخصی توابع موجود در افزونه خود را فراخوانی کنید و از این طریق پلاگین خود را فعال کنید. دو نوع قلاب وجود دارد:

  1. (کدکس)
  2. (کدکس)

گاهی اوقات می توانید به همان هدف یا با یک عمل یا یک فیلتر دست پیدا کنید. برای مثال، اگر می‌خواهید افزونه شما متن یک پست را تغییر دهد، می‌توانید یک تابع اقدام به public_post اضافه کنید (بنابراین پست با ذخیره شدن در پایگاه داده اصلاح می‌شود)، یا یک تابع فیلتر به the_content (بنابراین پست همانطور که در صفحه مرورگر نمایش داده می شود، اصلاح شد).

برای فهرست کامل همه قلاب‌های اکشن و فیلتر در WP به پایگاه داده قلاب‌های وردپرس آدام براون مراجعه کنید.

مرجع تابع

توابع فیلتر
توابع اقدامات
توابع فعال سازی/غیرفعال سازی/حذف نصب

اقدامات

اقداماتتوسط رویدادهای خاصی که در وردپرس رخ می دهد، مانند انتشار یک پست، تغییر تم، یا نمایش یک . Action یک تابع سفارشی PHP است که در پلاگین (یا تم) شما تعریف شده است قلاب شده، یعنی مجموعه ای برای پاسخ دادن به برخی از این رویدادها. اقدامات معمولاً یک یا چند مورد از موارد زیر را انجام می دهند:

  • تغییر داده های پایگاه داده
  • یک پیام ایمیل بفرستید.
  • صفحه مدیریت ایجاد شده یا صفحه جلویی ارسال شده به مرورگر کاربر را تغییر دهید.

مراحل اساسی برای تحقق این امر (در زیر با جزئیات بیشتر توضیح داده شده است) عبارتند از:

  1. در فایل پلاگین خود یک تابع PHP ایجاد کنید که باید در هنگام وقوع یک رویداد وردپرس خاص اجرا شود.
  2. با استفاده از تابع، این تابع را به رویداد متصل کنید.
  3. تابع PHP خود را در یک فایل افزونه قرار داده و آن را فعال کنید.

یک تابع اکشن ایجاد کنید

اولین مرحله برای ایجاد یک اکشن در افزونه شما این است که یک تابع PHP با عملکرد اکشن افزونه خود ایجاد کنید و آن را در فایل افزونه خود قرار دهید (فایل افزونه شما باید به wp-content/pluginsفهرست راهنما). به عنوان مثال، اگر می خواهید دوستان شما هر زمان که یک پست جدید ایجاد می کنید یک پیام ایمیل دریافت کنند، می توانید عملکرد زیر را تعریف کنید:

تابع email_friends($post_ID) ($friends = " [ایمیل محافظت شده],[ایمیل محافظت شده]"; mail($friends، "sally"s blog updated", "من فقط چیزی را در وبلاگ خود قرار دادم: http://blog.example.com"); $post_ID را برگردانید. )

برای اکثر اقدامات، تابع شما باید یک پارامتر واحد را بپذیرد (معمولاً شناسه پست یا نظر، بسته به عملکرد). برخی از اقدامات بیش از یک پارامتر را انجام می دهند - برای اطلاعات بیشتر، اسناد مربوط به عملکرد (در صورت وجود) یا کد منبع وردپرس را بررسی کنید. علاوه بر یک پارامتر، می‌توانید به وردپرس دسترسی داشته باشید و سایر توابع وردپرس (یا توابع موجود در فایل افزونه خود) را فراخوانی کنید.

هر متن خروجی توسط تابع (به عنوان مثال با چاپ) در منبع صفحه در محلی که عمل فراخوانی شده است ظاهر می شود.

توجه داشته باشید: به خاطر داشته باشید که سایر افزونه ها یا هسته وردپرس ممکن است از نام تابعی که شما فکر کرده اید استفاده کنند. برای اطلاعات بیشتر به بخش بعدی مراجعه کنید.

اجتناب از برخورد نام تابع

ممکن است شخصی افزونه ای با تابعی به نام یکی در افزونه شما ایجاد کرده باشد.

این یک مشکل است زیرا PHP چندین تابع با نام یکسان را مجاز نمی کند. اگر دو افزونه عملکردی با نام یکسان ارائه دهند، یا یک افزونه تابعی را با نامی مشابه عملکرد وردپرس ارائه دهد، وبلاگ ممکن است از کار بیفتد. دو راه برای جلوگیری از این مشکل وجود دارد.

اولین راه حل این است که هر تابع در افزونه خود را با یک مجموعه منحصر به فرد از کاراکترها پیشوند کنید. اگر نام شما John Q. Public است، می توانید توابع خود را به عنوان تابع jqp_output() (...) اعلام کنید. این احتمال وجود دارد که شخصی با حروف اول مشابه همان کار را با افزونه خود انجام دهد اما کم است.

راه حل دوم - و احتمالا ساده تر - این است که توابع پلاگین خود را در یک کلاس قرار دهید و متدهای کلاس را به صورت ایستا فراخوانی کنید. این پیچیده تر از آنچه هست به نظر می رسد.

این کلاس را در نظر بگیرید که بر روی مثال های ارائه شده در بالا گسترش می یابد:

ایمیل کننده کلاس ( تابع ثابت send($post_ID) ($friends = " [ایمیل محافظت شده],[ایمیل محافظت شده]"; mail($friends,"sally"s blog updated","من فقط چیزی را در وبلاگ خود قرار دادم: http://blog.example.com"); $post_ID را برگردانید. ) ) add_action("publish_post", array("emailer", "send"));

این کلاس تماس گرفت ایمیل دهندهروش دارد ارسالکه عملکرد افزونه را پیاده سازی می کند.

تابع add_action() خارج از کلاس عملی را به وردپرس اضافه می‌کند که به آن می‌گوید تا آن را فراخوانی کند ارسالروش زمانی که یک پست منتشر می شود. آرایه مورد استفاده در پارامتر دوم به سیستم پلاگین می گوید که متد استاتیک کلاس "emailer" را با نام "send" فراخوانی کند.

کارکرد ارسالتوسط اعلان کلاس از فضای نام جهانی محافظت می شود. امکان فراخوانی مستقیم send() وجود ندارد و بنابراین هر تابع دیگری نامگذاری شده است ارسالبا این یکی برخورد نخواهد کرد. اگر می خواهید send() را فراخوانی کنید، باید از یک عملگر تفکیک دامنه استفاده کنید، مانند این: emailer::send()

مثال بالا برای روش های استاتیک است. اگر نمونه ای از یک کلاس داشته باشید، کار نمی کند. برای فراخوانی یک متد از یک نمونه تو نیاز داریبرای ارسال نمونه به عنوان یک متغیر. مثال بالا را که برای در نظر گرفتن این مورد اصلاح شده است، در نظر بگیرید:

ایمیل کننده کلاس ( تابع send($post_ID) ($friends = " [ایمیل محافظت شده],[ایمیل محافظت شده]"; mail($friends,"sally"s blog updated","من فقط چیزی را در وبلاگ خود قرار دادم: http://blog.example.com"); $post_ID را برگردانید. ) ) $myEmailClass = ایمیل جدید(); add_action("publish_post"، array($myEmailClass، "send"));

کلاس ها موضوع پیچیده ای هستند. اطلاعات بیشتر در مورد آنها را در اسناد PHP در کلاس ها بخوانید.

به وردپرس متصل شوید

بعد از اینکه تابع شما تعریف شد، مرحله بعدی «قلاب کردن» یا ثبت آن در وردپرس است. برای انجام این کار، در فضای اجرای جهانی فایل افزونه خود تماس بگیرید:

Add_action("hook_name", "your_function_name"، , );

Hook_name نام یک قلاب اکشن ارائه شده توسط وردپرس است که نشان می دهد عملکرد شما باید با چه رویدادی مرتبط باشد. your_function_name نام تابعی است که می خواهید به دنبال رویداد مشخص شده توسط hook_name اجرا شود. این می تواند یک تابع استاندارد php، یک تابع موجود در هسته وردپرس، یا تابعی باشد که توسط شما در فایل افزونه تعریف شده است (مانند "email_friends" که در بالا تعریف شده است). اولویت یک آرگومان عدد صحیح اختیاری که برای تعیین ترتیب اجرای توابع مرتبط با یک عمل خاص استفاده می شود (پیش فرض: 10). اعداد متناظر کمتر با اجرای قبلی، و توابع با همان اولویت به ترتیب اضافه شده به عمل اجرا می شوند. accepted_args یک آرگومان عدد صحیح اختیاری که تعریف می کند چند آرگومان تابع شما می تواند بپذیرد (پیش فرض 1)، مفید است زیرا برخی از هوک ها می توانند بیش از یک آرگومان را به تابع شما ارسال کنند. این پارامتر در نسخه 1.5.1 جدید است.

در مثال بالا، خط زیر را در فایل افزونه قرار می دهیم:

Add_action("publish_post"، "email_friends");

نصب و فعال کنید

آخرین مرحله برای فعال کردن قلاب فیلتر، نصب فایل و فعال کردن افزونه است. تابع PHP که نوشتید و تماس باید با هم به یک فایل PHP بروند و فایل PHP باید در آن نصب شود. wp-content/pluginsفهرست راهنما. پس از نصب، باید به بخش مدیریت وردپرس بروید و افزونه خود را فعال کنید. برای جزئیات بیشتر ببینید

قلاب های فعلی برای فیلترها

فعال سازی/غیرفعال سازی/حذف نصب

اگر افزونه شما وظایفی را دارد که باید فقط در زمان فعال سازی یا غیرفعال سازی تکمیل شود، می تواند از و Action Reference استفاده کند - فهرستی از قلاب های عمل وردپرس

منابع خارجی

  • پایگاه داده قلاب‌های وردپرس آدام براون، پایگاه داده‌ای از تمام قلاب‌های وردپرس، که نشان می‌دهد از کدام نسخه آمده‌اند و به نقاط کد منبعی که از آنها استفاده می‌کنند پیوند می‌دهد. این کامل ترین است.
  • اتو در وردپرس:

توسط Yandex.
این یک وب سرویس است، بنابراین نیازی به اضافه کردن آن ندارید.

صاحبان سرور برای فعال کردن این افزونه به یک کلید ویژه نیاز دارند.
به وب سایت Yandex وارد شوید و سپس این کلید را دریافت کنید، سپس آن را در تنظیمات API قرار دهید.
لطفاً توجه داشته باشید که کلید رایگان هر ماه "فقط" 10,000,000 کاراکتر را پشتیبانی می کند، اما می توانید تعداد کلیدهای مورد نظر خود را ایجاد کنید.

اینها زبانهای موجود هستند:

SpoilerTarget">Spoiler

آذربایجان
آلبانیایی
انگلیسی
عربی
آفریقایی ها
باسک
بلاروس
بلغاری
بوسنیایی
ولش
مجارستانی
ویتنام
هائیتی
گالیسیایی
هلندی
یونانی
گرجستانی
دانمارکی
اندونزیایی
ایرلندی
ایتالیایی
ایسلندی
اسپانیایی
کانادا
چینی ها
کره ای
لاتین
لیتوانیایی
مقدونی
مغولستانی
آلمانی
نپالی
نروژی
فارسی
لهستانی
پرتغالی
رومانیایی
روسی
صربستان
اسلواکی
اسلوونیایی
ساندانی
ترکی
ازبک
اوکراینی
فنلاندی
فرانسوی
هندی
کرواسی
کشور چک
سوئدی
اسکاتلندی
استونیایی
ژاپنی

وقتی به سرور می‌پیوندید، زبان شما زبان سرور است.
برای تغییر آن، فقط تایپ کنید / زبان(اجازه: translator.lang) و زبان خود را از منو انتخاب کنید.

اگر نمی دانید چگونه وابستگی ها را اضافه کنید، اینجا را بخوانید.

توسعه دهنده
مطمئن شوید که از جاوا >= 8 استفاده می کنید.
JAR را به مسیر ساخت خود اضافه کنید. سپس تنظیمات "Manual Manifest" را تنظیم کنید و MANIFEST.MF خود را در پروژه ایجاد کنید. نوشتن:

کلاس اصلی: your.package.Class
Class-Path: ..\lib\Translator.jar

صاحبان سرور
مطمئن شوید که از جاوا >= 8 استفاده می کنید.
پوشه ای به نام ایجاد کنید libدر ریشه سرور اصلی، و JAR را در اینجا قرار دهید.
همچنین، شما باید آن را در پوشه پلاگین خود قرار دهید.

//ارسال پیام ترجمه شده به صورت خودکار به زبان پخش کننده
p.sendMessage("§a" + Translator.translate("سلام!", p));

//ارسال پیام ترجمه شده به صورت دستی
p.sendMessage("§a" + Translator.translate("سلام!"، Language.ENGLISH، Language.ITALIAN));

//دریافت زبان سرور
زبان serverLang = Translator.getServerLanguge();

//دریافت زبان بازیکن
زبان playerLang = Translator.getPlayerLanguage(p);

  • اگر API را مجدداً بارگیری کنید در حالی که افزونه ای که از آن استفاده می کند فعال است، خراب می شود. برای رفع دستی، افزونه را بارگیری کنید، API را دوباره بارگیری کنید و افزونه را بارگیری کنید
  • کدهای رنگی پشتیبانی نمی شوند. برای استفاده از آنها به مثال های بالا مراجعه کنید
  • تاخیر کمی (API نیاز به ترجمه متن اصلی و دریافت JSON دارد)

اگر مشکلی داشتید، یک پست در بحث بنویسید یا از طریق پیام خصوصی با من تماس بگیرید. من به گزارش های اشکال در بخش بررسی ها پاسخ نمی دهم.

در حال حاضر هیچ پلاگینی وجود ندارد که از این API استفاده کند. اگر از آن استفاده می کنید به من بگویید تا اینجا اضافه کنم

بررسی های اخیر

  1. نسخه: 1.0

    گراند فرات! Ho letto ساخته شده توسط Gamehosting, quindi penso tu sia italiano? se si: sai perché da questo errore all" avvio?

    P.s (ho letto impossibile trovare il percorso specificato, ma la cartella ci sta)

    : java.io.IOException: Trovare Impossible il percorso specificato
    : در java.io.WinNTFileSystem.createFileExclusively (روش بومی)
    : در java.io.File.createNewFile (منبع ناشناس)
    : در eu.iamgio.translator.UsersFileLoader.loadRegisterFile(UsersFileLoader.java:21)
    : در eu.iamgio.translator.Translator.onEnable(Translator.java:35)
    : در org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    : در org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
    : در org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
    : در org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
    : در org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
    : در net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414)
    : در net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378)
    : در net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333)
    : در net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263)
    : در net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)
    : در java.lang.Thread.run (منبع ناشناس)

در پایان سال 2015 منتشر شد. با این حال، به طور کلی، تنها توسعه دهندگان پیشرفته وقت گذاشته اند تا بفهمند این پیشنهاد چقدر قدرتمند است.

بسته WordPress REST API همه به‌روزرسانی‌های مدرن را گرد هم می‌آورد و یک API داخلی ارائه می‌کند که می‌تواند در قالب‌ها، برنامه‌های موبایل و موارد دیگر ادغام شود. به عبارت دیگر، به توسعه دهندگان این امکان را می دهد که رابط front-end را از مدیریت داده جدا کنند و به هر برنامه ای اجازه می دهد با وردپرس تعامل داشته باشد. یادگیری نحوه عملکرد این ابزار می تواند در را به روی امکانات تقریبا بی پایانی برای گسترش سایت وردپرس شما باز کند.

در این مقاله شما را با پروژه WordPress REST API آشنا می کنیم و دلیل خوب بودن آن را توضیح می دهیم و سپس ایده هایی برای استفاده از آن ارائه می دهیم. پس بیایید زمان را از دست ندهیم و شروع کنیم!

معرفی وردپرس REST API

پروژه WordPress REST API (REST from Representational State Transfer) تأیید می‌کند که وردپرس در حال برداشتن گام‌هایی برای تبدیل شدن به یک پلت فرم برنامه کامل است. حضور آن قانع کننده است زیرا یک API استاندارد REST را به هسته وردپرس اضافه می کند.

این پروژه برای اولین بار در سال 2013 توسط توسعه دهندگان Ryan McCue و Rachel Baker در GitHub برای توسعه دهندگان آپلود شد. افزونه مستقل REST API در دسامبر 2015 پس از دریافت پشتیبانی گسترده و جذب نزدیک به 100 مشارکت کننده که مایل به کار بر روی بهبود قابلیت های آن بودند، در هسته وردپرس ساخته شد.

از زمانی که WordPress REST API بخشی از هسته اصلی شد، کارایی خود را ثابت کرده است. در اینجا فقط چند مثال واقعی برای وضوح کاربرد و الهام در پروژه های شما آورده شده است:

  1. Event Espresso از یک REST API برای دسترسی توسعه دهندگان به زیرساخت های جهانی خود استفاده می کند و به آنها امکان می دهد با استفاده از خدمات خود برنامه هایی را توسعه دهند.
  2. Simmer به توسعه دهندگان اجازه می دهد تا به API دسترسی داشته باشند تا عملکرد خود را به یک کامل گسترش دهند اپلیکیشن موبایلیا سفارشی کردن تم ها
  3. JoinIn ویجت "قابل جاسازی" خود را با استفاده از REST API ارائه می کند و آن را با داده های مربوطه در هر کجا که نمایش داده می شود پر می کند.

وقتی صحبت از اهداف نوآورانه REST APIها می شود، این فقط نوک کوه یخ است. با این حال، بیایید در مورد نحوه عملکرد خود REST API بحث کنیم.

چگونه WordPress REST API کار می کند

به طور خلاصه، REST API با دستکاری داده های متنی از یک مکان به مکان دیگر بدون دسترسی مستقیم به پایگاه داده یا رابط کاربری کار می کند. انواع مختلفی از API ها (رابط برنامه نویسی کاربردی) وجود دارد، با وجود این، REST یک استاندارد مدرن و مرتبط باقی می ماند.

REST API از طریق نقاط دسترسی Hyper Text Transfer Protocol (HTTP) با استفاده از فرمت JavaScript Object Notation (JSON) منتقل می شود. به بیان ساده، این فناوری‌ها با استفاده از آدرس‌های وب منحصربه‌فرد برای ارائه داده‌هایی که مانند اشیاء جاوا اسکریپت رفتار می‌کنند، دسترسی به APIها را فراهم می‌کنند.

اگر هرگز با جاوا اسکریپت یا تعاریف شی آن کار نکرده اید، اصول اولیه JSON را یاد بگیرید. اکنون که مفهوم REST API را کمی روشن کردیم، بیایید در مورد اینکه چگونه می تواند تأثیر زیادی بر روند توسعه با استفاده از وردپرس داشته باشد صحبت کنیم.

منظور از WordPress REST API برای توسعه دهندگان چیست؟

WordPress REST API یک ادغام کننده جهانی برای هر نصب وردپرس با هر برنامه ای در وب سرور یا شما است سیستم عامل. در نهایت، این بدان معنی است که تنها محدودیت برای آنچه که می توان با آن ساخته شد با استفاده از وردپرس، فقط تخیل ماست. شما می توانید هر برنامه ای را که به هر پلتفرم یا زبانی نوشته شده است ایجاد کنید و از وردپرس برای پردازش داده ها از طریق REST API استفاده کنید. جامعه باز و دوستانه وردپرس فرصت های فوق العاده ای را ارائه می دهد.

REST API مبتنی بر جاوا اسکریپت است که توجه فزاینده‌ای را به خود جلب می‌کند و به این نکته اشاره می‌کند که دانستن کدام زبان‌های برنامه‌نویسی مهم است. به زودی خواهید فهمید که جاوا اسکریپت سمت سرور PHP جدید است. این را می‌توان در نرم‌افزار جدید WordPress.com، Calypso، که کاملاً بر روی جاوا اسکریپت و REST API اجرا می‌شود، مشاهده کرد.

با استاندارد کردن نحوه تعامل برنامه ها (از جمله هسته وردپرس) با داده های وردپرس، توسعه وردپرس آسان تر و شهودی تر می شود. علاوه بر این، ادغام با سیستم عامل های شخص ثالث را تسهیل می کند.

امیدوارم اکنون دلایل بیشتری برای شروع یادگیری نحوه استفاده از این فناوری از هم اکنون داشته باشید. زمان آن رسیده است که اولین قدم های خود را برای استفاده از REST API در کار خود بردارید!

5 مرحله برای شروع با WordPress REST API

همانطور که قبلا توضیح دادیم، REST API را می توان با هر برنامه کاربردی یا هر زبان برنامه نویسی که می تواند منابع HTTP را فراخوانی کند، استفاده کرد. ما بر روی استفاده از خط فرمان برای ایجاد درخواست های REST API تمرکز خواهیم کرد زیرا این روش ساده ترین روش با کمترین احتمال ایجاد خطاهایی است که می تواند روند یادگیری را کاهش دهد.

برای انجام این کار، باید یک برنامه با رابط خط فرمان (Command Line Interface CLI) در رایانه خود باز کنید - پایانهدر macOS یا Linux و خط فرمانروی ویندوز CLI به شما اجازه می دهد تا به طور مستقیم با REST API تعامل داشته باشید، بدون نیاز به نوشتن اسکریپت های اضافی برای درخواست و پردازش اطلاعات. هر درخواستی که در CLI بنویسید می تواند یک اسکریپت به زبان PHP، جاوا اسکریپت یا زبان دیگری باشد، اما روش برای هر کدام متفاوت خواهد بود. اجرای مستقیم دستورات در CLI. فقط دستور مورد نظر را تایپ کرده و Enter را فشار دهید.

همچنین توصیه می‌کنیم به جای آزمایش این مراحل در یک سایت زنده، یک سایت آزمایشی راه‌اندازی کنید یا به صورت محلی آزمایش کنید. و در نهایت یک شرط دیگر این است که نسخه وردپرس سایت شما 4.4 یا بالاتر باشد. اگر آماده هستید، پس بیایید شروع کنیم!

مرحله 1: با مفاهیم اولیه REST API آشنا شوید

قبل از شروع، بیایید خود را با مفاهیم کلیدی REST API آشنا کنیم. تنها پنج مفهوم و اصطلاح اساسی وجود دارد که باید با آنها آشنا شوید. بیایید به آنها نگاه کنیم:

  1. مسیرها ('مسیرها') و منابع یا نقاط دسترسی ('Endpoints').این مهمترین جنبه در درک REST API است. هنگامی که یک روش HTTP خاص (مانند یک مجموعه داده ایستا یا عملکرد) به یک مسیر خاص متصل است، مسیرها به شما کمک می کنند بین منابع خود حرکت کنید. به عنوان مثال، /wp-json/ مسیری است که به عنوان یک منبع ایجاد شده است تا مسیرهای موجود را به ما نشان دهد.
  2. درخواست ها.آنها با اجرای منابع مناسب و عبور از داده ها ایجاد می شوند.
  3. پاسخ (پاسخ).به طور خلاصه، ارائه داده‌هایی که درخواست کرده‌اید یا یک خطا برگردانید تا متوجه شوید مشکلی پیش آمده است.
  4. طرحواره هادر زیر پاسخ‌های الگو وجود دارد تا همیشه بدانید دقیقاً کجا به دنبال داده‌های مورد نیاز خود بگردید.
  5. کلاس های کنترلرآنها به شما اجازه می دهند مسیرها و منابع خود را ایجاد کنید. تا زمانی که نگران آن نباشید، بعداً مفیدتر خواهند شد.

هنگامی که این پنج مفهوم را درک کردید، می توانید شروع به غواصی عمیق تر در خود REST API کنید و از نقاط دسترسی آن شروع کنید.

مرحله 2: مفیدترین نقاط دسترسی REST API را پیدا کنید

WordPress REST API یک کتابچه راهنمای مرجع با تمام نقاط دسترسی (منابع) ارائه می دهد که در آن می توانید مواردی را که برای شما مفیدتر هستند پیدا کنید. اول از همه، باید بدانید که چگونه یک فراخوان HTTP REST API ایجاد کنید. بخش اصلی هر فراخوانی API وردپرس به این شکل است، جایگزین کنید yourdomain.comبه شما:

Http://yourdomain.com/wp-json/

می توانید با اجرای دستور curl در CLI خود با استفاده از URL خود، اتصال را آزمایش کنید:

Curl -X OPTIONS -i http://yourdomain.com/wp-json/

باید با پیامی از طرف شما خوشامد گفت HTTP. شما می توانید این دستور را با استفاده از برخی از منابع اصلی تغییر دهید. اکنون فقط از نسخه GET کرل استفاده می کنیم.

برای دریافت لیست JSON از پست های خود در وردپرس، می توانید از موارد زیر استفاده کنید:

پس از این، موارد زیر را برای بررسی تمام صفحات موجود وردپرس امتحان کنید:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages

شما می توانید با هر یک از این نقاط دسترسی (و بیشتر!) در CLI آزمایش کنید تا ببینید هر کدام چه پاسخی ایجاد می کنند.

مرحله 3: اصول احراز هویت REST API را بیاموزید

اکنون زمان یادگیری احراز هویت است. برخی از عملکردها و داده‌ها در REST API عمومی هستند، در حالی که برخی دیگر نیاز دارند که به عنوان یک سرپرست وارد سیستم شوید. با این حال، این یک API REST است و جایی برای ورود به سیستم برای مجوز وجود ندارد. در عوض، می‌توانید در طول درخواست‌هایی که نیاز به دسترسی سرپرست دارند، مانند مشاهده پست‌های منتشر نشده یا تغییر پست‌ها، احراز هویت کنید.

بیایید با نصب افزونه WordPress REST API Basic Auth شروع کنیم. این یک افزونه ساده برای توسعه دهندگان است تا به سرعت REST API را یاد بگیرند و برای وب سایت های واقعی در نظر گرفته نشده است. با این حال، فرآیند نصب مانند هر افزونه دیگری است.

وقتی Basic Auth نصب شد، می‌توانید از طریق CLI با پرچم احراز هویت کنید. کاربر. در اینجا مثالی از نحوه اعمال روش احراز هویت کاربر با استفاده از آن آورده شده است حلقهبرای مشاهده پست های منتشر نشده:

Curl -X GET --username:password -i http://yourdomain.com/wp-json/wp/v2/posts?status=draft

برای هر عملیاتی غیر از مشاهده اطلاعات عمومی، احراز هویت لازم است. هنگامی که احراز هویت اولیه را به دست آوردید، می توانید سایر گزینه های توصیه شده توسط اسناد REST API برای توسعه خود را بررسی کنید.

مرحله 4: اولین پست وردپرس خود را با استفاده از REST API انتخاب کنید

هنگامی که نحوه برقراری تماس های پایه REST API با curl را فهمیدید، یک ورودی خاص را انتخاب کنید. ابتدا، بیایید همه انتشارات را نمایش دهیم، همانطور که قبلاً انجام دادیم:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts

می‌توانید از این ترفند پیوست شناسه برای هر منبع REST API، چه بخواهید یک پست، صفحه یا طبقه‌بندی را نمایش دهید، استفاده کنید.

مرحله 5: ایجاد تغییرات در پست وردپرس خود از طریق REST API

در نهایت، بیایید سعی کنیم در انتشاراتی که انتخاب کردید تغییراتی ایجاد کنیم. به جای دستورات گزینهیا گرفتن، این بار استفاده خواهیم کرد پستبرای ایجاد تغییرات گرفتنبرای خواندن داده ها در حالی که استفاده می شود پست- برای ارسال آنها

بیایید با ارسال یک درخواست، نام پست خود را تغییر دهیم پستهمراه با داده های احراز هویت تغییرات جدید با استفاده از پرچم ایجاد خواهد شد ددر پایان فرمان ما اطلاعات کاربر را منتقل خواهیم کرد شی جاوا اسکریپتبا تنظیم متغیر عنوان به مقدار آن، مانند عنوان جدید منهمانطور که در کد زیر نشان داده شده است:

Curl -X POST -- نام کاربری: رمز عبور http://yourdomain.com/wp-json/wp/v2/posts/ -d "("عنوان":"عنوان جدید من")"

مطمئن شوید که نام کاربری، رمز عبور، شناسه پست و عنوان خود را جایگزین کرده اید. برای بررسی تغییرات می توانید دوباره انتشارات داده شده را انتخاب کنید:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/

تبریک می گویم! شما به تازگی اولین ویرایش های مدیریت خود را با استفاده از WordPress REST API انجام داده اید. البته، این راهنمای اولیه فقط سطح قابلیت های ارائه شده توسط REST API را خراش می دهد، اما شروع بسیار محکمی است!

نتیجه

WordPress REST API یک نسخه جدید قدرتمند از هسته وردپرس است و بسیاری از توسعه دهندگان قبلاً شروع به استفاده از قابلیت های آن کرده اند. بر این اساس، اکنون با نحوه کار با آن آشنا شده‌ام فرصت جدید، مهارت های برنامه نویسی خود را بهبود می بخشید و می توانید با استفاده از وردپرس به عنوان یک فریمورک یک برنامه ایجاد کنید.

برای یادآوری، ما پنج مرحله را در راه خود برای یادگیری نحوه تعامل با WordPress REST API طی کردیم:

  1. مقدمه ای بر مفاهیم اولیه REST API.
  2. مفیدترین منابع/نقاط دسترسی REST API.
  3. اصول احراز هویت REST API را بیاموزید.
  4. بازیابی یک پست در وردپرس با استفاده از REST API.
  5. یک پست وردپرس را با استفاده از REST API تغییر دهید.

در مورد WordPress REST API چه سوالاتی دارید؟ برای ما در نظرات بنویسید!