كيفية تصحيح خطأ في عدد التعليقات لمنشور في WP

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

هل هناك أي إجراء يمكنني اتخاذه لتشخيص المشكلة؟

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

عند الانتهاء من ذلك، ستظهر قائمة ببيانات المنشور (post metadata) في أسفل شاشة التعديل. تأكد من أن حقلي discourse_permalink و discourse_topic_id يتطابقان مع موضوع Discourse المرتبط. إذا لم تكن هذه الحقول موجودة، فقد يكون المنشور غير مرتبط بموضوع Discourse. يمكنك إعادة ربط المنشور غير المرتبط عن طريق تحديد خيار إدخال الراديو “ربط بموضوع موجود” من صندوق بيانات Discourse.

شكرًا لك،

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

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

لقد تفحصت حقل discourse_topic_id و discourse_permalink، وكلاهما صحيح. لكن الحقول الأخرى المتعلقة بـ Discourse لا تبدو لي واضحة.

يظهر discourse_comments_count القيمة ‘0’.

وهذا ما يظهر في discourse_comments_raw:

{"id":1399,"posts_count":2,"filtered_posts_count":0,"posts":[],"participants":[{"id":11,"username":"nathan","name":"Nathan ","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/nathan/{size}/182_2.png"},{"id":103,"username":"Zak","name":"Zak","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/zak/{size}/652_2.png"}]}

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

إذا كان موضوعك في Discourse عامًا، هل يمكنك إرسال رابط إليه عبر رسالة خاصة لي؟

هل قمت بتفعيل خيار “نشر WP Discourse كمواضيع غير مدرجة”؟ الفرق بين posts_count و filtered_posts_count في بيانات discourse_comments_raw يشير إلى وجود منشورين صغيرين من نوع “إجراء” في الموضوع. توجد مشكلة في وظيفة تحديث Webhook الخاصة بـ WP Discourse عندما يكون هناك اختلاف بين posts_count و filtered_posts_count. سأتعامل مع هذا الأمر، لكنني لا أعتقد أنه مرتبط بالمشكلة التي تواجهها بخصوص منشور لا يتلقى تعليقات.

أما بخصوص المشكلة المتعلقة بالمنشور الذي لا يتلقى تعليقات، هل تقصد أن الرابط الخاص بموضوع Discourse الخاص به غير معروض، أم أن المشكلة هي أن الرابط يعرض “ابدأ النقاش” بدلاً من “انضم إلى النقاش”؟

نعم، هذا هو.

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

أوه، ولإجابة سؤالك…

لا.

ما هي القيمة الصحيحة لحقل “wpdc_sync_post_comments”؟

ما زلت أواجه مشكلة في هذا الأمر.

لقد ذهبت للتو إلى موضوع يحتوي على منشور واحد. كان يجب أن تكون عدد التعليقات في واجهة WordPress الأمامية “1”، لكنه أظهر 0. كان حقل wpdc_sync_post_comments مضبوطًا على “0”. أفترض أنه علم توافقي (صح/خطأ)، وأنه يجب تعيينه إلى 1، لذا قمت بتغييره وحفظت المنشور. عند تحديث واجهة WordPress الأمامية، لم يظهر أي تغيير، لذا تركت منشورًا جديدًا في موضوع Discourse وقمت فورًا بتحديث صفحة WordPress. قفز عدد التعليقات بشكل صحيح إلى “2”. قمت بتحديث الصفحة مرة أخرى فورًا فانخفض العدد إلى “0” مرة أخرى! في شاشة التحرير، وجدت أن حقل wpdc_sync_post_comments قد عُدّل مرة أخرى إلى 0 و

discourse_comments_count == 0
discourse_comments_raw ===
{"id":1451,"posts_count":3,"filtered_posts_count":1,"posts":[],"participants":[ (تم الاختصار)

يحتوي منشور آخر على ما يلي:
discourse_comments_count == 3
discourse_comments_raw ===
{"id":1447,"posts_count":17,"filtered_posts_count":4,"posts":[],"participants": (تم الاختصار)

شكرًا لك على التفاصيل!

عند تعيين الحقل إلى 1، سيتم مزامنة التعليقات في المرة التالية التي يتم فيها تحميل الصفحة. وعند مزامنة التعليقات، ستُعاد قيمة wpdc_sync_post_comments إلى 0.

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