Ajouter le support des catégories dans vos pages WordPress

Les catégories sous WordPress sont actives pour vos articles mais comme n'importe quelle taxonomie vous pouvez en disposer pour d'autres types de contenus comme les pages.

Cette technique permet de croiser l’information et d’utiliser l’identifiant de la catégorie dans vos URLS.

Commencez par créer un mu-plugin puis collez ces lignes de code à l’intérieur :

/* Activer le support des catégories pour les pages */
function wpc_cat_pages() {
	register_taxonomy_for_object_type('category', 'page');
}
add_action('init', 'wpc_cat_pages');

Une fois le fichier déposé dans votre répertoire /wp-content/mu-plugins/, retournez dans votre back-office WordPress puis notez l’apparition des catégories pour les pages. Le fonctionnement habituel opère, il suffit d’éditer un contenu pour lui assigner une catégorie.

J’ai appliqué cette technique sur ce site pour mes pages de prestations afin de disposer de la catégorie dans l’URL. Vous pouvez étendre cela à d’autres types de contenus personnalisés en passant un tableau de valeur à la ligne 3.

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

Des tutoriels et des bons plans en exclusivité !
  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.
6 commentaires
  1. Jeremie

    Merci Aurélien, c’est super!
    J’ai une question:
    Pour configurer et afficher la catégorie d’un post on créé une page : « category.php »
    Pour un post type qui serait « produit » on créé la page: « taxonomy-categorie_produit.php »
    Et pour les catégorie de pages comment faut-il appeler la page d’appel?
    Est-ce « taxonomy-categorie_page.php » ?

    Merci d’avance
    🙂

    1. Aurélien Denis auteur de l’article

      C’est inexact, on génère un fichier sous la forme taxonomy_nom_taxonomie.php et non avec le nom du type de contenu. Ensuite, il faut avoir recours à une fonction via pre_get_posts pour injecter des types de contenus additionnels dans category.php si nécessaire. En effet, par défaut cela ne reprendra que les articles.

  2. Herve

    Merci, ça marche parfaitement.

  3. Pascal

    Bonjour
    En ayant ce snippet d’activé et sachant que mes permaliens sont réglés sur /%category%/%postname% comment se fait il que quand je crée une page et lui attribue une catégorie, cette catégorie n’est pas automatiquement incluse dans l’URL ?
    Merci

    1. Aurélien Denis auteur de l’article

      Bonjour Pascal, le tutoriel montre comment ajouter le support des catégories pour les pages mais cela ne suffit pas pour modifier la gestion des permaliens sur les pages. C’est plus complexe et je ne l’ai pas traité ici. Une extension comme Permalinks Customizer pourrait faire l’affaire.

  4. GL

    Excellent, merci

Laisser un commentaire