تثبيت إضافات WordPress وتحديثها وإدارتها باستخدام WP-CLI

نشرت: 2022-07-26

يتيح لك WP-CLI القيام عمليا بأي شيء يمكنك القيام به في مدير WordPress ، ولكن في سطر الأوامر. هذا يوفر الكثير من الوقت ويوفر سير عمل أنظف. يمكنك استخدام WP-CLI لإدارة نواة WordPress وتشغيل تحديثات السمات وإدارة عمليات التثبيت متعددة المواقع وغير ذلك الكثير. سنركز في هذه المقالة على واحدة من أكثر حالات الاستخدام شيوعًا ، وهي إدارة مكونات WordPress الإضافية.

يتم تنظيم جميع أوامر WP-CLI بنفس الطريقة. يوجد دائمًا أمر رئيسي (مثل wp plugin ) وأمر فرعي (مثل install ) ، متبوعًا بالمعلمات والمفاتيح. سنركز على wp plugin والأوامر الفرعية الخاصة به في هذه المقالة ، ولكن يمكنك رؤية شرح أكثر تفصيلاً في دليلنا إلى بنية أوامر WP-CLI.

استخدمت تلك المقالة الأمر wp plugin كمثال ، مع إبراز كيفية تثبيت وتنشيط المكونات الإضافية باستخدام WP-CLI. في هذه المقالة سوف نتعمق أكثر في كيفية إدارة المكونات الإضافية الخاصة بنا باستخدام واجهة سطر أوامر WordPress.

تثبيت وتنشيط الملحقات

يوجد حاليًا 16 أمرًا فرعيًا رسميًا للأمر الرئيسي wp plugin . سنغطي في هذا القسم الأوامر الفرعية للتثبيت والتنشيط. سننظر أيضًا في كيفية تثبيت المكونات الإضافية وتنشيطها باستخدام أمر واحد. سننظر أيضًا في كيفية تثبيت المكونات الإضافية من مصادر أخرى غير دليل مكونات WordPress.

أدخل wp plugin install متبوعًا بالارتباط الرسمي للمكون الإضافي لتثبيت أحدث إصدار:

تثبيت البرنامج المساعد wp hello-dolly
تثبيت Hello Dolly (1.7.2)
تنزيل حزمة التثبيت من https: //downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip ...
استخدام الملف المخزن مؤقتًا '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip' ...
لا يمكن التحقق من صحة hello-dolly.1.7.2.zip حيث لم يتم العثور على توقيع.
تفريغ حزمة...
تثبيت البرنامج المساعد ...
تم تثبيت البرنامج المساعد بنجاح.
نجاح: تم تثبيت 1 من 1 ملحقات.

بعد ذلك ، نقوم بتنشيط المكون الإضافي باستخدام أمر wp plugin activate :

wp plugin بتنشيط hello-dolly
تم تنشيط البرنامج المساعد "hello-dolly".
نجاح: تم تنشيط 1 من 1 ملحقات.

البحث عن سبيكة البرنامج المساعد

لاحظ أن الرابط الثابت غالبًا ما يكون مختلفًا عن اسم المكون الإضافي. تظهر slug في عنوان URL الخاص بالمكوِّن الإضافي في دليل WordPress Plugin ، ولكن يمكنك تسريع سير عملك من خلال الالتزام بسطر الأوامر واستخدام أمر search الفرعي ، متبوعًا --per-page=1 و --fields=name,slug .

تخبر المعلمة الاختيارية --per-page WP-CLI عدد النتائج التي تظهر لنا ، في هذه الحالة واحدة فقط. سيتم عرض 10 نتائج بشكل افتراضي إذا لم تعطها هذه المعلمة. لقد أعطيته القيمة 1 هنا لأنني أريد فقط رؤية النتيجة الأكثر صلة.

تخبر المعلمة --fields WP-CLI أن تطلب حقولًا معينة من واجهة برمجة التطبيقات ، في هذه الحالة اسم المكون الإضافي و slug. هناك مجموعة كبيرة من القيم التي يمكنك استخدامها هنا ، بما في ذلك version لمعرفة رقم الإصدار الحالي ، rating لمعرفة تقييمات المكون الإضافي كنسبة مئوية وإجمالي عدد التقييمات. يمكنك بدلاً من ذلك استخدام --field=<field> إذا كنت تريد فقط عرض نتيجة حقل واحد. يجب عليك استخدام إما المعلمة --fields أو --field مع أمر wp plugin search .

بحث البرنامج المساعد wp "wp offload media" - لكل صفحة = 1 - الحقول = الاسم ، slug
نجاح: عرض 1 من 66 مكونًا إضافيًا.
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +
| الاسم | سبيكة |
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +
| WP Offload Media Lite لـ Amazon S3 و DigitalOcean Spaces و Google Cloud Sto | أمازون-s3-و-كلاود فرونت |
| الغضب | |
+ ------------------------------------------------- ------------------------------- + ------------------ -------- +

نظرًا لأن الاستجابة لهذا الأمر عبارة عن قائمة ، فهذه فرصة جيدة لإظهار ما يمكن أن تفعله المعلمة --format . دعنا نطلب من WP-CLI تزويدنا بهذه القائمة بتنسيق JSON ، ثم توجيهها عبر الأداة المساعدة jq لتنسيق أجمل. الأداة المساعدة jq عبارة عن معالج JSON خفيف الوزن لسطر الأوامر يمكنك تثبيته على الرابط أعلاه ، أو تجربته عبر الإنترنت. تأكد من حذف | jq | jq من الأمر أدناه إذا لم يكن مثبتًا لديك.

عندما نطلب إخراج بتنسيق JSON ، يحذف WP-CLI رسالة الحالة حتى لا نتعطل JSON:


البحث عن البرنامج المساعد $ wp "wp offload media" - لكل صفحة = 1 - الحقول = الاسم ، slug --format = json | جي كيو
[
  {
    "الاسم": "WP Offload Media Lite لـ Amazon S3 و DigitalOcean Spaces و Google Cloud Storage" ،
    "slug": "amazon-s3-and-cloudfront"
  }
]

لتنشيط المكون الإضافي بمجرد تثبيته ، استخدم wp plugin activate متبوعًا بالارتباط الرسمي للمكون الإضافي.

تثبيت وتنشيط البرنامج المساعد في نفس الوقت

عندما يتعلق الأمر بإدارة الإضافات الخاصة بك باستخدام WP-CLI ، فإن إحدى المزايا الكبيرة هي أنه يمكنك تثبيت وتفعيل مكون إضافي بأمر واحد. بينما يمكن استخدام activate كأمر فرعي مع wp plugin ، يمكن أيضًا استخدامه كمعامل مع أمر wp plugin install :

# تثبيت وتفعيل البرنامج المساعد في نفس الوقت
تثبيت البرنامج المساعد wp - تنشيط hello-dolly

تثبيت إصدار البرنامج المساعد المحدد

ليس من غير المألوف أنك تريد تثبيت إصدار معين من البرنامج المساعد لأغراض الاختبار. طالما أن الإصدار الذي تريده لا يزال متاحًا في دليل المكونات الإضافية لـ WordPress ، يمكنك تحديد أي إصدار تراه مناسبًا:

# تثبيت إصدار مكون إضافي محدد
تثبيت البرنامج المساعد wp woocommerce - الإصدار = 5.5.3

تثبيت الإضافات من مواقع أخرى

دليل المكونات الإضافية لـ WordPress ليس المكان الوحيد الذي يمكننا فيه الحصول على المكونات الإضافية. يمكننا أيضًا تثبيت مكون إضافي مباشرةً من نظام الملفات. في معظم الأوقات عندما تشتري مكونًا إضافيًا مميزًا ، تحصل على التسليم الأولي في شكل ملف مضغوط. سيقوم WP-CLI بتثبيت ملف zip هذا بسعادة ، دون الحاجة إلى استخراج الحزمة أولاً:

# تثبيت مكون إضافي من مجلد التنزيلات
تثبيت البرنامج المساعد $ wp ~ / Downloads / advanced-custom-fields-pro.zip

يعمل هذا أيضًا إذا كان المكون الإضافي الذي تريد تثبيته متاحًا على عنوان URL ، ربما لا يمكن الوصول إليه إلا من خلال توفير بيانات الاعتماد عبر معلمات الطلب أو على خادم بشهادة موقعة ذاتيًا:

# احصل على المكون الإضافي من عنوان URL
تثبيت البرنامج المساعد wp http://www.hellfish.media/my-plugin.zip

# ... أو حتى ملف خاص من مستودع أمازون:
تثبيت المكون الإضافي wp https://s3.amazonaws.com/bucketname/my-plugin.zip؟X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# من خادمنا الداخلي بشهادة موقعة ذاتيًا:
تثبيت المكون الإضافي wp https://intranet.hellfish.media/my-plugin.zip --insecure

تحديث الملحقات مع WP-CLI

بمجرد تثبيت مكون إضافي ، من المهم إبقائه محدثًا لأسباب أمنية لمعرفة ما إذا كان هناك أي مكونات إضافية لتحديثها ، يمكننا تشغيل الأمر wp plugin list :

قائمة المكونات الإضافية wp
+ ------------------------------- + ---------- + ------ ----- + --------- +
| الاسم | الحالة | تحديث | الإصدار |
+ ------------------------------- + ---------- + ------ ----- + --------- +
| أمازون-s3-و-كلاود فرونت | نشط | متاح | 2.6.1 |
| مرحبا دوللي | نشط | متاح | 1.7.1 |
| wunderdevmu | يجب استخدامه | لا شيء | 1.0 |
+ ------------------------------- + ---------- + ------ ----- + --------- +

في هذه الحالة ، يحتاج كل من المكون الإضافي Hello Dolly و WP Offload Media إلى تحديثات. بطبيعة الحال ، هناك أمر فرعي منفصل لذلك يسمى update .

يمكننا إما تحديثها واحدة تلو الأخرى ، أو أن نكون كسالى بعض الشيء ونقوم فقط بتحديث كل ما يحتاج إلى تحديث دفعة واحدة باستخدام مفتاح التبديل --all . يتمثل السلوك الافتراضي لأمر التحديث في التحديث بالكامل حتى آخر إصدار متاح ، والذي يتضمن ترقيات الإصدار الرئيسي. ولكن باستخدام مفتاح --minor يمكننا أن نكون أكثر حرصًا ونقوم بتحديث الإصدارات الثانوية فقط. على سبيل المثال ، يمكننا إخباره بالتحديث من 1.2.3 إلى 1.3.0 ، ولكن ليس إلى 2.0.0. يمكننا حتى أن نكون حذرين للغاية ونستخدم مفتاح --patch التحديثات على التصحيحات فقط ، أي من 1.2.3 إلى 1.2.5 ولكن ليس إلى 1.3.0 أبدًا .

# قم بتحديث المكونات الإضافية بعناية واحدة تلو الأخرى
تحديث البرنامج المساعد wp wp-offload-media
تحديث البرنامج المساعد wp hello-dolly

# نهج رعاة البقر
تحديث البرنامج المساعد wp - all

# قليلا أكثر منطقية
تحديث البرنامج المساعد wp - all - minor

# دفاعي جدا
تحديث البرنامج المساعد wp - all --patch

ملاحظة: تفترض مفاتيح التبديل - --patch --minor المكون الإضافي يستخدم الإصدار الدلالي. بعيدًا عن كل المكونات الإضافية ، تفعل ذلك ، لذا ستحتاج إلى البحث عن هذه المكونات الإضافية التي تستخدمها حتى لا تحصل على أي مفاجآت غير سارة. يتيح لك الخيار --dry-run التحقق والتأكد من صحة أوامرك:

# اختبار تحديث مكون إضافي واحد إلى بقع فقط
تحديث البرنامج المساعد wp hello-dolly --patch --dry-run

يتم استخدام المعلمة --exclude=<plugin name> للإشارة إلى المكونات الإضافية التي يجب استبعادها من التحديث. قم بتضمين أسماء المكونات الإضافية كقائمة مفصولة بفواصل ، وسيقوم WP-CLI بتحديث جميع المكونات الإضافية الأخرى مع تركها بمفردها:

تحديث البرنامج المساعد wp - all --exclude = hello-dolly
جارٍ تمكين وضع الصيانة ...
تحميل التحديث من https: //deliciousbrains.com/my-account/download/7512/؟ version = 2.6.2 ...
تفريغ التحديث ...
جاري تثبيت أحدث إصدار ...
جارٍ إزالة الإصدار القديم من البرنامج المساعد ...
تم تحديث البرنامج المساعد بنجاح.
جارٍ تعطيل وضع الصيانة ...
+ -------------------------- + ------------- + -------- ----- + --------- +
| الاسم | old_version | الإصدار الجديد | الحالة |
+ -------------------------- + ------------- + -------- ----- + --------- +
| أمازون-s3-و-كلاود فرونت | 2.6.1 | 2.6.2 | محدث |
+ -------------------------- + ------------- + -------- ----- + --------- +

فرض إعادة تثبيت البرنامج المساعد

تأتي معظم المكونات الإضافية المتميزة مع مدقق التحديث المدمج الخاص بها والذي يعمل أيضًا بشكل رائع مع WP-CLI. في تجربتي ، يمكن أيضًا تحديث أي مكون إضافي يمكن تحديثه بنقرة واحدة عبر صفحات مسؤول WordPress باستخدام WP-CLI. ولكن في بعض الحالات ، يتم توفير التحديثات عبر إصدار جديد من الملف المضغوط الذي تحتاج إلى وضعه في المكان الصحيح على الخادم الخاص بك. يمكنك تطبيق هذا النوع من التحديثات بفرض إعادة تثبيت المكون الإضافي باستخدام --force switch:

# فرض إعادة تثبيت البرنامج المساعد
تثبيت البرنامج المساعد wp ~ / Downloads / my-custom-plugin-v2.zip --force

تمكين التحديثات التلقائية

منذ الإصدار 5.5 ، يمكن لـ WordPress تحديث المكونات الإضافية تلقائيًا. يجب تمكين التحديثات التلقائية لكل مكون إضافي فردي. لا يقدم WP-CLI أي معالجة مجمعة للتحديثات التلقائية. يجب أن يتم ذلك بشكل فردي لكل مكون إضافي باستخدام الأمر الفرعي auto-updates . يمكنك أن ترى كيف يعمل مع الأوامر التالية:

# تحقق مما إذا تم تمكين التحديثات التلقائية للمكوِّن الإضافي
تحديثات تلقائية لحالة البرنامج المساعد wp hello-dolly

# تمكين التحديثات التلقائية 
تتيح التحديثات التلقائية للمكوِّن الإضافي wp hello-dolly

# قم بتعطيله مرة أخرى
تعمل التحديثات التلقائية للمكوِّن الإضافي wp على تعطيل hello-dolly

تعطيل وإزالة المكونات الإضافية

يعد تثبيت المكونات الإضافية وتنشيطها وتحديثها من بين المهام الأكثر شيوعًا ، ولكن هناك وظائف أخرى لإدارة المكونات الإضافية يمكن لـ WP-CLI التعامل معها.

إذا كنت قد حاولت من قبل معرفة سبب المشكلة على موقع WordPress الخاص بك ، فمن المحتمل أن يُنصح بإلغاء تنشيط جميع المكونات الإضافية كإحدى الخطوات الأولى. من الممكن القيام بذلك من خلال التعامل الجماعي في متصفح الويب ، لكنه دائمًا ما يجعلني أشعر بالتوتر. أفضل القيام بذلك عبر سطر الأوامر باستخدام مفتاح التبديل --all .

# قم بإلغاء تنشيط جميع المكونات الإضافية مرة واحدة
إلغاء تنشيط المكون الإضافي wp - all

# وإعادة تنشيطها مرة أخرى
تنشيط المكون الإضافي wp - all

يمكن أيضًا إزالة المكون الإضافي بالكامل بسهولة باستخدام WP-CLI. يتمثل أحد الاختلافات بين القيام بذلك عبر سطر الأوامر والمتصفح في أن WP-CLI سيسمح لك بإزالة مكون إضافي دون تشغيل خطافات إلغاء التنشيط أولاً. إذا كان لديك مكون إضافي مثبت في أي وقت مضى والذي يعطل WordPress أثناء إلغاء التنشيط ، فأنت تعلم لماذا يمكن أن يكون هذا مفيدًا للغاية:

# إلغاء التنشيط وإلغاء التثبيت 
إلغاء تنشيط المكون الإضافي wp hello-dolly --uninstall

# إزالة البرنامج المساعد دون إعطائه فرصة لإلغاء تنشيطه
wp plugin يحذف hello-dolly

هناك أيضًا الأمر الفرعي toggle المرتبط بتنشيط وتعطيل المكونات الإضافية. سيقوم بقلب أو تبديل حالة التنشيط بحيث تتغير إلى عكس الحالة الحالية. يمكنك إضافة --network لتبديل تشغيل المكون الإضافي أو إيقاف تشغيله لشبكة متعددة المواقع بالكامل.

المجاميع الاختبارية للمكونات الإضافية

WP-CLI لديه القدرة على مقارنة المجاميع الاختبارية للمكونات الإضافية المثبتة مع المجاميع الاختبارية لنفس المكون الإضافي والإصدار في دليل البرنامج المساعد WordPress. هذه طريقة فعالة للغاية لتحديد ما إذا كان قد تم التلاعب بملفات المكون الإضافي في تثبيت WordPress الخاص بك. إذا كان لديهم ، فهذا مؤشر قوي على تعرضك للاختراق.

المجاميع الاختبارية هي خوارزميات كمبيوتر خاصة يمكنها أن تأخذ مدخلات من أي نوع وحجم وتحويلها إلى سلسلة قصيرة. يتراوح طول هذه السلسلة عادةً ما بين 20 إلى 40 حرفًا ، مما يجعلها مناسبة للتخزين في قاعدة بيانات. تسمى هذه السلسلة الناتجة تجزئة ، أو توقيع ، أو لأسباب تاريخية ، المجموع الاختباري.

ما يجعل هذه الخوارزميات فريدة من نوعها هو أنه حتى لو تغير حرف واحد في الإدخال ، فسيكون الناتج مختلفًا تمامًا. قم بتغذية جميع ملفات المكون الإضافي في خوارزمية المجموع الاختباري واحدًا تلو الآخر ، وسوف ينتهي بك الأمر بتوقيع صغير ، أو مجموع اختباري ، يمثل المكون الإضافي بأكمله.

في كل مرة يتم فيها نشر إصدار جديد من البرنامج المساعد في دليل البرنامج المساعد WordPress ، يتم حساب المجموع الاختباري وحفظه لهذا الإصدار المحدد. بعد بضعة أشهر عندما تريد التحقق مرة أخرى من عدم تعرضك للاختراق ، يمكنك أن تطلب من WP-CLI حساب المجموع الاختباري للمكونات الإضافية ومقارنتها بالمجموعات الاختبارية الأصلية التي يحتفظ بها WordPress. إذا كانت هناك ملفات مضافة أو معدلة أو مفقودة من جانبك ، فإن المجموع الاختباري للمكوِّن الإضافي سيختلف عن الملف الأصلي وسيُحدث WP-CLI بعض الضوضاء حوله.

يُطلق على الأمر الفرعي الذي يتعامل مع سحر التحقق من التجزئة هذا verify-checksums وهو في الأساس نفس السؤال "هل الإضافات الخاصة بي لم تتغير منذ أن حصلت عليها من دليل مكونات WordPress؟"

# تحقق من وجود مكون إضافي واحد
wp plugin، checkums، hello-dolly. التحقق من البرنامج المساعد wp
نجاح: تم التحقق منه 1 من 1 مكون إضافي

# تحقق من جميع المكونات الإضافية التي تأتي من الريبو
wp plugin checkums - all. - فحص البرنامج المساعد wp

يعمل هذا فقط مع المكونات الإضافية التي تم تثبيتها من دليل WordPress Plugin Directory الرسمي ، لذلك لن يتم التحقق من المكونات الإضافية المتميزة بواسطة هذا الأمر. يوجد أيضًا الأمر الفرعي verify-checksums لـ wp core ولكن لا يمكن استخدامه للتحقق من سمات WordPress.

أوامر البرمجة

حتى الآن ، الأوامر التي قمنا بتغطيتها مفيدة لأي شخص يحتاج إلى إدارة مكونات WordPress الإضافية. المجموعة الأخيرة من الأوامر الفرعية للمكوِّن wp plugin التي سأقوم بتغطيتها تهم مطوري WordPress بشكل أساسي ، حيث إنها في الغالب مخصصة للاستخدام في نصوص Bash النصية.

نحتاج أولاً إلى التحدث قليلاً عن أكواد الخروج من نظام Unix. في نظام Unix ، تعود جميع البرامج التي تخرج من التشغيل برمز خروج. التفسير القياسي هو أن رمز الخروج 0 يعني أن البرنامج انتهى على ما يرام ، بينما يشير رمز الخروج غير الصفري إلى حدوث خطأ.

غالبًا ما تُستخدم أكواد الخطأ في البرامج النصية للقذيفة لاستخدامها في عبارات if/else وأشكال أخرى من التفرع. لا نرى رمز الخروج عند تشغيل أحد الأوامر بشكل طبيعي من موجه الأوامر ، ولكن يمكننا دائمًا العثور عليه باستخدام $? :

# قم بتشغيل شيء يعمل والحصول على رمز الخروج
تاريخ
صدى $؟
0

# تشغيل شيء فشل
ls / غير موجود في المجلد
ls: / idongfdg: لا يوجد مثل هذا الملف أو الدليل
صدى $؟
1

في WP-CLI ، لدينا مجموعة من الأوامر التي تهدف في الغالب إلى التحقق من شيء ما وإرجاع رمز خروج مفيد. يحتوي الأمر wp plugin على اثنين من هذه الأوامر الفرعية ، is-installed is-active ، والتي تتيح لنا التحقق مما إذا كان قد تم تثبيت مكون إضافي معين وتنشيطه:

# تحقق مما إذا كان hello-dolly مثبتًا (هو)
تم تثبيت البرنامج المساعد wp hello-dolly
صدى $؟
0

# قم بإزالة hello-dolly وتحقق مرة أخرى
wp plugin يحذف hello-dolly
تم تثبيت البرنامج المساعد wp hello-dolly
صدى $؟
1

# تحقق مما إذا تم تنشيط woocommerce
البرنامج المساعد wp نشط woocommerce
صدى $؟
0

# إلغاء تنشيط woocommerce
إلغاء تنشيط المكون الإضافي wp woocommerce
البرنامج المساعد wp نشط woocommerce
صدى $؟
1

باستخدام الأوامر المذكورة أعلاه ، من الممكن كتابة نصوص Bash النصية التي تقوم بأشياء مختلفة اعتمادًا على ما إذا تم تثبيت / تنشيط مكون إضافي معين أم لا.

الأمر الفرعي الأخير الذي أظن أنه في الغالب لأغراض البرمجة النصية هو path . يقوم هذا الأمر ببساطة بإرجاع المسار إلى ملف PHP الرئيسي للمكون الإضافي ، وبالتالي إلى مجلد البرنامج المساعد أيضًا. يمكننا دمج هذا مع خدع Bash الأخرى ، على سبيل المثال مثل هذا:

# عرض جميع الملفات الموجودة في مجلد البرنامج المساعد woocommerce
ls -al $ (dirname $ (wp plugin path woocommerce))

هذا ليس مفيدًا جدًا في عمل سطر الأوامر اليومي ، ولكنه بالتأكيد مفيد عند كتابة البرامج النصية وتحتاج إلى الحصول على مسار مكون إضافي.

استنتاج

كما ترى ، فإن إدارة مكونات WordPress الإضافية من خلال سطر الأوامر تزيد من سرعتك وتجعل العديد من المهام الشائعة أبسط بكثير. لقد قمت بتغطية المهام الأكثر شيوعًا عندما يتعلق الأمر بإدارة المكونات الإضافية الخاصة بك ، لكنني أشجعك على استكشاف المزيد بنفسك. ستجد قريبًا أن قوة WP-CLI تمتد إلى ما هو أبعد من المكونات الإضافية ، مما يتيح لك عمليا القيام بأي شيء يمكنك القيام به في مدير WordPress ، ولكن بشكل أسرع.

هل لديك أي أمثلة رائعة عن كيفية استخدامك لأمر wp plugin ؟ رجاء اعلموني بتعليقاتكم.