Pour faire suite à mon dernier article qui vous présentait un moyen simple de mettre en place des types de contenu et taxinomies personnalisés, je continue aujourd’hui avec un point important : l’accès aux pages d’archives de ces nouveaux éléments créés depuis un menu personnalisé (custom menu). Une page d’archive permet à vos visiteurs de voir tous les contenus d’un type personnalisé spécifique, comme il est possible de consulter tous les articles d’un blog, ou d’une taxinomie spécifique.
En effet, depuis l’introduction des menus de navigation et des types de contenus personnalisés dans WordPress 3, et jusqu’à aujourd’hui, il n’existe toujours pas de cases à cocher “archive” lorsque l’on édite un menu, mais uniquement les différentes “pages” créées au sein de ce custom post type. Cette option est demandée par les utilisateurs de WordPress depuis quelques mois déjà, comme le prouve ce ticket sur le trac, les développeurs semblent travailler dessus mais il n’existe pas encore d’implantation effective dans une version officielle.
Un plugin nommé Custom Post Type Archives in nav menus a fait son apparition en mai, mais ne semble plus fonctionner avec WordPress 3.2 malheureusement, et aucune nouvelle d’une future mise à jour. Du coup, la solution restante est assez simple : ajouter en dur le lien vers l’archive du type de contenu personnalisé, comme je l’ai fait par exemple pour ma section “réalisations” sur ce site.
L’url de l’archive correspond bien entendu au “slug” que vous aurez défini lors de la création du custom post type. Le fait d’ajouter en dur le lien présente bien entendu un inconvénient dans le cas d’un changement de nom de domaine, mais il suffit de se rappeler de le modifier. Cela pose également un problème au niveau du CSS, la classe “current_page_item” n’étant pas ajoutée aux liens de ce type dans un menu de navigation personnalisé, certains effets peuvent être perdus lorsque l’on se trouve sur la page d’archive.
Enfin, n’oubliez pas que si vous souhaitez que votre archive possède sa propre mise en page, il est nécessaire de créer dans votre thème un fichier archive-{custom-post-type-slug}.php. Sinon, l’archive utilisera par défaut la mise en page de votre fichier archive.php, ou index.php.
Pour conclure, même si cette solution est peu élégante, c’est actuellement la seule qui permette d’ajouter l’archive d’un type de contenu personnalisé à un menu de navigation. Et on espère qu’une solution pratique arrive rapidement, via une nouvelle version de WordPress, ou via un plugin.