لا تنشئ مواضيع تلقائيًا لجميع منشورات المدونة

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

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

شكرًا مقدّمًا!

هل هو نفس الشيء الذي تريد فعله؟

إذا كان الأمر كذلك، راجع:

شكرًا لردك. نعم، كنت أرغب في تشغيل المنشور على discourse فقط تحت ظروف معينة.

ومع ذلك، فإن موقعنا الإلكتروني ليس مبنيًا باستخدام WordPress، بل هو مبني باستخدام Hugo.

هل هناك أي شيء يمكننا فعله لتحقيق ذلك؟

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

هل توصلت إلى الفكرة بوضوح؟

هل هناك إعداد للقيام بذلك؟

ليس تمامًا… كيف يُفترض بالمستخدمين الرد على موضوع إذا لم يُنشر في مكان ما مسبقًا؟ يجب أن يبدأ كل موضوع بردود صفرية. أظن أنني أغفلتُ شيئًا ما هنا :thinking:

أعتقد أن ما تريده هو أن يتم وضع علامة غير مدرجة على جميع المواضيع التي تُجلب إلى Discourse من موقعك الإلكتروني. وعندما يتلقى موضوع ما تعليقًا، سيتم تلقائيًا وضع علامة مدرجة عليه. المواضيع غير المدرجة لا تظهر في قائمة المواضيع، وبالتالي فإن هذا سيمنع قائمة المواضيع في موقعك من الامتلاء بمواضيع لا تحتوي على ردود.

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

@simon هذا بالضبط ما نريده! شكرًا لك على ردك. المشكلة هي أن موقعنا ليس مبنيًا باستخدام WordPress. لكن يمكننا الاطلاع على واجهة برمجة تطبيقات Discourse.

بخصوص طلبات الميزات، أين يمكنني رفع هذا الطلب لـ Discourse؟

@Canapin إذن نرغب في أن يتلقى منشور المدونة تعليقًا أولًا قبل إدراجه كموضوع في Discourse. هل المنشور موجود بالفعل على موقعنا من الأساس؟

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

وكيف يمكنني تعيين ‘غير مدرج’ عبر واجهة برمجة التطبيقات؟ لا أستطيع العثور على واجهات برمجة التطبيقات ذات الصلة في ملف comment embedding.js الخاص بي. شكرًا لك.

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

أما لأتمتة العملية عبر الـ API، فستحتاج إلى إعداد Webhook للاستماع إلى أحداث المنشورات. عند استلام Webhook يخبرك بأنه تم إنشاء المنشور الأول في فئة التضمين (embed category) الخاصة بك، تقوم بإرسال طلب API لإخفاء الموضوع. وعند استلام Webhook يخبرك بأنه تم إنشاء المنشور الثاني في موضوع ما، تقوم بإرسال طلب API لإظهار الموضوع.

وكما ذُكر أعلاه، قد تكون الطريقة الأفضل هي إخفاء الموضوع تلقائيًا في المرة الأولى التي ينقر فيها المستخدم على رابط الموضوع قادمًا من موقع مدونة. وبهذه الطريقة، لن يرى المستخدم الأول الذي يترك تعليقًا أن الموضوع مُعلَّم كـ “غير مدرج”. سيكون هذا الإعداد أكثر تعقيدًا بعض الشيء، لكنه ممكن التنفيذ عبر الـ API من خلال الاستماع إلى أحداث النقر على الروابط الخاصة بمواضيع Discourse.

تم طلب هذا لسنوات في موضوع Embed Discourse comments on another website via Javascript.

نعم، أعتقد أننا يجب أن نفعل ذلك @eviltrout. ربما الشكل الأسهل (غير مدرج افتراضيًا، وبمجرد وصول رد يُدرج)؟

حسنًا، شكرًا لك على مساعدتك.

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

من الناحية المثالية، سيتم تحديث هذا الموضوع عندما تصبح الميزة متاحة. في هذه الحالة، ستحصل على إشعار بذلك إذا قمت بتعيين مستوى الإشعارات لهذا الموضوع على “المراقبة”.

حسنًا، لقد جهزت طلب سحب (PR) لهذه الميزة:

جيد أن أعرف ذلك! شكرًا لك!

واو، هذا حقاً مثير للإعجاب! سريع جداً.

لقد رأيت هذه الميزة تعمل مباشرة للتو! تحية لـ @codinghorror و @eviltrout. شكراً لكم على استجابتكم السريعة لطلبات المستخدمين.