بهروزرسانی
بهروزرسانی افزونهی WidgetCore مستقیماً از مخزن گیتهاب؛ کلید بررسی بهروزرسانی، بهروزرسانی خودکار، یادداشتهای انتشار، توکن مخزن خصوصی و بازگشت به وردپرس.ارگ.
از نسخهی 0.0.7 به بعد، افزونه نسخههای تازه را مستقیماً از مخزن گیتهاب میگیرد. این کار فقط با هدر Update URI و هوکهای خود هستهی وردپرس انجام میشود و هیچ کتابخانهی بهروزرسانی نصب نمیشود.
بهروزرسانی در یک نگاه
وردپرس نسخهی منتشرشده در گیتهاب را میپرسد
در هر بررسی بهروزرسانی، آخرین انتشار مخزن
WidgetCore/Pluginخوانده میشود.اگر نسخه جدیدتر باشد، در فهرست افزونهها دیده میشود
با همان پیام همیشگی وردپرس: «نسخهی جدیدی موجود است».
با یک کلیک بهروز میکنید
بستهی
widgetcore.zipاز همان انتشار دانلود و جایگزین میشود.یادداشتهای انتشار را میبینید
در صفحهی «جزئیات افزونه»، بخش تغییرات از متن همان انتشار پر میشود.
کلید «بررسی بهروزرسانی»
در «پیشخوان → افزونهها»، زیر نام WidgetCore یک پیوند به نام بررسی بهروزرسانی وجود دارد (فقط برای کاربرانی با توانایی update_plugins). با کلیک روی آن:
- کش افزونهها پاک میشود (
wp_clean_plugins_cache( true )). - بررسی بهروزرسانی فوراً اجرا میشود (
wp_update_plugins()). - یک پیام در بالای صفحه نتیجه را میگوید: یا «نسخهی جدیدی موجود است» یا اینکه همین نسخه آخرین است.
بهروزرسانی خودکار
کلید بومی «بهروزرسانی خودکار» برای همین افزونه کار میکند؛ یعنی میتوانید در فهرست افزونهها روی «فعالکردن بهروزرسانی خودکار» بزنید تا وردپرس در بررسیهای دورهای، نسخهی تازه را خودش نصب کند. هیچ تنظیمات جداگانهای در افزونه اضافه نشده است.
چه چیزی بررسی میشود
| مقدار | منبع |
|---|---|
| آدرس مخزن | هدر Update URI در فایل اصلی افزونه |
| نقطهی پرسوجو | https://api.github.com/repos/WidgetCore/Plugin/releases/latest |
| بستهی نصب | دارایی انتشار با نام widgetcore.zip |
| جایگزین بسته | zipball_url همان انتشار (فقط اگر دارایی پیدا نشود) |
| شمارهی نسخه | برچسب انتشار، پس از حذف حرف v |
| مهلت درخواست | 8 ثانیه |
چند محافظ امنیتی در همان تابع قرار دارد:
- برچسب انتشار باید دقیقاً الگوی
عدد.عدد.عددداشته باشد، وگرنه بهروزرسانی نادیده گرفته میشود. - دامنهی بسته فقط میتواند
github.comیاapi.github.comباشد؛ هر دامنهی دیگری رد میشود. - هنگام نصب، پوشهی extracted به
widgetcore/منتقل میشود تا ساختار پوشهها در بهروزرسانیهای بعدی نشکند.
مخزن خصوصی: توکن گیتهاب
اگر مخزن را خصوصی کردهاید، API گیتهاب بدون اعتبارنامه پاسخ نمیدهد. در این حالت ثابت WGCR_GITHUB_TOKEN را در wp-config.php تعریف کنید:
define( 'WGCR_GITHUB_TOKEN', 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
توکن بهصورت هدر Authorization: Bearer … به درخواستهای API اضافه میشود.
بازگشت به وردپرس.ارگ
اگر روزی افزونه در مخزن رسمی افزونههای وردپرس منتشر شود، کافی است هدر Update URI از فایل اصلی افزونه حذف شود؛ آنگاه بهروزرسانی مانند هر افزونهی دیگری از مسیر عادی وردپرس انجام میشود و هیچ کد دیگری عوض نمیشود.
رفع مشکلات بهروزرسانی
| نشانه | علت احتمالی | راهحل |
|---|---|---|
| نسخهی جدید در فهرست نمیآید | کش 12 ساعتهی وردپرس | پیوند «بررسی بهروزرسانی» را بزنید |
| خطا در دانلود بسته | مخزن خصوصی بدون توکن | تعریف WGCR_GITHUB_TOKEN |
خطای cURL یا مهلت زمانی | خروجی مسدود سرور به api.github.com | بازکردن دسترسی خروجی به api.github.com و github.com |
| «جزئیات افزونه» خالی است | انتشار بدون یادداشت | متن یادداشت را در انتشار گیتهاب بنویسید |
| پس از بهروزرسانی، پوشه عوض شده | ساختار ZIP انتشار | بستهی انتشار باید پوشهی widgetcore/ داشته باشد |
تاریخچهی نسخهها
فهرست کامل تغییرات هر نسخه در صفحهی Changelog آمده است. نسخهگذاری افزونه شمارندهای است: هر انتشار یک پله جلو میرود (0.0.1 → 0.0.2 … 0.0.9 → 0.1.0 … 0.9.9 → 1.0.0).