كان يعمل بشكل مثالي، الآن لا يمكن إنشاء موضوع جديد

أود حقًا تقديم المزيد من التفاصيل، لكن للأسف، لدي فقط أقل رسالة خطأ فائدة ممكنة للبدء منها:

حدث خطأ أثناء نشر هذه المشاركة على Discourse.

لا يوجد أي شيء في سجلات الأخطاء التي يمكنني رؤيتها سواء على الموقع أو على Discourse.

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

هل فاتني مفتاح تصحيح أخطاء في الإعدادات؟ أو هل هناك طريقة أخرى للحصول على رسالة خطأ مفيدة؟

مرحبًا @invisnet

هل قمت بفتح وحدة تحكم مطوري الويب (في المتصفح) والتحقق من وجود أخطاء في وحدة تحكم JavaScript هناك؟

الآن لا يوجد شيء ملحوظ، وبالتأكيد لا شيء يتعلق بـ Discourse.

بعد البحث العميق في أشياء لا ينبغي لي النظر إليها، حصلت على رسالة خطأ:

لا يمكن التحقق من أصالة رمز CSRF.

وهو مفيد بقدر ما كانت الرسالة الأصلية.

من هذا أستنتج:

  • إصدار 2.6.0.beta1 معطوب،
  • كان من خطأ الترقية لأنه لا يبدو أن هناك طريقة للعودة إلى إصدار 2.5.0،
  • اختبارات الوحدة لـ discourse و/أو wp-discourse تحتاج إلى بعض التحسين،
  • أنا في ورطة حتى يتم إصلاح هذه المشكلة في النهاية، حيث لا يبدو أن هناك طريقة لتعيين embed_url للموضوع يدويًا.

أعتقد أن هذا حل من نوع ما…

آسف على التأخير في الرد. أنا أتابع فئة #support:wordpress، لكنني متأكد تقريبًا من أنني لم أستلم إشعارًا بشأن هذا الموضوع.

أسهل طريقة للحصول على رسالة خطأ مفصلة هي تثبيت Query Monitor – WordPress plugin | WordPress.org English (Canada) ثم محاولة نشر منشور على Discourse. كان إضافة WP Discourse سابقًا يحفظ جميع الأخطاء في ملف سجل، لكنه توقف عن ذلك لأنه يتعارض مع توصيات WordPress.

هل تحصل على خطأ عند محاولة نشر أي منشور على Discourse، أم أن المشكلة تقتصر على منشور معين؟

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

يظهر الخطأ فقط في production.log داخل حاوية Docker - ولا يوجد أي شيء آخر في أي سجل أو وحدة تحكم (لقد قمت بتشغيل Query Monitor بالفعل).

أي منشور جديد.

فقط تحديث البرنامج الإضافي إلى الإصدار 2.0.6. ومع ذلك، فالمشكلة ليست في البرنامج الإضافي - لقد عدت خطوة بخطوة عبر وسوم Git دون جدوى.

أنا مندهش من أن إضافة Query Monitor لا تظهر خطأ. أتوقع رؤية شيء مشابه لهذا، ولكن برسالة خطأ مختلفة:

قد يكون من المفيد إنشاء مفتاح API جديد من صفحة الإدارة / API في Discourse. تأكد من أن المفتاح هو مفتاح عالمي (يسمح بجميع الإجراءات). كما تأكد من تعيين اسم المستخدم الناشر بشكل صحيح في تبويب إعدادات WP Discourse Connection. وبما أنك قادر على ربط مواضيع Discourse الموجودة، لكن لا يمكنك نشر مواضيع جديدة على Discourse، فمن الممكن أن تكون المشكلة مرتبطة بأذونات API.

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

إذا أبلغتني بالحقول التي يتم تعيينها، فقد أتمكن من تحديد سبب المشكلة.

أنا أيضًا مندهش، لكنها حقًا لا تُظهر أي شيء على الإطلاق. لو كانت ستُظهر شيئًا لكان خطأ 400 (لأن هذا ما ورد في production.log)، لكنها لا تُظهر ذلك.

تحديث: بعد التعمق في الكود، أستطيع أن أرى أنه لن يكون هناك خطأ؛ فكل شيء يتم التقاطه. إذا قمت بتفعيل تقارير البريد الإلكتروني (بريد إلكتروني ولكن بدون error_log()؟)، فستخبرك بما يلي:

سبب الفشل:
تم استرداد رمز استجابة 400 من Discourse.
طلب غير صالح

ولكن هذا كل شيء.

لقد قمت بذلك بالفعل، ولا يوجد فرق. كان هذا الملاذ الأخير؛ فقد تم تحديث طابع “آخر استخدام” في المفتاح السابق عندما حاولت النشر، لذا كنت أعرف أن هذا لم يتغير بطريقة ما، لكنني اعتقدت أنه يستحق المحاولة.

publish_post_category: 23
update_discourse_topic: 0
wpdc_publishing_error: طلب غير صالح
wpdc_unlisted_topic: 1

هذا كل شيء. وأوه، وقبل أن تسأل، يحدث نفس الشيء حتى لو لم أقوم بتعيين “النشر كغير مدرج”، ولكن مع الفرق المتوقع في بيانات التعريف الخاصة بالمنشور.

شكرًا لك على التفاصيل. سأراجع هذا مرة أخرى عندما أعود للعمل يوم الاثنين.

لست متأكدًا مما قد يسبب استجابة 400. هل يمكنك تجربة تثبيت Health Check & Troubleshooting – WordPress plugin | WordPress.org English (Canada) والتحقق مما إذا كان يبلغ عن أي مشكلات في موقع WordPress الخاص بك. عند تفعيل هذه الإضافة، سيتم إضافة إدخال “صحة الموقع” إلى قسم الأدوات في لوحة تحكم WordPress. قد يؤدي النقر على هذا الرابط ثم الانتقال إلى علامة التبويب الحالة إلى إظهار بعض التفاصيل المفيدة.

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

للأسف، لقد وصلت إلى طريق مسدود. لم يقترح ملحق فحص الصحة أي شيء مفيد (وهو أمر متوقع)، وكل شيء آخر يعمل بشكل مثالي.

لقد واجهت خطأ CSRF عندما كنت آتمت إرسال الدعوات، وهذا يعني أنك ارتكبت خطأً في الكود الخاص بك؛ ومع ذلك، في هذه الحالة لم يتغير الملحق، لذا فإن استنتاجي هو أن الإصدار 2.6.0.beta1 معطوب.

أعلم أن هذا الاستنتاج غير شعبي، لكنه الاستنتاج الوحيد المتاح لدي حاليًا.

تم التعديل للإضافة: استخدمت ملحق فحص الصحة لتعطيل جميع الإضافات الأخرى - لم يكن هناك أي فرق.

المشكلة مستمرة مع الإصدار 2.6.0.beta2 و 2.1.2.