أنا أعمل على هذا الآن. الإصدار الأول مخصص لموقع ووردبريس بدون رأس (headless WordPress) يستخدم إطار عمل Remix للواجهة الأمامية. بمجرد الانتهاء من ذلك، سأقوم بإنشاء إصدار لمواقع ووردبريس العادية. من المحتمل أن يكون إضافة (plugin) توسع إضافة WP Discourse. آمل أن يتم نقل معظم ما أقوم به على موقع ووردبريس بدون رأس إلى مواقع ووردبريس العادية، ولكن قد يتطلب ذلك بعض التنازلات.
السماح للمستخدمين بالتعليق مباشرة من موقع خارجي أمر سهل التنفيذ. الشرط الرئيسي هو أن يكون للموقع الخارجي إمكانية الوصول إلى بيانات اعتماد المستخدم في Discourse. يمكن تحقيق ذلك إما باستخدام الموقع الخارجي كموفر DiscourseConnect لـ Discourse أو عن طريق تكوين Discourse كموفر DiscourseConnect للموقع الخارجي.
في السيناريو الثاني - حيث لا يكون الموقع الخارجي هو موفر DiscourseConnect لـ Discourse - في المرة الأولى التي يرغب فيها المستخدم في التعليق من الموقع الخارجي، سيحتاج إلى النقر فوق رابط لربط حسابه على الموقع الخارجي بحسابه في Discourse (أو للتسجيل في Discourse إذا لم يكن قد فعل ذلك بعد). يمكن أن يكون هذا سلسًا جدًا من وجهة نظر المستخدم.
ومع ذلك، فإن التغيير المذكور أعلاه لا يجعل كل شيء يبدو وكأنه نظام تعليقات عادي. التوقع الطبيعي لنظام التعليقات هو أنه يمكنك قراءة جميع التعليقات والتفاعل معها. تعرض إضافة WP Discourse فقط مجموعة مختارة من التعليقات التي يتم سحبها من مسار خاص توفره Discourse. لا توفر أي وظائف للتفاعل مع التعليقات.
الأجزاء الصعبة من المشكلة هي:
- ترقيم الصفحات عبر جميع تعليقات الموضوع على ووردبريس، مع الأخذ في الاعتبار أنه قد يكون هناك الآلاف منها.
- توفير واجهة مستخدم تمنح المستخدم ملاحظات حول مكانه في قائمة طويلة من التعليقات.
- معرفة كيفية عرض التعليقات التي هي ردود مباشرة على تعليقات أخرى. (اتفاقية Discourse لهذا تختلف عن كيفية تعامل معظم أنظمة التعليقات مع الردود.)
- السماح للمستخدمين بالرد مباشرة على تعليق، أو الإعجاب بتعليق، أو تعديل تعليقاتهم الخاصة، وما إلى ذلك.
- التعامل مع التعليقات التي تم إنشاؤها على Discourse والتي قد تحتوي على محتوى أو ترميز لا يمكن عرضه أو التفاعل معه بسهولة على الموقع الخارجي. على سبيل المثال، oneboxes، استطلاعات الرأي…
- توفير طريقة لتصفية التعليقات حسب الأحدث، الأقدم، الأفضل، إلخ…
يجب تحقيق كل هذا دون وضع عبء مفرط على خادم الموقع الخارجي، أو إجراء الكثير من طلبات API إلى Discourse، أو استهلاك الكثير من الذاكرة على جهاز المستخدم (الهدف هو إنشاء نظام تعليقات خفيف الوزن). هذا قابل للتحقيق، ولكنه ليس شيئًا يمكن إدراجه ببساطة في كود WP Discourse الحالي دون إجراء تغييرات كبيرة عليه.