كيفية إضافة دعم WP-CLI إلى أي مكون إضافي لبرنامج WordPress
نشرت: 2018-08-14يعد تعديل المكون الإضافي وفقًا لاحتياجات المستخدم أحد الأجندات الرئيسية التي يجب على كل مالك مكون إضافي اتباعها. بالنسبة إلى شريط تمرير الصفحة الأولى ، فهذا يعني المزيد من منتقي الألوان والخطوط والخيارات المرئية المماثلة. ومع ذلك ، إذا كنت تقدم خدمات للمطورين والمسؤولين وغيرهم من المستخدمين المحترفين عاجلاً أم آجلاً ، فسوف يريدون دعم CLI. سوف يريدون التخلص من الماوس والعمل فقط باستخدام لوحة المفاتيح. بفضل مشروع WP-CLI ، أصبحت إضافة دعم CLI إلى المكون الإضافي الخاص بك بمثابة قطعة من الكعكة.
بإضافة دعمwpcli إلى المكون الإضافي #WordPress الخاص بك ، ستفتحه للمطورين والمستخدمين المتميزين والمسؤولين.
انقر على تويترمعركة واجهة المستخدم الرسومية الأبدية مقابل CLI
دعنا نحصل على شيء بعيدًا عن الطريق: واجهة المستخدم الرسومية (GUI) ليست أفضل من CLI (واجهة سطر الأوامر) والعكس صحيح: CLI ليست أفضل من واجهة المستخدم الرسومية. الناس يفضلون واحد على الآخر. إنها مسألة تفضيل شخصي أو عادة. "هل هما متماثلان ، هل يمكن استبدالهما؟" مع بعض التنازلات ، نعم يمكن أن تكون كذلك ، لكن لا أحد يحب اختيار الألوان في واجهة سطر الأوامر بالأبيض والأسود. هذا ببساطة يأتي بنتائج عكسية. كل منهم يخدم غرضًا متخصصًا.
"فلماذا نحتاج كليهما؟ أليس WP أكثر توجهاً نحو واجهة المستخدم الرسومية؟ " إنه ، WP هو أكثر توجهاً نحو واجهة المستخدم الرسومية. ولكن ليس لجميع المستخدمين. يستخدم بعض الأشخاص الفسفور الأبيض بطريقة أكثر ملاءمة لـ CLI ، وتمكنهم من العمل معها بشكل أسرع. علاوة على ذلك ، لماذا لا يكون لديك كلاهما؟ لا ينتفخ أي شيء أو يعيق الطريق.
إذن ، WP-CLI هو مكون إضافي ، أليس كذلك؟
لا ، إنه ليس مكونًا إضافيًا. لا تحتاج إلى إضافة أي شيء إلى تثبيت WordPress حتى يعمل WP-CLI. ما عليك سوى WP-CLI على نظام التشغيل الخاص بك. تمت كتابة WP-CLI بلغة PHP ومعبأة في صورة phar. إنها طريقة لوضع تطبيق PHP كامل في ملف واحد ، "phar" (أرشيف PHP) لسهولة التوزيع والتثبيت عبر أنظمة تشغيل مختلفة. تعتمد عملية التثبيت على نظام التشغيل الخاص بك ، لكنها سهلة وموثقة جيدًا في كتيب WP-CLI - أو إذا كنت تستخدم مقاطع فيديو أكثر ، فإليك تثبيت WP-CLI على Windows.
لن أكرر أيًا من المواد المذكورة أعلاه. إنها مفصلة بما يكفي ويجب أن تجعلك تبدأ مع WP-CLI في غضون دقائق. عند تشغيله ، قم بتغيير دليل العمل الخاص بك إلى تثبيت WP الذي تخطط للعمل معه وتشغيل wp option get home
للتأكد من أنك على تثبيت WP الصحيح وأن WP-CLI يعمل.
إنه أبسط مما يبدو
أولاً ، نحتاج إلى وظيفة تخبرنا ما إذا كان المستخدم يتفاعل مع WP عبر CLI أم لا. إنه مفيد للعديد من الأشياء مثل عدم إرسال أي رؤوس HTTP أثناء وجوده في CLI وعدم تضمين وظائف CLI في المكالمات "العادية". يمنحنا أيضًا فرصة لإعادة استخدام الوظائف القديمة المكتوبة في الأصل لواجهة المستخدم الرسومية مع بعض التغييرات الطفيفة فقط.
function is_cli_running() { return defined( 'WP_CLI' ) && WP_CLI; }
الخطوة التالية هي اكتشاف اسم لأمر CLI الخاص بك. يوجد حوالي 40 أمرًا مدمجًا. لذلك لا يمكنك استخدام أي من هذه الأسماء ، ويجب أن تظل بعيدًا عن أي أسماء تجارية مثل "google" لأنه من المحتمل أنك لا تملك Google. من الناحية المثالية ، يجب أن يكون اسم المكون الإضافي الخاص بك أو اسمًا شاملاً لمجموعة من الوظائف التي يقوم بها حتى تتمكن من وضع جميع الأوامر تحت ذلك في محاولة لعدم تلويث مساحة الاسم الرئيسية. إنه منطقي ، كما هو الحال مع أي جزء من التعليمات البرمجية. دعنا نستخدم site-info
وسنقوم ببعض الوظائف التي تعرض معلومات متنوعة حول الموقع.
لإبقاء الأمور نظيفة ومرتبة ، ضع كل التعليمات البرمجية المتعلقة بـ WP-CLI في ملف جديد - custom-wp-cli-commands.php
. سنقوم بتضمين هذا الملف فقط عند الحاجة وعندما تكون جميع الأكواد المتعلقة بـ CLI متاحة. لذلك ، سنستخدم الدالة التي أنشأناها للتو. من أجل الاختبار والتعلم ، ضع الملف في مجلد النسق النشط ثم أضفه إلى ملف functions.php
الخاص بالقالب.
if ( is_cli_running() ) { require_once 'custom-wp-cli-commands.php'; }
ثم ضع هذا في custom-wp-cli-commands.php
؛
/** * Just a few sample commands to learn how WP-CLI works */ class cli_site_info extends WP_CLI_Command { /** * Display version information. * ## OPTIONS * * [--wponly] * : Shows only WP version info, omitting the plugin one. */ function version( $args, $assoc_args ) { if ( !empty( $assoc_args['wponly'] ) ) { WP_CLI::line( 'Version of WordPress is ' . get_bloginfo( 'version' ) . '.' ); } else { WP_CLI::line( 'Version of this plugin is 0.1-beta, and version of WordPress ' . get_bloginfo( 'version' ) . '.' ); } } /** * Display the number of plugins. */ function plugins() { WP_CLI::line( 'There are a total of ' . sizeof( get_plugins() ) . ' plugins on this site.' ); } } WP_CLI::add_command( 'site-info', 'cli_site_info' );
إذا فتحت الموقع أو الصفحة الرئيسية أو المسؤول ، فلن يحدث شيء في المتصفح. هذا طيب. لاختبار أمر CLI الجديد ، ارجع إلى نافذة سطر الأوامر ، وقم بتشغيل wp site-info version
وستحصل على المكون الإضافي وإصدار الموقع. أو قم بتشغيل wp site-info plugins
وستحصل على العدد الإجمالي للمكونات الإضافية على الموقع. حق سهل؟ دعنا ننتقل إلى الكود.
سهل مثل تمديد فصل دراسي PHP
cli_site_info
يمتد إلى فئة WP_CLI_Command
؛ لا شيء يتوهم هناك. يمكنك استدعاء الفصل ما تريد. المهم هو الكود الموجود في السطر الأخير من الملف - WP_CLI::add_command( 'site-info', 'cli_site_info' )
. إنها تسجل قيادتنا عالية المستوى وتربط صفنا بها. إذا كنت تريد تغيير أمر site-info
إلى شيء آخر ، فهذا هو المكان المناسب للقيام بذلك.
كل طريقة (وظيفة) عامة في الفصل هي أمر فرعي في WP-CLI. تأكد من مراجعة تشريح الأمر لتعلم لغة WP-CLI المناسبة. ليست هناك حاجة إلى "تسجيل" الطريقة في أي مكان أو القيام بأي شيء إضافي. كما فعلنا مع plugins()
version()
- أنشئ وظيفة قياسية ، وهذا كل شيء. سيعرف WP-CLI ما يجب فعله به.
بمجرد انتهائك من هذه الطريقة ، يمكنك تشغيل أي كود تحتاجه. ومع ذلك ، سيتطلب التفاعل مع CLI بعض الوظائف المخصصة لأن أشياء مثل echo
لن تعمل كما هو متوقع. بدلاً من echo
يوجد WP_CLI::line()
. تغطي واجهة WP-CLI API الداخلية كل ما تحتاجه ويتم توثيق جميع الوظائف جيدًا بالإضافة إلى فصلها في المدخلات والمخرجات والمتنوعة والنظام والفئات الأخرى مما يجعل العثور عليها أمرًا في غاية السهولة.
إلى جانب طباعة النص ، ربما ترغب في استخدام وسيطات الأمر (الترابطية) حتى تتمكن من استدعاء أشياء مثل wp site-info version --wponly
(جربه) الذي ينتج معلومات إصدار WP فقط. يتم تخزين الوسيطات الترابطية في وسيطة الوظيفة الثانية للطريقة. في حالتنا يطلق عليه $assoc_args
. الشيء الوحيد المتبقي هو اختبار مفتاح المصفوفة لقيمة محددة وتعديل الكود وفقًا لذلك ، كما فعلنا في function version( $args, $assoc_args )
.
التوثيق والمساعدة في CLI
يحتوي WP-CLI على نظام مساعدة مدمج. إنه سهل الاستخدام. ليست هناك حاجة أبدًا لأي توثيق خارجي لأمر ما إذا استثمر المطور القليل من الوقت لوصف الأمر في التعليمات البرمجية الخاصة به. لن تكتب الوثائق نفسها (لسوء الحظ) ولكن إذا استثمرت الحد الأدنى أثناء إنشاء أوامرك ، فسيكون المستخدمون ممتنين إلى الأبد لأنك ستضع جميع المستندات تحت سقف واحد.
تكتب المستندات في صفك على هيئة تعليقات ، باستخدام تنسيق PHPDoc. للبحث بشكل أعمق ، راجع دليل CLI. من خلال تشغيل wp help site-info
ستحصل على قائمة ووصف لأوامرنا الفرعية ، وإذا نظرت في الكود ، فسترى مصدره. شديد الوضوح. لمزيد من التفاصيل حول الإصدار الفرعي ، قم بتشغيل إصدار wp help site-info version
وستحصل على تفاصيل حول الخيارات أيضًا.
على الرغم من عدم استخدامه من قبل عدد كبير من الأشخاص ، إلا أنه غالبًا ما يستخدمwpcli من قبل أولئك الذين يشكلون مستقبل #WordPress وآراء العديد من المستخدمين. قد تكون إضافة CLI إلى المكون الإضافي خطوة ذكية
انقر على تويتراجعل المستخدمين سعداء
بالتأكيد ، إذا كنت تقوم بتطوير عنصر واجهة مستخدم خاص بالطقس ، فإن إضافة دعم WP-CLI لا تبدو الخطوة الصحيحة. ومع ذلك ، فإن أي أداة يستخدمها مطورو ومسؤولون متشددون مثل WP Reset ستستفيد بشكل كبير من WP-CLI. سيتمكن المستخدمون من تسلسل الأوامر وكتابة نصوص bash وإنجاز المزيد من المهام بشكل أسرع وأسهل. يؤدي ذلك إلى مراجعات أفضل ومستخدمين أكثر سعادة والمزيد من المستخدمين وفي النهاية المزيد من الأموال لك ، بغض النظر عن نموذج تحقيق الدخل الذي لديك.