Can we change the title of the topic without changing the slug?

Can we change the title of the topic without changing the slug, at least for admin?

The old slug URL would still redirect to the article, is that your concern with the slug changing?

No, I know that it will redirect, but I prefer not having redirection and just change the title, like in wordpress.

That probably needs to be logged in the feature category then as I’m pretty sure that it isn’t something Discourse currently allows.

إعجابَين (2)

No this can not be done, slug is coupled to title.

4 إعجابات

@sam does the old url then redirect to the new one? Concerned that if we allow high trust users to edit topics, we may end up sending visitors from old links to broken pages.

Is the slug appears in the database? If so, there should be no problem allowing the admin at least to change the title. If the slug isn’t in the database, it is a problem.

The old URL does redirect, it’s ID based and it checks if the slug is the same as the one in the databse or after normalization of the title. I blieve.

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

The slug is cached, but but the source of truth is always the topic title. Quite a few internals need to be changed to allow overriding, not on any roadmap.

5 إعجابات

هل هذا لا يزال هو الحال؟

حالة الاستخدام الخاصة بي هي: تنشئ المنشورات على مدونتي Ghost مواضيع على Discourse. لقد اتبعت اقتراحًا ذُكر سابقًا من مؤسس Ghost لتقصير طول الـ slug، وهو ما فعلته مع أحدث منشوراتي. ينشئ Discourse الـ slug من عنوان المنشور، وليس الـ slug الخاص بالمنشور. بينما يعمل كل ذلك بشكل جيد، لدي أيضًا نص برمجي discourse-get-comment-count قيد الاستخدام يعرض على الصفحة الرئيسية (وكذلك في أعلى كل منشور فردي) عدد التعليقات التي يحتوي عليها كل منشور. المشكلة هي أنه يستعلم من Discourse (إذا كنت أستخدم المصطلحات الصحيحة) عن الـ slug الخاص بالمنشور، وليس عنوانه، وبالتالي لا يكتشف عدد التعليقات الفعلي. (يمكنك رؤية المنشور في أعلى الموقع لديه عدد التعليقات عالقًا على المؤشر الدوار.)

هل هناك أي شيء يمكنني فعله حيال ذلك بخلاف عدم تخصيص الـ slug؟

هذا التنفيذ يجعلني :thinking:

لماذا لا يستخدم topic_id هنا: discourse-get-comment-count/update-comments.js at master · vikaspotluri123/discourse-get-comment-count · GitHub

إذا فعل ذلك، فلن يكون للـ slug أي أهمية على الإطلاق.

لن أدعي أنني أفهم هذا تمامًا، ولكن هذا ما قيل لي ردًا عند نقل اقتراحك:

كيف يمكننا الحصول على topic_id بناءً على معرف المنشور أو الاسم المستعار أو عنوان URL الخاص بـ Ghost؟

فهمي هو أنه يمكننا استخدام معرف المنشور لربط الموضوع عبر خاصية external_id، ولكن يبدو أن استخدام external_id يقتصر على واجهة برمجة التطبيقات (API)، ويتم إنشاء الموضوعات باستخدام ميزة التضمين (embed)، (والتي لا يبدو أنها تدعم external_id).

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

إذا كنت تعتمد على تضميننا، فإن Discourse يحتفظ بخريطة بين عنوان URL للتضمين والموضوع.

لذلك، يمكنك استخدام:

للحصول على قائمة بعدد التعليقات.

يمكن لـ “الحصول على عدد التعليقات” استدعاء هذا الـ endpoint باستخدام عنوان URL الوهمي. من الممكن إنشاء نقطة نهاية “دفعة” حتى تتمكن من تمرير عناوين URL متعددة إليها. pr-welcome بشأن ذلك.

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