كيفية إعادة ترتيب رسائل الموضوع حسب التاريخ؟

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

هل توجد طريقة لإعادة ترتيب الموضوعات بحيث تُرتب حسب التاريخ من الأقدم (المشاركة الأصلية) إلى الأحدث؟

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

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

حسناً، لقد كانت هذه الإجراءات سارية لمدة شهور عدة. لا أعتقد حقاً أن الحذف وإعادة الاستيراد هو الحل المناسب. أتساءل عما إذا كان بإمكاننا بناء إضافة تسمح بإعادة ترتيب معرفات المنشورات… hmm.

أوه، هذا أمر مؤسف. ربما يكون أي شيء ممكنًا، لكن هذا سيؤثر على أداء الموقع بأكمله إلى الأبد.

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

إذا تم إعادة ترتيب معرفات المنشورات، فلا أعتقد أن ذلك سيؤثر بشكل دائم. أعتقد أن خيارًا آخر قد يكون إضافة برمجية تقوم بفرز الموضوع حسب التاريخ عند استعلامه…

صحيح. إذا قمت بحذف وإعادة إنشاء جميع المنشورات بالترتيب الصحيح، فستكون كل شيء على ما يرام.