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 curtidas

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

4 curtidas

@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 curtida

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 curtidas

Isso ainda é o caso?

Meu caso de uso é: Posts no meu blog Ghost criam tópicos no Discourse. Segui uma sugestão mencionada anteriormente do fundador do Ghost para truncar o comprimento do slug, o que fiz com meu post mais recente. O Discourse cria o slug a partir do título do post, não do slug do post. Embora tudo isso funcione bem, também tenho um script discourse-get-comment-count em uso que exibe na página inicial (bem como no topo de cada post individual) quantos comentários cada post tem. O problema é que ele está consultando o Discourse (se eu estiver usando a terminologia correta) pelo slug do post, não pelo seu título, e por isso não descobre a contagem real de comentários. (Você pode ver o post no topo do site com a contagem de comentários presa no spinner.)

Há algo que eu possa fazer a respeito, além de não personalizar o slug?

Esta implementação está me fazendo :thinking:

Por que não está usando topic_id aqui: discourse-get-comment-count/update-comments.js at master · vikaspotluri123/discourse-get-comment-count · GitHub

Se fizesse isso, o slug não importaria em nada.

Não vou fingir que entendo completamente, mas é o que me disseram em resposta ao repassar sua sugestão:

Como obteríamos o topic_id com base no id, slug ou url de um post do Ghost?

Meu entendimento é que poderíamos usar o id do post para vincular o tópico através da propriedade external_id, mas parece que o uso do external_id é limitado à API, e os tópicos são criados usando o recurso de incorporação (que não parece suportar external_id).

Como observação, ao contrário do que afirmei em meu comentário anterior, alterei o slug de volta para o padrão no post do Ghost mencionado há algumas horas, o que significa que a contagem de comentários não está travada no spinner, como afirmado.

Se você estiver contando com nosso embedding, o Discourse mantém um mapeamento entre a URL de incorporação e o tópico.

Portanto, você pode usar:

Para obter a lista da contagem de comentários.

A contagem de comentários pode simplesmente chamar esse endpoint com a URL fantasma. Aberto a possivelmente criar um endpoint “em lote” para que você possa passar várias URLs. pr-welcome sobre isso.

1 curtida