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 и сократил длину слага, что я и сделал в своём последнем посте. Discourse создаёт слаг из заголовка поста, а не из слага поста. Хотя всё это работает нормально, у меня также используется скрипт discourse-get-comment-count, который отображает на главной странице (а также в верхней части каждого отдельного поста) количество комментариев к каждому посту. Проблема в том, что он запрашивает у Discourse (если я правильно понимаю терминологию) слаг поста, а не его заголовок, поэтому не может найти фактическое количество комментариев. (Как видно, пост в верхней части сайта имеет застрявшее на индикаторе загрузки количество комментариев.)

Есть ли что-то, что я могу сделать с этим, кроме отказа от кастомизации слага?

Такая реализация заставляет меня задуматься:thinking:

Почему здесь не используется topic_id: discourse-get-comment-count/update-comments.js at master · vikaspotluri123/discourse-get-comment-count · GitHub

Если бы использовали, то слаг вообще не имел бы значения.

Я не буду притворяться, что полностью понимаю это, но вот что мне ответили, когда я передал ваше предложение:

Как нам получить topic_id на основе ID поста в Ghost, слайга или URL?

Насколько я понимаю, мы могли бы использовать ID поста для связывания темы через свойство external_id, но, похоже, использование external_id ограничено API, а темы создаются с помощью функции встраивания (которая, кажется, не поддерживает external_id).

Кстати, вопреки тому, что я указал в своём предыдущем комментарии, я несколько часов назад вернул слайг к значению по умолчанию в упомянутом посте Ghost, поэтому счётчик комментариев больше не застревает на индикаторе загрузки, как было заявлено.

Если вы используете наш механизм встраивания, то Discourse поддерживает сопоставление между URL встраивания и темой.

Таким образом, вы можете использовать:

Чтобы получить список с количеством комментариев.

Получение количества комментариев может просто вызывать этот конечный пункт с URL Ghost. Мы открыты к идее создания конечного пункта «пакетной обработки», чтобы можно было передавать ему несколько URL. pr-welcome по этому поводу.

1 лайк