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.
No this can not be done, slug is coupled to title.
@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.
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.
これはまだ当てはまりますか?
私のユースケースは次のとおりです。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
もしそうすれば、スラッグは全く重要ではなくなります。
これを完全に理解しているとは言えませんが、あなたの提案を伝えた際に返ってきたのは以下の内容です。
Ghostの投稿ID、スラッグ、またはURLに基づいてtopic_idを取得するにはどうすればよいですか?
投稿IDを使用して
external_idプロパティ経由でトピックをリンクできると理解していますが、external_idの使用はAPIに限定されているようで、トピックは埋め込み機能を使用して作成されています(これはexternal_idをサポートしていないようです)。
ちなみに、前回のコメントで述べたこととは逆に、数時間前に上記のGhost投稿のスラッグをデフォルトに戻しました。つまり、コメントカウントはスピナーで停止したままではありません。
埋め込みに依存している場合、Discourse は埋め込み URL とトピック間のマップを維持します。
したがって、次を使用できます。
コメント数を取得します。
コメント数は、ゴースト URL でそのエンドポイントを呼び出すだけで取得できます。複数の URL を渡せるように、「バッチ」エンドポイントを作成することも検討します。それについては pr-welcome です。