Taxonomía: ¿Por qué 'with_front' => false NO FUNCIONA?
En serio, ¿por qué 'with_front' => false
no funciona como debería? Se supone que debe eliminar el NOMBRE BASE DE LA TAXONOMÍA y mi pregunta es ¿por qué no funciona?
Simplemente no quiero que el slug base de la taxonomía aparezca en mi URL y el codex dice que 'with_front' => false
debería ayudar pero no lo hace. Dejar el slug vacío como 'slug'=> ''
genera un error 404.
register_taxonomy("tax_categories", array("products"), array(
"hierarchical" => true,
"label" => "Categories", // Categorías
"singular_label" => "Category", // Categoría
"show_ui" => true,
'update_count_callback' => '_update_post_term_count',
"rewrite" => array(
'with_front' => false,
'hierarchical' => true
)
));
Se supone que este problema fue arreglado http://core.trac.wordpress.org/ticket/16807
Por favor, ayuden a entender esto. Gracias.
Para eliminar el nombre base de la taxonomía, puedes usar:
'rewrite' => ['slug' => '/', 'with_front' => false]
Sin embargo, esto hará que tus publicaciones (del tipo básico) devuelvan error 404, si tienes los enlaces permanentes configurados como http://ejemplo.com/publicacion-ejemplo/
. Parece que no puedes tener tanto la taxonomía personalizada como las publicaciones en la raíz. Por lo tanto, deberías ir a la configuración de Enlaces permanentes y establecer una Estructura personalizada, por ejemplo /blog/%postname%/
.
Una nota adicional
Un efecto secundario es que tus CPTs (Tipos de contenido personalizados) también tendrían este "prefijo", por ejemplo blog/productos
. Aquí es donde entra en juego 'with_front' => false
. Está diseñado para eliminar el inicio de la estructura personalizada. Así que en el registro de tu tipo de producto, tendrías:
register_post_type( 'products', array(
'rewrite' => array(
'slug' => 'products',
'with_front' => false
),
/* ... */
));

Lo que hace with_front es simplemente activar o desactivar si un enlace de taxonomía puede tener algo más delante, es decir, contenido adicional de enlaces permanentes desde la página de opciones de enlaces permanentes. Por ejemplo, con with_front establecido en true, esto es posible:
blah.com/2011/09/tax/termino
Con with_front establecido en false, solo puedes hacer:
blah.com/tax/termino

Además de lo que dijo @tf, por favor también explica por qué tu código proporciona una solución.

Me da un error 404, a pesar de haber vuelto a guardar los enlaces permanentes. Reescribe la URL en el navegador (pero no dentro del área de enlace permanente de la publicación), pero aún así muestra 404 en el navegador.
