Donc cela me rend absolument fou. J'ai passé des jours à essayer de résoudre ce problème et je ne peux pas comprendre pourquoi c'est si difficile car il s'agit sûrement d'une structure de permalien très courante!
J'ai regardé des centaines de réponses et de messages et aucun d'eux ne semble résoudre le problème.
Je veux simplement cette structure:
mysite.com/custom-post-type/custom-taxonomy-term/post-name
Je réalise donc ce qui suit:
mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post
Chaque fois que j'essaie quelque chose, j'obtiens des erreurs 404 ou la pagnination ne fonctionne pas.
Je ne comprends pas pourquoi c'est si difficile!
Toute aide vraiment appréciée!
Je vous remercie
================================================== ==== ================== INFORMATIONS COMPLÉMENTAIRES ==================
Actuellement, j'enregistre le type de message et la taxonomie comme suit:
register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),
register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),
Si j'enregistre les deux en tant que «littérature», j'obtiens un 404 sur la page mysite.com/literature mais cela affiche mon permalien comme: mysite.com/literature/books/mybook
Après avoir suivi les conseils sur cette question - Types de publication personnalisés, taxonomies et permaliens
J'ai ajouté ceci à mes fonctions:
function filter_post_type_link($link, $post) {
if ($post->post_type != 'literature')
return $link;
if ($cats = get_the_terms($post->ID, 'literature_category'))
$link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
Et changé mon type de message en 'slug' => 'literature/%literature_category%'
Et changé ma taxonomie en'slug' => 'literature'
Cela fonctionne très bien, sauf que la mysite.com/literature
pagination ne fonctionne pas, donc j'obtiens une erreur 404 sur l'url suivante:
mysite.com/literature/page/2/