AYUDA Duda sobre urls con post types y taxonomías

simsale

New member
Hola a todos, estoy preparando una nueva plantilla para un nuevo proyecto, y me gustaría personalizar la estructura de urls, hace muchos años lo hice pero ya no recuerdo como se hacía, he probado varias formas pero no consigo que cargue correctamente, hay algo que me falla.

Mi idea es crear un post type personalizado, por ejemplo autos. Ahora quiero crear dos taxonomías diferentes, marcas y modelos, y modelos depende de marcas. Mi duda es que quiero construir la url de modelos añadiendo la marca en la que depende delante, por ejemplo:

nombredominio.com/ferrari/f40/ -> como podéis ver, en la url aparece la marca y el modelo.

¿Alguien me puede guiar por favor?, he probado de añadir una función diferente en el functions del theme, la marca lo hace bien, pero al ir al modelo no me carga nada.

Muchas gracias.

Un saludo.
 
Buenas,

Tienes dos formas de hacer el ejemplo que comentas, la primera y la más simple sería:
Para hacer eso, deberás crear en WordPress una categoría que sea "Ferrari" y luego en "Entradas" deberás crear una nueva entrada que se llame "F40" donde dentro estará el contenido. A esa entrada le debes asignar al crearla la categoría "Ferrari" que creaste anteriormente

Si tu pregunta está enfocada a programar esos custom post types y taxonomías:
Para personalizar la estructura de URLs en WordPress para un post type personalizado, como "coches", con taxonomías dependientes como "marcas" y "modelos", puede seguir estos pasos:

Registrar el Post Type Personalizado y Taxonomías:
Primero, necesita registrar el post type personalizado (ejemplo: "autos") y las taxonomías ("marcas" y "modelos"). Esto se hace generalmente en el archivo functions.php de su tema.
Relación entre Taxonomías:
Para establecer una relación jerárquica entre las taxonomías (donde "modelos" depende de "marcas"), debe definir la taxonomía "modelos" como jerárquica.
Personalizar la Estructura de URLs:
La personalización de la estructura de URLs se puede realizar utilizando los hooks post_type_link y rewrite_rules_array.
  • Con post_type_link, puede definir cómo se genera la URL para su post type personalizado.
  • Con rewrite_rules_array, puede agregar reglas de reescritura personalizadas para manejar estas URLs.
Función para Construir URLs:
Deberás escribir una función que construya la URL de la forma nombredominio.com/marca/modelo/. Esta función tomará la marca y el modelo del post y los insertará en la URL.
Te dejo algunos ejemplos de código para cada caso:
Registrar el Post Type Personalizado y Taxonomías
PHP:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Personalizar la Estructura de URLs
PHP:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Después de agregar estos códigos, debes ir a Settings > Permalinks en el panel de administración de WordPress y simplemente guardar los cambios para limpiar las reglas de reescritura.
 
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Hola Jose,

Muchas gracias por los ejemplos, pero hay algo que se me escapa, porque no consigo que funcione, por ejemplo si pongo la siguiente url

dominio.com/ferrari/ en vez de mostrarme las entradas me hace una redirección a la entrada que tengo creada /coches/ferrari-f40-en-venta/ o
cuando quiero ver las marcas, me las muestra de esta manera: dominio.com/marcas/ferrari/ y si quiero ver los modelos me hace dominio.com/modelos/f40/ , no me hace /ferrari/f40/ para mostrarme los modelos del f40.

Quizá me falta otra new_rules para añadir las dos variables?, marcas y coches a la vez?, gracias por tu tiempo.
 
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Está claro, el código es solo una guía por donde debes ir, no te he dado todo el código programado completo.. ese problema es más de reglas de escritura. Necesitaras agregar reglas de reescritura personalizadas para usar las URLs de la forma que indicas "dominio.com/marca/modelo/"

Modificar las reglas de reescritura
PHP:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Modificar el enlace permanente del PostType personalizado
PHP:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.


Asegúrate de ir a la página de ajustes de enlaces permanentes en WordPress y guardar los cambios para que estas nuevas reglas de reescritura tengan efecto

Un saludo!! ;)
 
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.

Claro que si Jose, comparto lo que tengo, que casi lo tengo, en la parte de la taxonomía marca todo ok, el problema me viene que al cargar la taxonomía modelo me carga el resultado pero no me varía el título, es decir, que parece que carga la plantilla de la marca y no el modelo, he creado los archivos taxonomy-marca.php y taxonomy-modelo.php pero algo me falta, seguiré investigando, gracias por todo.

PHP:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
 
Volver
Arriba