Comment consolider le comportement du menu pour vos CPT ?
Cet article fait suite au précédent, dans lequel je donne un exemple de contournement pour créer une page d’archive de custom post type personnalisée. Lorsque vous créez un custom post type, WordPress en effet va générer automatiquement une page d’archive que vous pourrez retrouver dans l’onglet Apparence / menu. C’est une page qui n’existe pas en dur dans le dossier wordpress, et qu’on ne peut malheureusement pas personnaliser.
On a donc vu comment contourner cette contrainte, en créant un modèle de page qui prend le rôle de page d’archive.
Le problème
Le problème, c’est qu’il reste à modifier le comportement du menu wordpress qui se perd un peu dans l’arborescence. Il se peut que wordpress souligne la page blog lorsque vous êtes dans un article de custom post type, comme si la page blog était parente de vos CPT.
Pour contourner ce dysfonctionnement, et si vous avez placé votre page d’archive personnalisée dans le menu, voici le code à insérer dans functions.php
La solution
Ce code vous permettra, lorsque vous êtes dans une page single CPT, de surligner le modèle de page plutôt que la page blog, comme s’il s’agissait d’une page d’archive parente classique.
Cette action et ce filtre permettent de retirer la classe current_page_parent que wordpress attribue automatiquement à la page blog, et de la réattribuer à votre modèle de page.
L’utilisateur ne verra donc plus aucune différence entre le modèle de page et une vraie page d’archive.