web-dev-qa-db-fra.com

Problème avec les types de publication personnalisés, la taxonomie et les permaliens

J'ai des problèmes avec les types d'articles personnalisés, les taxonomies, les permaliens et les réécritures.

J'ai créé un type de post personnalisé "recettes" et une taxonomie à l'aide de ce code:

add_action('init', 'recipes_register');
function recipes_register() {
$labels = array(
 'name' => __('Recipes', 'framework'),
 'singular_name' => __('Recipe', 'framework'),
 'add_new' => __('Add Recipe', 'framework'),
 'add_new_item' => __('Add New Recipe', 'framework'),
 'edit_item' => __('Edit Recipe', 'framework'),
 'new_item' => __('New Recipe', 'framework'),
 'view_item' => __('View Recipe', 'framework'),
 'search_items' => __('Search Recipe', 'framework'),
 'not_found' =>  __('Nothing found', 'framework'),
 'not_found_in_trash' => __('Nothing found in Trash', 'framework'),
 'parent_item_colon' => ''
);
$args = array(
 'labels' => $labels,
 'public' => true,
 'publicly_queryable' => true,
 'show_ui' => true,
 'query_var' => true,
 'menu_icon' => get_stylesheet_directory_uri() . '/img/admin-recipes.png',
 'rewrite' => true,
 'capability_type' => 'post',
 'hierarchical' => true,
 'menu_position' => null,
 'supports' => array('title','editor','thumbnail','comments'),
  ); 
register_post_type( 'recipes' , $args );
}

register_taxonomy('recipe_type', array('recipes'), array('hierarchical' => true, 'label' => __('Recipe Type', 'framework'), 'rewrite' => array('hierarchical' => true, 'slug'=>'recipes')));

Le problème survient lorsque je souhaite accéder à une publication de type personnalisée avec ce type d'URL, une erreur 404 est générée:

http://my-website/recipes/name-of-the-recipe/

Je pense que le problème est dû au fait que je souhaite utiliser le même slug pour la taxonomie "type_recette" et le type de message personnalisé "recette".

Je suis un peu coincé là-dessus et je vous serais reconnaissant de bien vouloir m'aider.

Merci

1
Cyril

votre type de message personnalisé fonctionnera probablement si vous visitez votre page de permaliens et que vous enregistrez, ce qui force le vidage des règles de réécriture. Cependant, vous ne pourrez probablement pas utiliser la même taxonomie avec la même limace. Les types de publication personnalisés semblent supplanter les taxonomies si elles partagent une limace. de toute façon, cela aurait probablement un gros impact sur les performances même si cela fonctionnait bien, WP devrait générer une règle de réécriture pour chaque terme ou publication créé, ou rechercher deux endroits différents pour chaque demande.

de plus, votre register_taxonomy devrait être encapsulé dans une fonction appelée par init, comme votre fonction recipes_register.

3
Milo