Ajouter le support des catégories dans vos pages WordPress

10 commentaires
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.

10 commentaires
  1. Jepigi

    Bonjour,
    Merci pour ce code (et tout le reste d’ailleurs !)
    Lors de la derniere MAJ de WP et du theme ASTRA ce code génère une erreur “l’éditeur a rencontré une erreur inattendue”
    Le code était inséré dans un child theme et fonctionnait parfaitement avant.
    Cette erreur apparait aussi pour des plugins qui proposent la même fonction, par exemple le plugin “Post Tags and Categories for Pages”
    Une idée sur la façon de rendre ce code compatible ?
    Merci !

    1. Jepigi

      Rebonjour,
      Apres investigation il apparait que cette ligne de code rentre en conflit avec les pages sur lesquelles figurent un formulaire de contact CF7.
      A suivre…

  2. EDANE TONNY

    Bonjour et merci pour ce tuto Formidable. S’lement moi j’ne dispose pas encore d’un pass premium pour installer des plugins. Y’aurait il une solution pour moi?

    1. Aurélien Denis auteur de l’article

      Il n’y a pas de pass premium sur un site WordPress sauf si vous faites référence à wordpress.com.

  3. GL

    Excellent, merci

  4. 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.

  5. Herve

    Merci, ça marche parfaitement.

  6. 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.