web-dev-qa-db-fra.com

Comment corriger les permaliens pour les types de publication personnalisés qui ont le même slug qu'une page?

Je sais qu'il est impossible d'avoir le même slug de type message personnalisé qu'une page.

J'ai donc pensé que cela pourrait être résolu de la manière suivante:

'rewrite' => array('slug' => 'my-category/!#') pour register_post_type

Mais je reçois une "page non trouvée" chaque fois que je visite/ma-catégorie /! #/Titre-1

Comme vous l'avez compris, j'ai également une page intitulée "/ my-category".

Est-il possible de résoudre ce conflit?

1
Peter Westerlund

Ce n'est pas impossible, mais vous devez faire très attention à la prévention des conflits. Vous pouvez utiliser mon plugin d'analyse Rewrite pour consulter vos règles actuelles.

La structure que vous proposez, dans laquelle le type de publication personnalisé est stocké dans le hachage de l'URL (la partie après le #), ne fonctionnera pas car cette partie n'est pas envoyée au serveur. Ainsi, le serveur ne verra qu'une demande pour my-category/!, pas pour my-category/!#/my-post. (Est-il possible que vous ayez changé le # et le !? La coutume est d'utiliser #!/ comme début de hachage.)

La façon de résoudre ce problème dépend de la présence ou non de règles de page commentées, et de la structure actuelle de votre lien permanent. Pouvez-vous éditer votre question pour ajouter ceci?

2
Jan Fabry

Ce qui se passe, c’est que le backend pense que !#/title-1 est une page enfant/suivante de my-category. J'ai étudié quelque chose comme cela aujourd'hui, et cela ne fait que créer des conflits.

J'ai trouvé un plugin appelé Custom Post Permaliens qui fait ce que je veux. Le seul problème est qu'il semble se réinitialiser si vous ajoutez un nouveau type de publication personnalisée. Je ne sais pas comment cela va gérer votre hashbang #!/.

1
rickbutterfield