Thema-URL, die seine Kategorie enthält

I am investigating the possibility of including the category in the topic URL for retargeting purposes.

For example: https://meta.discourse.org/t/support/where-can-i-create-tags/31094 or https://meta.discourse.org/support/t/where-can-i-create-tags/31094

From previous responses on this subject, it seems as though this will wreck havoc on the routing system, correct?

What about the possibility of including the category in query string? https://meta.discourse.org/t/where-can-i-create-tags/31094/?category=support

Thoughts, suggestions, answers?

1 „Gefällt mir“

I think if you put it before the topic ID at the end there’s no problem… but you can’t add more slashes or other delimiters.

Maybe you can use underscore to delimit if you need it, e.g. these two links go to the same place without any problem:

https://meta.discourse.org/t/topic-url-to-include-its-category/39996

https://meta.discourse.org/t/_support_topic-url-to-include-its-category/39996

your URL with question mark at the end might work - seems to work here. Not sure what the effect of that is.

https://meta.discourse.org/t/where-can-i-create-tags/31094/?category=support
3 „Gefällt mir“

Ist dies über eine Seiteneinstellung oder ein Plugin möglich?

Hallo,

ich bin ein ziemlicher N00b, was Discourse angeht, aber auch Foren im Allgemeinen, und ich möchte fragen und verstehen, ob und wie es möglich ist, dass eine URL eines Threads seine Kategorie enthält.

Meine Bedeutung ist, dass ich im Moment eine URL einer Kategorie wie diese habe:
https://randomname.discourse.group/c/category-name/6

Aber wenn ich auf einen Thread innerhalb dieser Kategorie klicke, habe ich eine URL, die keinen Bezug zur Kategorie enthält:
https://randomname.discourse.group/t/what-a-great-thread/18

Entschuldigung, aber ich habe versucht zu suchen und die Antwort zu verstehen, aber ich hatte nicht viel Glück.

Hilfe wäre sehr willkommen.

Vielen Dank

Eine gute Idee, die Nomenklatur richtig zu machen. In Discourse wird ein Thread als Thema bezeichnet.

Die Zuordnung zu einer Kategorie ist implizit, daher ist sie nicht erforderlich.

Außerdem würde die URL veraltet und im Wesentlichen ungültig werden, wenn das Thema in eine neue Kategorie verschoben wird.

Es schadet normalerweise nicht, einen Abfragezeichenfolgenparameter hinzuzufügen, wenn Sie unbedingt müssen.

Aber was ist Ihr Anwendungsfall? Was versuchen Sie zu erreichen?

2 „Gefällt mir“

Ich nutze eine Drittanbietersoftware, die ein Forum scrapt. Ich bin auf deren Abfragen beschränkt und wenn sie einen Thread (Thema) scrapt, muss sie ableiten, zu welcher Kategorie er gehört, was sie anscheinend über die URL tut.

Aus App-Sicht ergibt das keinen Sinn, wie ich bereits erwähnt habe, aber Sie könnten vielleicht ein Plugin oder Skript erstellen, um alle URLs zu ändern.

Die Kategorie ist meiner Meinung nach im HTML der Crawler-Ansichten klar, vielleicht können Sie das Tool stattdessen so ändern, dass es diese nutzt?

2 „Gefällt mir“

Wenn Sie die URLs explizit für den Scraper bereitstellen und definieren, wie er die Kategorie daraus extrahieren soll, könnten Sie vielleicht das verwenden, was Tobias als Hack vorgeschlagen hat – Sie könnten ihm zum Beispiel /t/category-name__topic-slug/topic-id übergeben. Discourse wird eine 301-Weiterleitungsantwort an die endgültige URL senden, die ausschließlich auf der topic-id basiert.

Wenn er die URLs jedoch während des Scraping-Prozesses erhält, erscheint es wie viel Arbeit für eine Änderung, die nur dazu dient, eine Einschränkung in der Scraping-Strategie zu erfüllen.

Soweit ich weiß, nicht. Das Bereitstellen einer /t/category-name/topic-slug/topic_id-Route in einem Plugin scheint machbar, aber dann eine Option zu haben, damit alle Verweise auf Themen in Discourse diese alternative Route bevorzugen, scheint (für mich persönlich) zu viel Arbeit für wenig Gewinn zu sein.

2 „Gefällt mir“

Nur ein Gedanke, aber haben Sie schon mal über die Verwendung von RSS-Feeds nachgedacht? Discourse hat eine integrierte RSS-Feed-Ausgabe.

2 „Gefällt mir“

Welche Software ist das? Sie können die Kategorie auf verschiedene Arten ermitteln, ohne URLs zu ändern (im HTML und JSON).

Für JSON, anstatt dies abzurufen:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

rufen Sie dies ab:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996.json

und suchen Sie nach dem Feld category_id.

Eine weitere Möglichkeit ist die Verwendung von Data Explorer, um das zu extrahieren, was Sie benötigen.

4 „Gefällt mir“