it-swarm.asia

أفضل ممارسة لإدراج الإضافات كجزء من سمة؟

أنا أعمل على موضوع يتضمن بعض الوظائف التي طورتها كمكونات إضافية منفصلة (كما آمل في إصدارها بشكل مستقل).

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

ما هي أفضل الممارسات لإدراج المكونات الإضافية كجزء من سمة؟

5
Tom

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

ثم ، في المظهر الخاص بك ، استخدم is_plugin_active() لتصفية الأوامر الخاصة بك. إذا كان لديك ميزة سمة تتطلب مكونًا إضافيًا ، فاستخدم is_plugin_active() للتبديل ديناميكيًا بين استخدام هذه الميزة أو إزعاج المستخدم لتثبيت المكون الإضافي.

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

بدلاً من ذلك ، إذا كنت تعرف أن أحد المكونات الإضافية لن يتغير لفترة طويلة جدًا (يمكنني استخدام بعض الإضافات التي فقط إضافة/إزالة محددة WP الفلاتر) يمكنك إسقاط الملف PHP في دليل /library مع نسختك و include() الملف في functions.php. ثم يتم تمكين الوظيفة بشكل افتراضي - المقايضة هي أنك تحتفظ الآن بنسختين من المكون الإضافي (كما ذكرت في سؤالك الأصلي).

5
EAMann

في الأساس لديك ثلاث حالات محتملة:

  • موضوع والبرنامج المساعد على حد سواء المثبتة ؛
  • تم تثبيت السمة الوحيدة ؛
  • تم تثبيت البرنامج المساعد فقط.

ضع في اعتبارك الأكثر احتمالا أن يتم تحديثه:

  • المكوّن الإضافي المستضاف للمستودع - من المحتمل ؛
  • السمة المستضافة للمستودع - من المحتمل ؛
  • ليس السمة المستضافة أو المستودع الإضافي - مستبعدًا ؛
  • السمة الفرعية - من المستبعد جدًا (لا يمكن استضافتها في المستودع ، ودمج التغييرات يدويًا لأنه من المفترض أن يتم تخصيصها بواسطة المستخدم النهائي).

لذا ، من الجيد عمومًا الحفاظ على نفس الكود (مشابه ، إن لم يكن متطابقًا) وتحميله في شكل مشروط عندما لا يكون البرنامج المساعد موجودًا. لأنه كما هو الحال الآن الإضافات هي أسهل وأكثر شيوعا للتحديث.

من الواضح أن السمة يجب أن تكون قادرة على الاستفادة من المكوِّن الإضافي المجمَّع أو المنفصل ، ويجب ألا يعتمد المكون الإضافي على الكود من السمة على الإطلاق.

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

2
Rarst