J'ai 2 pages.
/client-a/
/client-b/
J'ai un type de message personnalisé, appelé "cas":
$case_type = array(
'labels' => $case_labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => 'case',
'rewrite' => array( 'slug' => 'cases', 'with_front' => false ),
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 46,
'has_archive' => true,
'supports' => array('title','editor'),
);
register_post_type( 'case' , $case_type );
Et enfin, j'ai une taxonomie personnalisée, appelée "type":
register_taxonomy('type',array('case'),array(
'public' => TRUE,
'show_tagcloud' => FALSE,
'hierarchical' => TRUE,
'labels' => $categoria_labels,
'show_ui' => TRUE,
'query_var' => TRUE,
'rewrite' => array( 'slug' => 'genre', 'with_front' => false )
))
Tous mes types ont le même nom que mes pages: client-a, client-b.
Comment puis-je réécrire les règles de permalien pour accepter cette structure:
client-a/ --> page, lists all 'cases', uses a template
client-a/subpage --> this is a subpage
client-a/cases/case-a.html --> this is a custom post type WITH the genre "client-a"
client-b/cases/case-b.html --> this is a custom post type WITH the genre "client-b"
Quelle est la meilleure approche pour cette structure?
J'utilise cette solution: http://xplus3.net/2010/05/20/wp3-custom-post-type-permalinks/comment-page-1/#comment- 1005
Je fais travailler mes permaliens pour des types de publication personnalisés et une taxonomie personnalisée, mais toutes mes pages sont perméables.
Merci!
Quelque chose de semblable à ceci dans votre functions.php ou un plugin fera l'affaire:
function custom_rewrite( $wp_rewrite ) {
$feed_rules = array(
'([^/]+)/cases/([^/]+).html' => 'index.php?genre='. $wp_rewrite->preg_index(1) .'&case='. $wp_rewrite->preg_index(2)
);
$wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( 'generate_rewrite_rules', 'custom_rewrite' );
Vous devrez actualiser/vider vos liens permanents (WP Dashboard> Paramètres> Liens permanents> Enregistrer les modifications) lorsque vous ajoutez, modifiez ou supprimez ce code. Vous devrez peut-être l'ajuster légèrement si cela ne fonctionne pas tel qu'il est, mais cela montre le principe de base sur la façon de le faire.