No sé con qué SEO está trabajando, pero a las URL profundas, Google no le hace ni caso. Según las buenas costumbres, no se aconseja que una urls tenga más de 3 directorios, máximo 4. Con lo que pide, se podría extender a 6, 7 e incluso 8 o más.
Es una locura cara al SEO.
Buenas Jose:
Conozco las limitaciones del SEO y el cliente está advertido de la situación. De hecho me parece aberrante.
Pero aú así quiere implementarlo de esa manera.
¿Alguien implementó URL’s con taxonomías múltiples?
Saludos chicos!
Mauricio
Mmmmm, yo he hecho algunos trabajos con reescrituras de URL bastante complejas, igual te puedo decir algo. One moment que busco entre mis apuntes.
Me acabo de fijar bien en la estructura que pides y son muchos niveles sin ningún tipo de «identificación» de dónde empieza una taxonomía y dónde termina otra. No se me ocurre como diferenciarlas, al menos de una forma que no sea hace una obra faraónica.
En tu ejemplo entiendo que el número de niveles de la taxonomía de ubicación es desconocido e ilimitado; podrían existir todas estas URLs:
– http://miinmobiliaria.com/madrid/madrid-capital/madrid-centro/ chamberi/venta/piso
– http://miinmobiliaria.com/madrid/madrid-capital/madrid-centro/venta/piso
– http://miinmobiliaria.com/madrid/madrid-capital/venta/piso
– http://miinmobiliaria.com/madrid/venta/piso
– http://miinmobiliaria.com/madrid/venta/
– http://miinmobiliaria.com/madrid/pìso/
– http://miinmobiliaria.com/madrid/
– http://miinmobiliaria.com/piso/
– http://miinmobiliaria.com/venta/
Lo más rápido que se ocurre es añadir algún tipo de identificador de taxonomía. Por ejemplo:
http://miinmobiliaria.com/ubicacion/madrid/madrid-capital/madrid-centro/chamberi/tipo-transaccion/venta/tipo-inmueble/piso
Así sería mucho más directo hacer la regla de reescritura, pero se complica aún más la estructura de la URL.
Entiendo que la idea es crear listados automáticos tipo «Pisos en venta en el barrio de Chamberí» pero creo que igual hay que pensar en otra forma de crearlos.
No lo he comprobado, pero parece que en este hilo de los foros lo resuelven.
https://wordpress.org/support/topic/insert-category-of-taxonomy-between-custom-post-type-and-post
Quizá no se resuelve la coletilla.
Creo que no es lo mismo Conti, fíjate que ahí hay una estructura fija:
http:://ejemplo.com/{post_type}/{term_slug}/{post_slug}
Pero en la estructura que quiere Mauricio no hay nada fijo:
http:://ejemplo.com/{term_slug}/[{term_slug}/]
Dónde [{term_slug}/]
se puede repetir un número ilimitado y desconocido de veces (el usuario puede crear la profundidad que quiera provincia-cidudad-distrito-barrio-calle….) y además cada {term_slug}
puede ser de varias taxonomias y, como no hay límite de profundidad en la primera taxonomía, no podemos saber dónde empieza el {term_slug}
de una taxonomía y empieza el de otra.
Al menos a mi no se me ocurre una rápida y fácil, solo introducir fragmentos en la URL que identifiquen cada parte. Tipo:
http:://ejemplo.com/{taxonomy_1}/{term_slug}/{taxonomy_2}/{term_slug}/{taxonomy_3}/{term_slug}
O ya pensar en otra estructura de URL más sencilla y fija con partes conocidas. Por ejemplo (tan sólo un ejemplo pensado rápido, seguro que hay mejores):
http:://ejemplo.com/{endpoint_fijo}/{term_slug_of_tax_1}/{term_slug_of_tax_2}/{term_slug_of_tax_2}/
Sin profundidad ilimitada y con el {endpoint_fijo} para diferenciarlo de cualquier otra estructura de nivel superior, por ejemplo del predeterminado http:://ejemplo.com/{post_slug}
.
Por ejemplo, inmuebles
como endpoint:
http:://ejemplo.com/inmuebles/chamberi/venta/apartamento/
http:://ejemplo.com/inmuebles/serrallo/alquiler/
.....
No sé si me pilláis.
Depende de como se mire.
Si solo se tiene una taxonomía, realmente no sirve, pero si se crean tantas taxomínias, como partes de slug se quiera, no debería hacer ningún problema con el enlace que he puesto.
Eso si, siempre se deben rellenar todas.
Por ejemplo, se podría tener las taxonomías:
– Región
– Provincia
– Ciudad
– Zona
– Tipo
– Lo que sea
Luego, solo es montar el slug de CPT y ya lo tienes. Lo que pasa es que te fuerzas a rellenar en cada nueva entrada, todas las taxonomías y que tengan todas la misma estructura exacta. Pero sinceramente, lo lógico es que todas tengan la misma estructura para que Google entienda la web.
Ahora creo que hablamos de lo mismo, más o menos. Jajaja.
En este plugin que hice hace dos años como experimento, y que se quedó en eso, tenía el tipo de post type properties
, y las taxonomías type
, city
y features
, y tenía estas URLs:
// Properties archive
ejemplo.com/properties/
// Singular
ejemplo.com/properties/post_slug
// City taxonomy
ejemplo.com/properties/city/term_slug
// Type taxonomy
ejemplo.com/properties/type/term_slug
// Features taxonomy
ejemplo.com/properties/features/term_slug
// Procesamiento formulario de búsqueda
ejemplo.com/properties/search
Bajo properties/search
procesaba un formaultio con POST
, así que no se generaban URLs diferentes para cada combinación de taxonomías, pero si creamos el endpoint search
, u otro que queramos, se puede hacer. Y sin verte forzado a nada. Podrías tener, además de las URLs anteriores, este tipo de URL:
// Todos los inmuebles en venta
ejemplo.com/properties/search/venta
// Todos los inmuebles en venta en chamberí
ejemplo.com/properties/search/venta/chamberi
// Todos los inmuebles en venta en chamberí tipo piso
ejemplo.com/properties/search/venta/chamberi/piso
La clave es tener una estructura de URLs predecible, en esto coincidimos. En este caso la estructura predicible sería properties/search/{venta/alquiler}/{taxonomia_ubicacion}/{taxonomia_tipo_inmueble}
.
Lo que no incluiría sería todas las ubicaciones, solo la más baja. En este caso se incluiría chamberi
en la URL, pero no madrid/madrid-capiatl/madrid-centro/chamberi
.
No se, es la mejor idea que se me ocurre por el momento.
Yo, como endpoint, crearía varios, luego, dependiendo del lugar que nos encontremos, ejecutaría un código u otro dependiendo de lo que interesara, es decir,
- /properties/venta/
- /properties/alquiler/
Pero no lo acabo de ver muy eficiente, ya que en la realidad, estarás creado un loop personalizado, junto a un rewrite que deberás también crear.
Lo veo mucho trabajo, a menos que los slugs, si o si, puedan ser todos diferentes en longitud.
Si, claro, ya sería cuestión de ir afinando los endpoints y estructura que se desea, pero la idea creo que podría ir por ahí.
Yo en principio no le veo problemas de performance, habría una regla rewrite por cada endpoint creado, que no aporta nada al rendimiento, y se procesa en pre_get_posts
, no le veo problema a priori.
Chicos, sóis la bomba.
Probaré distintas alternativas con vuestros consejos y documentaré con un post el resultado el cual agregaré a este hilo para que quede constancia.
Nuevamente, mil gracias por vuestra ayuda.
Mauricio