كيف يحل Discourse محل تعليقات WP بالضبط؟

نحن نستخدم Discourse بدلاً من تعليقات ووردبريس (تم تحديد خيار “إزالة قالب تعليقات ووردبريس”، وكذلك Ajax). لدي تحكم Toolset Access على نوع مخصص من المنشورات يقوم بالنشر على Discourse (في فئة خاصة تتوافق مع التحكم في الوصول). عادةً ما يؤثر هذا النوع من التحكم أيضًا على ظهور تعليقات المنشور، لكنه لا يؤثر على عرض تعليقات Discourse. هل لديك أي أفكار؟

إعجاب واحد (1)

ربما يمكنني إضافة بعض السياق الإضافي هنا:

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

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

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

يقوم مكون WP Discourse بإظهار التعليقات من خلال تحميل قالب تعليقات مخصص. يستخدم فلتر comments_template في WordPress لتحميل هذا القالب المخصص. لست متأكدًا من سبب استمرار تحميل التعليقات رغم إعداد Toolset Access Control لنوع المنشور. سأبحث في ما يحدث في هذا الشأن.

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

إعجابَين (2)

مرحبًا سيمون، أنا أعمل مع @Kayla على هذا. ما تصفه هنا سيحل مشكلتنا.

سيكون من الجيد أيضًا معرفة كيفية تضمين قالب تعليقات Discourse ضمن نظام التحكم في الوصول الأكثر تفصيلاً لدينا. شكرًا!

إعجاب واحد (1)

عظيم! لا أظن أن هناك مشكلة في دمج ذلك في تحديث الإضافة القادم. سأحاول إتمام ذلك بحلول نهاية الأسبوع. سأبقيكم على اطلاع بتقدم العمل.

أعتقد أن المشكلة التي تواجهها مرتبطة بالأولوية التي يستخدمها WP Discourse عند الارتباط بمرشح comments_template في WordPress. تستخدم إضافة WP Discourse أولوية 20 لاستدعاء الدالة التي ترتبط بهذا المرشح. من المرجح أن إضافة Toolset ترتبط بهذا المرشح بأولوية أقل لمنع تحميل قالب التعليقات للصفحات المحمية.

3 إعجابات

تواصلت مع فريق Toolset بشأن هذا الأمر، وقد كنت مخطئًا بشأن السلوك المتوقع. فإضافة Toolset Access لا تتصل بقالب التعليقات على الإطلاق. يتطلب إخفاء التعليقات على المحتوى المقيد كتابة كود مخصص للارتباط بفلتر toolset_access_api_get_post_permissions لديهم، وذلك لكبح أو السماح بعرض قالب التعليقات على مستوى السمة. أعتذر عن عدم إدراكي أن تقييد المحتوى لديهم يتعلق حرفيًا بقالب المحتوى نفسه. :woman_facepalming:

إعجابَين (2)

تمت إضافة هذا الخيار إلى الإضافة في الإصدار 2.0.7. وهو متاح الآن في مستودع WordPress.

عند تحديد خيار “تفعيل تعليقات Discourse” في الإضافة، ستظهر لك الآن ثلاثة خيارات لأنواع التعليقات:

اختر خيار “عرض التعليقات للمواضيع العامة” لعرض التعليقات فقط للمواضيع الموجودة في فئات عامة على Discourse. إذا كان الموضوع منشورًا في فئة خاصة، فسيتم عرض رابط إلى الموضوع مع عدد تعليقاته.

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

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

ملاحظة: التعرف على التغييرات في الفئات التي تتم مباشرة على Discourse متاح فقط إذا كان موقعك يعمل بإصدار حديث من Discourse.

للتحكم برمجياً في المستخدمين الذين تظهر لهم تعليقات Discourse، يمكنك تجاوز تحميل تعليقات WP Discourse لمستخدم معين باستخدام مرشح wpdc_load_comments_template_for_user. يتم تمرير هذا المرشح مع ثلاث معاملات: $load_template (القيمة الافتراضية true)، و $current_user، و $post_id. أعد false من دالة مرتبطة بالمرشح لمنع تحميل التعليقات لمستخدم معين.

3 إعجابات

التغييرات التي ألاحظها مع هذا التحديث هي أنه بينما يتم تحميل discourse_replies_html ويظهر كما هو متوقع، يبدو أنه يفشل في تحميل discourse_no_replies_html (أرى رابط نصي بعنوان “Join Discussion Link: no Comments”، ولكن ليس قالبنا). أيضًا، إذا لم يتم نشر المنشور على Discourse، تظهر رسالة جديدة: “Comments are not currently available for this post.” جميع هذه المنشورات عامة وتوجه إلى فئات عامة على Discourse.

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

تم تعيين خيار “Display comments for public topics”، بالإضافة إلى “Display Subcategories.” قمت بتحديث “Clear Cached Comment HTML + Force Category Update.” هل أغفلت شيئًا؟

إعجابَين (2)

شكرًا لك على الإبلاغ عن ذلك! يجب أن تكون المشكلة قد تم حلها في إصدار WP Discourse 2.0.8.

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

3 إعجابات

إليك ما أراه عند تحديد خيار “عرض تعليقات المواضيع العامة” وخيار “إظهار تعليقات WordPress الموجودة”، ثم نشر مشاركة تحتوي على تعليقات WordPress موجودة:

من وجهة نظر المستخدم، لا يبدو هذا واضحًا جدًا (يمكن إصلاح ذلك عن طريق بعض التخصيصات في WordPress)، لكن رابط تعليقات Discourse موجود.

إذا كنت قد فعّلت إعداد الموقع “تخزين HTML تعليقات التخزين المؤقت”، فحاول تعطيله. لا ينبغي أن يتسبب هذا الإعداد في مشكلة، لكن إلغاء تحديده سيُبسّط عملية تصحيح هذا الأمر.

أرسل لي أي تفاصيل إضافية لديك حول هذه المشكلة. سأقوم بدفع تحديث صغير إلى مستودع WordPress لاحقًا اليوم لإصلاح مشكلة زر “إلغاء ربط الموضوع” التي تحدث مع إصدار WordPress 5.5.

نحن على الإصدار 2.1.1 مع ووردبريس 5.5. لم نفعّل تخزين التعليقات مؤقتًا، ولا نستخدم تعليقات ووردبريس (ولكننا لم نعد نرى نموذج الافتراضي يتحمّل، وهذا أمر جيد).

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

لا توجد تعليقات، ولا يتم تحميل discourse_no_replies_html:

لا توجد تعليقات، ويتم تحميل discourse_no_replies_html:

توجد تعليقات، ولا يتم تحميل discourse_replies_html:

توجد تعليقات، ويتم تحميل discourse_replies_html:

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

إعجاب واحد (1)

هل يمكنك محاولة تحديث الإضافة إلى الإصدار 2.1.2 وإخباري ما إذا كان ذلك يحل المشكلة؟

إعجابَين (2)

يمكنني تأكيد أن التحديث إلى الإصدار 2.1.2 قد حل مشكلة تحميل القالب بالنسبة لنا. شكرًا لك!

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.