Tipo de entrada personalizada redirige a la página de inicio
Tengo un tipo de entrada personalizada registrado llamado employees
. Al registrar este tipo de entrada personalizada utilicé:
...
'rewrite' => array('slug' => 'people'),
...
Ahora, cuando paso el cursor sobre un enlace a uno de mis empleados, veo la URL así:
www.example.com/people/john
Eso parece correcto. Pero al hacer clic en el enlace, veo que Chrome navega a www.example.com/john
y como eso no existe, redirige a www.example.com
(la página de inicio).
¿Cómo hago para que navegue a /people/john
y evite que redirija a la página de inicio?

Los argumentos más importantes para las redirecciones de reescritura al registrar un nuevo tipo de publicación son:
- 'public' => true,
- 'publicly_queryable' => true,
- 'query_var' => true,
A continuación he pegado un código que he probado y que funciona correctamente para la URL: www.example.com/people/john
$labels_employee = <br/>array('name' => _x( 'Empleados', 'Nombre general del tipo de publicación', 'textdomain' ),<br/>'singular_name' => _x( 'Empleado', 'Nombre singular del tipo de publicación', 'textdomain' ),<br/>'menu_name' => _x( 'Empleados', 'Texto del Menú de Administración', 'textdomain' ),<br/>'name_admin_bar' => _x( 'Empleado', 'Agregar nuevo en la barra de herramientas', 'textdomain' ),<br/>'add_new' => __( 'Agregar nuevo', 'textdomain' ),<br/>'add_new_item' => __( 'Agregar nuevo empleado', 'textdomain' ),<br/>'new_item' => __( 'Nuevo empleado', 'textdomain' ),<br/><br/>$args_employee= array(
'labels' => $labels_employee,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'people' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
);<br/><br/>register_post_type( 'employee', $args_employee );

Tenía el mismo problema, el enlace de la taxonomía personalizada redirigía al índice.
Ok, al registrar una taxonomía personalizada, asegúrate de que el código register_taxonomy se ejecute siempre (hook init) y no solo en el administrador (admin_init)
add_action('init', 'woobr_register_settings');
function woobr_register_settings()
{
$args = array(
//'labels' => $labels,
//'labels' => 'Brand',
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'capability_type' => 'product',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
);
register_taxonomy('woobrand', 'product', $args);
}
