it-swarm.asia

تثبيت في الإضافات

أنا أعمل على مكون إضافي يمكنه من الناحية المثالية القيام بالأشياء عندما يقوم المستخدم بشيء ما من خلال مختلف مكون إضافي.

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

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

هل نحتاج فقط إلى المحاولة ونكون مطورين إضافيين أفضل حتى نتمكن جميعًا من لعب Nice معًا؟

12
Ryan Elkins

@ ريان الكينز:

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

ابحث عن خطاطيف بديلة داخل WordPress Core

إذا كان الأمر سريعًا وقذرًا في بعض الأحيان ، فيمكنك استخدام خطافات أخرى في اتجاه المصب من الأساسية لتعديل ما تحتاج إليه ، أو كل من خطاطيف المنبع والمصب عن طريق استخدام ob_start()/ob_end_clean() (انظر Todd Perkins answer / "-/to"التعامل مع إخراج HTML كبير عبر رمز البرنامج المساعد"للحصول على مثال التعليمات البرمجية.)

لتعقب الخطافات ، يمكنك استخدام التحقق من أداة ربط Hooks التي قمت بنشرها أمس لمساعدتك في العثور على الخطافات التي يُحتمل استخدامها.

أرسل تصحيحًا مع الخطاف المرغوب فيه إلى مطور البرنامج المساعد

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

إذا لم تكن معتادًا على إنشاء تصحيح هنا ، فهناك مقال جيد حول patching WordPress core والذي ينطبق عليه معظمهم على الإضافات التي تعمل بالرقع ولمن لا يتم ذلك ، نأمل أن يكون واضحًا ما يجب القيام به:

أتمنى أن يساعدك هذا؟

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

ربما تكون الأمور مختلفة إذا كان لدى WordPress القدرة على تثبيت المكونات الإضافية التي تعتمد عليها المكونات الإضافية الأخرى؟ نظرًا لأنني عادةً ما يجب علي كتابة الكثير من الوظائف التي أحتاجها من البداية لأن العملاء يريدون الأشياء بطريقة معينة والمكونات الإضافية المتاحة ، بينما لا تسمح لي نسبة 90٪ بالمرونة لتحديث نسبة الـ 10٪ المتبقية.

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

6
MikeSchinkel

هل نحن بحاجة فقط لمحاولة و  إلى أن يكون مطورو البرامج المساعدة أفضل حتى نتمكن جميعًا من لعب Nice معًا؟

بالنسبة للمبتدئين ، نعم.

هل الحل الحقيقي الوحيد هو مطالبة المؤلف بتضمين ربطات مخصصة حتى يمكن للمطورين الآخرين الاستغناء عن عملهم؟

سيكون هذا حلا جيدا.

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

2
Arlen Beiler

أعتقد أنك تجيب على سؤالك في السؤال ، بحيث يصبح بلاغيًا إلى حد ما.

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

نفس "سبب تطوير التكرارات" يقع في صلب سؤالك هنا. يتيح نظام Android Intent للتطبيقات الاستفادة من الوظائف التي تم إنشاؤها بالفعل ، وتمرير البيانات بينها ، وهذا أمر شائع وغالبًا ما يتم استخدامه ، لأنه يتم دفعه بشدة. يوجد نظام مشابه تم تنفيذه بالفعل في WordPress ، ولكن نادرًا ما يستخدم خارج الخطافات الموجودة في الكود الأساسي ، والذي يستخدم كثيرًا.

قد يفيد المجتمع في حالة وجود مزيد من الخطافات في الإضافات المخصصة ، ولكن كما تقول ، لا توجد طريقة سهلة لإضافة الخطافات في الوقت الذي تحتاج إليه.

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

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

للإجابة على السؤال النهائي الخاص بك:

هل نحتاج فقط إلى المحاولة ونكون مطورين إضافيين أفضل حتى نتمكن جميعًا من لعب Nice معًا؟

نعم فعلا.


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

2
nobody

تحديد وظيفة:

function my_footer() {
    do_action('my_footer');
}

الآن يمكنك ربط هذا الخطاف: add_action('my_footer', 'example_function', 1); # مزيد من المعلومات راجع مشاركتي .

0
bueltge