URL du sujet à inclure dans sa catégorie

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 « J'aime »

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 « J'aime »

Est-ce possible via un réglage du site ou un plugin ?

Salut,

Je suis vraiment un noob en ce qui concerne Discourse, mais aussi les forums en général, et j’aimerais demander et comprendre si et comment il est possible qu’une URL de fil contienne sa catégorie.

Ce que je veux dire, c’est qu’actuellement, j’ai une URL de catégorie comme celle-ci :
https://randomname.discourse.group/c/category-name/6

Mais en cliquant sur un fil dans cette catégorie, j’ai une URL qui ne fait aucune référence à la catégorie :
https://randomname.discourse.group/t/what-a-great-thread/18

Mes excuses, mais j’ai essayé de chercher et de comprendre la réponse, mais je n’ai pas eu beaucoup de succès.

Toute aide serait grandement appréciée.

Merci beaucoup

Une bonne idée pour bien nommer les choses. Dans Discourse, un fil de discussion est appelé un Sujet.

L’association avec une Catégorie est implicite, donc elle n’est pas nécessaire.

De plus, si le Sujet est déplacé vers une nouvelle Catégorie, l’URL deviendrait obsolète et essentiellement invalide.

Il n’y a généralement aucun inconvénient à ajouter un paramètre de chaîne de requête si vous y tenez.

Mais quel est votre cas d’utilisation ? Qu’essayez-vous d’accomplir ?

2 « J'aime »

J’utilise un logiciel tiers qui extrait des données d’un forum. Je suis limité par ses requêtes et donc, lorsqu’il extrait un fil de discussion (sujet), il doit déduire à quelle catégorie il appartient, ce qu’il semble faire via l’URL.

Cela n’a aucun sens du point de vue d’une application, comme je l’ai souligné, mais vous pourriez être en mesure de créer un plugin ou un script pour modifier toutes les URL.

La catégorie est claire dans le HTML des vues de l’explorateur, je crois, alors peut-être pourriez-vous modifier l’outil pour en tirer parti à la place ?

2 « J'aime »

Si vous fournissez explicitement les URL au scraper et définissez comment il en extraira la catégorie, vous pourriez être en mesure d’utiliser ce que Tobias a suggéré comme une solution de contournement – vous pourriez lui fournir par exemple /t/category-name__topic-slug/topic-id. Discourse servira une réponse de redirection 301 vers l’URL finale, basée uniquement sur le topic-id.

Si, cependant, il obtient les URL pendant le processus de scraping, cela semble être beaucoup de travail pour un changement visant uniquement à pallier une limitation de la stratégie de scraping.

Pas à ma connaissance. Servir une route /t/category-name/topic-slug/topic_id dans un plugin semble réalisable, mais avoir ensuite une option pour que toutes les références aux sujets dans Discourse privilégient cette route alternative semble (pour moi, personnellement) être trop de travail pour un gain minime.

2 « J'aime »

Juste une pensée, mais avez-vous envisagé d’utiliser les flux RSS ? Discourse a une sortie de flux RSS intégrée.

2 « J'aime »

Quel logiciel est-ce ? Vous pouvez obtenir la catégorie de plusieurs manières sans changer les URL (dans le HTML et le JSON).

Pour le JSON, au lieu d’extraire ceci :
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

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

et recherchez le champ category_id.

Une autre possibilité est d’utiliser Data Explorer pour extraire ce dont vous avez besoin.

4 « J'aime »