URL del tema para incluir su categoría

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 me gusta

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 Me gusta

¿Es esto posible mediante una configuración del sitio o un plugin?

Hola,

Soy muy novato en Discourse, pero también en los foros en general y me gustaría preguntar y entender si es posible y cómo es posible que la URL de un hilo contenga su categoría.

Mi intención es que ahora mismo parece que tengo una URL de una categoría como esta:
https://randomname.discourse.group/c/category-name/6

Pero al hacer clic en un hilo dentro de esa categoría, tengo una URL que no contiene ninguna referencia a la categoría:
https://randomname.discourse.group/t/what-a-great-thread/18

Disculpad, pero he intentado buscar y entender la respuesta, pero no he tenido mucha suerte.

Agradecería mucho vuestra ayuda.

Muchas gracias.

Una buena idea para que la nomenclatura sea correcta. En Discourse, un hilo se llama Tema.

La asociación con una Categoría es implícita, por lo que no es necesaria.

Además, si el Tema se mueve a una nueva Categoría, la URL quedaría obsoleta y esencialmente inválida.

Normalmente no hay ningún inconveniente en añadir un parámetro de cadena de consulta si es necesario.

Pero, ¿cuál es tu caso de uso? ¿Qué intentas lograr?

2 Me gusta

Estoy utilizando un software de terceros que extrae datos de un foro. Estoy limitado por sus consultas y, por lo tanto, cuando extrae un hilo (tema), necesita inferir de qué categoría forma parte, lo que parece hacer a través de la URL.

No tiene sentido desde la perspectiva de una aplicación, como he señalado, pero es posible que puedas crear un complemento o script para cambiar todas las URL.

La categoría está clara en el HTML de las vistas del rastreador, creo, ¿así que tal vez puedas modificar la herramienta para aprovechar eso en su lugar?

2 Me gusta

Si eres tú quien proporciona explícitamente las URL al scraper y define cómo extraerá la categoría de ellas, podrías usar lo que Tobias sugirió como un hack: podrías proporcionarle /t/nombre-categoría__identificador-tema/id-tema, por ejemplo. Discourse servirá una respuesta de redirección 301 a la URL final, basándose únicamente en el id-tema.

Si obtiene las URL durante el proceso de scraping, sin embargo, parece mucho trabajo para un cambio destinado únicamente a cumplir con una limitación en la estrategia de scraping.

No que yo sepa. Servir una ruta /t/nombre-categoría/identificador-tema/id-tema en un plugin parece factible, pero luego tener una opción para que todas las referencias a temas en Discourse prefieran esta ruta alternativa parece (para mí, personalmente) demasiado trabajo para una ganancia mínima.

2 Me gusta

Solo una idea, pero ¿has considerado usar feeds RSS? Discourse tiene salida de feed RSS incorporada.

2 Me gusta

¿Qué software es? Puedes obtener la categoría de varias maneras sin cambiar las URL (en el HTML y JSON).

Para JSON, en lugar de raspar esto:
https://meta.discourse.org/t/topic-url-to-include-its-category/39996

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

y busca el campo category_id.

Otra posibilidad es usar Data Explorer para extraer lo que necesitas.

4 Me gusta