Comment créer un type de post (post_type) personnalisé avec WordPress ?
Tout contenu publié sur WordPress possède un « type » : ce qu’on appelle le « post_type« .
Par défaut, lorsque vous créez un article sur wordpress, son post_type est « post« . Celui d’une page est « page« . Celui d’un produit (avec Woocommerce) est « product« , celui d’une image est « attachment« , etc.
Il est possible de créer des post_type personnalisés pour isoler un certain type de contenu et lui appliquer des fonctionnalités spécifiques comme par exemple :
- Accéder à la liste d’une catégorie d’article depuis le menu principal du back-office
- Utiliser un thème spécifique pour les articles de ce type
- Utiliser des champs personnalisés sur ce type d’article
Créer un post_type personnalisé et y accéder depuis le menu
Le code ci-dessous vous permet de :
- créer un nouveau post_type appelé « membres »
- créer un nouvel item au menu de l’administration nommé « Fiches membres » dans lequel seront listés toutes vos pages « Membres » et identifié par une icône spécifique.
- d’activer l’éditeur de texte (editor), l’image mise en avant (thumbnail) et le titre (title). Vous pouvez modifier (supprimer ou ajouter) en fonction de vos besoins, par exemple en ajoutant le résumé (excerpt), l’auteur, (author), etc.
- d’activer les étiquettes et catégories.
Veillez à ne pas utiliser un post_type réservé : post, page, attachment, revision, nav_menu_item, custom_css, customize_changeset.
Il est conseillé de les préfixer pour éviter qu’un doublon vienne semer la zizanie dans votre site (plutôt que membres, vous pouvez indiquer cs_membres).
[pastacode lang= »php » manual= »%2F**%0A%20*%20Cr%C3%A9e%20un%20nouveau%20post_type%20et%20ajoute%20un%20nouvel%20item%20au%20menu%0A%20*%0A%20*%20%40return%20void%0A%20*%2F%0Afunction%20cs_create_post_type_membres()%20%7B%0A%09%24labels%20%3D%20array(%0A%09%09’name’%20%3D%3E%20’Fiches%20membres’%2C%0A%09%09’all_items’%20%3D%3E%20’Toutes%20les%20fiches’%2C%0A%09%09’singular_name’%20%3D%3E%20’Fiche%20membre’%2C%0A%09%09’add_new_item’%20%3D%3E%20’Ajouter%20une%20fiche’%2C%0A%09%09’edit_item’%20%3D%3E%20’Modifier%20une%20fiche’%2C%0A%09%09’menu_name’%20%3D%3E%20’Fiches%20membres’%2C%0A%09)%3B%0A%09%24args%20%3D%20array(%0A%09%09’labels’%20%3D%3E%20%24labels%2C%0A%09%09’public’%20%3D%3E%20true%2C%0A%09%09’has_archive’%20%3D%3E%20true%2C%0A%09%09’supports’%20%3D%3E%20array(%20’title’%2C%20’editor’%2C%20’thumbnail’%20)%2C%0A%09%09’taxonomies’%20%3D%3E%20array(%20’category’%2C%20’post_tag’%20)%2C%0A%09%09’menu_position’%20%3D%3E%205%2C%0A%09%09’menu_icon’%20%3D%3E%20’dashicons-id-alt’%2C%0A%09)%3B%0A%09register_post_type(%20’membres’%2C%20%24args%20)%3B%0A%7D%0Aadd_action(%20’init’%2C%20’cs_create_post_type_membres’%20)%3B » message= »Créer un post_type personnalisé » highlight= » » provider= »manual »/] Trouver l’icone de menu de votre choixUtiliser un thème spécifique pour les articles de ce type
Le template qui affichera votre page doit être placé dans single-{post_type}.php, donc dans notre cas dans single-membres.php.
Le template d’archives de votre nouveau post_type sera quant à lui placé dans archive-{post_type}.php, soit dans notre cas dans archive-membres.php.
Vous accéderez à vos pages à l’adresse www.votre-domaine.com/post_type/mon-article
Si vous rencontrez une erreur 404, rendez-vous dans Réglages > Permaliens puis cliquez sur « Enregistrer les modifications » pour générer de nouveau les permaliens du site.
Utiliser des champs personnalisés
Avec le plugin ACF (Advanced Custom Fields), vous pouvez facilement associer un groupe de champs personnalisés à un type de post précis :
Si cet article vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !