J'ai créé une page et expérimenté avec des modèles personnalisés. Soudainement, j'ai remarqué que cette page a commencé à utiliser le modèle archive.php et peu importe le modèle personnalisé que je lui ai attribué, elle continue à utiliser le modèle d'archive. Quelle pourrait être la raison de cela?
J'ai remarqué quelque chose d'intéressant. J'ai un modèle de publication personnalisé qui a exactement le même slug que la page décrite ci-dessus. J'ai fait un autre CPT et une page avec le même slug et j'ai eu le même effet. Si je change le slug de page, il commence à utiliser le modèle personnalisé attribué.
Ce comportement semble plutôt pratique, mais pourquoi WP se comporte-t-il de la sorte? Est-ce documenté n'importe où? Ce serait très intéressant à lire.
Lorsque vous utilisez de jolis permaliens, WordPress crée un ensemble de règles pour chaque type de contenu. Ces règles définissent un modèle que suivront chaque type d'URL de contenu.
Lorsque vous avez une demande entrante, WordPress décide ce qui est demandé en faisant correspondre l'URL à ces règles. Si plusieurs règles correspondent, celle qui a la priorité la plus élevée est utilisée. Dans ce cas, votre CPT a priorité sur les pages.
Voir la classe WP_Rewrite du Codex pour plus d'informations.
EDIT Voir également parse_request
dans le code source qui analyse ces règles pour une requête.