أفضل طريقة للاستفادة من Discourse لمجلة WordPress أكبر؟

أهلاً. أهلاً،
أدير مجلة كبيرة تركز على التكنولوجيا عبر الإنترنت، SvětAndroida.cz - nejlepší recenze, novinky, testy a návody وقد حاولنا في الماضي تقديم العديد من خيارات المجتمع (الإشعارات، تقييمات المستخدمين، الكارما، إلخ) لمستخدمينا. لكن ووردبريس لا يدعم هذه الميزات بشكل أصلي، والحلول الخارجية تواجه دائمًا مشاكل بعد فترة.

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

يبدو هذا الإعداد مثاليًا تمامًا بالنسبة لي. لكننا ندير المجلة منذ حوالي 13 عامًا، وخلال هذا الوقت كان لدينا مئات الآلاف من التعليقات وعشرات الآلاف من المستخدمين المسجلين. أود أن أسمع أفكارك حول كيفية جعل تكامل Discourse الأكثر أناقة، ومن وجهة نظر المستخدمين، الأكثر فعالية؟

حقائق:

  • المجلة على ووردبريس تعمل على https://www.svetandroida.cz/
  • ندير مجتمع Discourse هنا https://komunita.svetandroida.cz/
  • نريد استخدام Discourse لإدارة حسابات المستخدمين، نجده أفضل
  • ننشر حوالي 5 إلى 15 مقالًا كل يوم
  • لدينا عشرات الآلاف من المقالات (وقد حذفنا الكثير منها بالفعل :slight_smile:
  • التعليق بنشاط، هناك عشرات إلى مئات قليلة من المستخدمين
  • لدينا إضافة ووردبريس لـ Discourse معدة وكل شيء يبدو أنه يعمل بشكل جيد، الشيء الوحيد الذي لم نقم بإعداده بعد هو SSO
    • المقالات التي ننشرها في مجلة ووردبريس تُنشر تلقائيًا في Discourse على أنها مخفية

ما الذي أحتاج إلى معالجته وكيف أعالجه؟ هل يمكنك التفكير في حل أفضل؟

تسجيل دخول المستخدم
باستخدام إضافات ووردبريس، سأقوم بإعداد عميل DiscourseConnect Client وآمل ألا يتعطل أو يمنع الوصول لمحرري :). آمل ألا يحدث ذلك. أمزح، لكن هذا هو المكان الوحيد الذي حتى بعد قراءة المناقشات بعناية، ما زلت لست متأكدًا بنسبة 100٪ منه.

آمل أنه إذا أراد المستخدم تسجيل الدخول إلى موقع مجلة ووردبريس (لديهم بالفعل حساب ووردبريس)، فسيتم إنشاء حساب لهم تلقائيًا في Discourse أيضًا.

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

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

لذلك، ستبقى التعليقات المنشورة بالفعل في ووردبريس وسيتم نشر أي تعليقات جديدة في Discourse.

لن ننقل التعليقات المنشورة إلى Discourse مرة أخرى تحت مقالات ووردبريس، ولكن سنضع فقط رابطًا أسفل كل مقال ووردبريس يربط بـ Discourse (لتلك المقالة المحددة في Discourse).

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

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

بهذه الطريقة لن تكون هناك آلاف المواضيع غير المرئية في المنتدى.

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

شكرًا لقراءتك حتى الآن (أرسل صورة تم إنشاؤها بواسطة الذكاء الاصطناعي كمكافأة) وأتطلع إلى أفكارك ورؤيتك.

إعجابَين (2)

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

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

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

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

أخبرني إذا كان التمييز بين استخدام ووردبريس كعميل DiscourseConnect وموفر DiscourseConnect غير واضح لك.

من الممكن تقنيًا، لكنني لا أعتقد أن هناك طريقة تم اختبارها جيدًا للقيام بذلك. قد يكون لدى بعض الأعضاء الآخرين في هذا المجتمع أفكار حول كيفية التعامل معها.

قد يكون ذلك ممكنًا. أشعر أن هذا قد يؤدي إلى مشاكل.

على موقع Discourse الخاص بك، يمكنك تصفية المواضيع غير المدرجة عن طريق إضافة سلسلة الاستعلام التالية إلى عنوان URL: ?status=listed. على سبيل المثال \u003chttps://meta.discourse.org/latest?status=listed\u003e. يوجد مكون سمة موجود يمكن استخدامه للتبديل بين عرض المواضيع “المفتوحة” و “المغلقة”: Topic Status Filter. إذا لم يكن موجودًا بالفعل، فسيكون من السهل جدًا على شخص ما إضافة حالات “مدرج” و “غير مدرج” إلى هذا المرشح. لكن أعتقد أنه في هذه الحالة سترغب فقط في أن يرى المستخدمون الموظفون المرشح.

يمكن تحقيق ذلك من ووردبريس عن طريق طلب API يتم التعامل معه بواسطة مهمة مجدولة (cron job).

6 إعجابات

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

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

لكن تلك المناقشات المستندة إلى المقالات المنشورة لا تزال في ذهني :). الفلتر هو بالفعل حل لمشكلة عدم رؤية المسؤول للمواضيع “المخفية”، ولكن بطريقة ما لا أستطيع التخلي عن فكرة أنه قد تكون هناك طريقة أخرى.
لقد ذكرت أنه قد يؤدي إلى مشاكل، هل من الممكن سرد بعض حالات المشاكل التي تقلقك من فضلك؟
مع واجهة برمجة التطبيقات (API) ربما يكون هذا حلاً، ولكن بما أننا لسنا مبرمجين، لا يمكنني تخيل كيف سيعمل ذلك بشكل جيد بما فيه الكفاية.

الطريقة التي أتخيل بها عملها هي أنه عندما ينقر المستخدم على رابط لموضوع Discourse (الذي لم يتم نشره بعد)، سيتم تشغيل دالة في الواجهة الخلفية لـ WordPress لنشر المنشور على Discourse. تشغيل المنشور ليتم نشره على Discourse عندما ينقر المستخدم على رابط أمر قابل للتنفيذ.

المشاكل التي أتخيلها:

  • إلى ماذا يشير الرابط إذا لم يتم نشر المنشور بعد؟ نحن لا نعرف عنوان URL للموضوع على Discourse إلا بعد نشر الموضوع. سيلزم تطوير شيء ما بحيث عندما ينقر المستخدم على الرابط، يتم نشر الموضوع في الخلفية، ثم بناءً على الاستجابة التي تم تلقيها من Discourse، يتم إعادة توجيه المستخدم إلى موضوع Discourse.

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

تعديل: إحدى الطرق للتعامل مع المشكلة الأولى هي إخبار المستخدم بما يحدث وعرض رسالة “يرجى الانتظار أثناء نشر الموضوع”. بمجرد نشر الموضوع، يمكن إنشاء رابط للموضوع ويمكن مطالبة المستخدم بالنقر عليه. قد تستغرق العملية بضع ثوانٍ.

إعجابَين (2)

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

هل هذا صحيح، أم أنني أتخيله ببساطة شديدة؟ :slight_smile:

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

إعجابَين (2)