web-dev-qa-db-fra.com

Custom Post Type réécriture des redirections vers la page d'accueil

J'ai un type de message personnalisé enregistré appelé employees. Lors de l'enregistrement de ce type de message personnalisé, j'ai utilisé:

...
'rewrite' => array('slug' => 'people'),
...

Maintenant, lorsque je survole un lien vers l'un de mes employés, je vois l'URL comme ceci:

www.example.com/people/john

Cela semble donc correct. Mais je clique sur le lien, je vois que Chrome navigue uniquement vers www.example.com/john et que cela n'existe pas, il redirige ensuite vers www.example.com (la page d'accueil).

Comment le faire naviguer vers /people/john et l'empêcher de rediriger vers la page d'accueil?

2
Jake Wilson

Les arguments les plus importants pour les redirections de réécriture lors de l'enregistrement d'un nouveau type de publication sont les suivants:

  • 'public' => true,
  • 'public_queryable' => vrai,
  • 'query_var' => true,

J'ai collé du code ci-dessous que j'ai testé et qui fonctionne très bien pour l'URL: www.example.com/people/john

$labels_employee = 
array('name' => _x( 'Employees', 'Post typegeneral name', 'textdomain' ),
'singular_name' => _x( 'Employee', 'Post type singular name', 'textdomain' ),
'menu_name' => _x( 'Employees', 'Admin Menu text', 'textdomain' ),
'name_admin_bar' => _x( 'Employee', 'Add New on Toolbar', 'textdomain' ),
'add_new' => __( 'Add New', 'textdomain' ),
'add_new_item' => __( 'Add New Employee', 'textdomain' ),
'new_item' => __( 'New Employee', 'textdomain' ),

$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' ), );

register_post_type( 'employee', $args_employee );
4
Syed Fakhar Abbas

si vous avez enregistré votre taxo avec register_post_type ('employés', $ args);

avez-vous créé single-employees.php?

et après dans administration/Paramétrage/liens permanents -> Enregistrer les modifications

1
Thomas