Pour certains sites web tels que les sites e-commerce, la création de custom post type est une aubaine intéressante pour varier les contenus et ainsi pouvoir se distinguer différemment. En effet, un custom post type c'est-à-dire un « type de contenu personnalisé » permet à chaque propriétaire de site de pouvoir lister des contenus autres que des articles ou des pages web fournis par défaut par WordPress. 

Téléchargement  >> Le guide et le modèle pour maîtriser les regex

Qu'est-ce qu'un custom post type WordPress ?

Un custom post type WordPress est tout simplement un « type de contenu personnalisé » à créer et à intégrer dans un site web. Il permet de se démarquer des contenus fournis par défaut. La création d'un custom post type peut se faire de deux manières : à l'aide d'une extension ou manuellement par le code. La plateforme WordPress propose à la base deux types de publications qui sont les pages et les articles.

Cependant, le propriétaire d'un site web, suivant son activité, peut vouloir présenter sur son site d'autres types de publications telles que des listes. Ces listes se matérialisent généralement par une liste de produits, une liste d'événements à venir ou encore une liste de termes.

Il est possible de créer un custom post type WordPress de deux façons : d'abord grâce à une extension ou alors de façon manuelle par le code. Si vous avez le choix, il est évidemment beaucoup plus simple et rapide d'utiliser une extension fournie par WordPress. Vous pourrez ainsi choisir aisément vos paramètres de publication par l'intermédiaire du tableau de bord. Par contre, soyez vigilants, car le jour où vous supprimez l'extension, les créations de custom post type disparaîtront avec. 

Gagnez du temps dans la gestion de votre code et de vos données

Téléchargez ce guide pour effectuer des vérifications et des changements en masse avec les regex et gagner en productivité.

Comment créer un custom post type WordPress ?

 

Étape 1 : Ajouter du code au fichier function.php

Tout d'abord, commencez par ouvrir le fichier functions.php de votre thème (prenons ici l'exemple de custom post type Films) et ensuite faites un copier-coller du code ci-dessous : 

<p>register_post_type( <span class="string">'movies'</span>,</p>

Faîtes attention, lorsque vous remplissez le nom du CPT situé dans register_post_type, à ne pas mettre d'accent ni d'espace. Le fait d'insérer un accent ou un espace pourrait provoquer des erreurs. 

Voici quelques exemples de choix qui s'offrent à vous :

  • hierarchical : cette option permet d'obtenir un lien parent/enfant. Pour la hiérarchie des catégories, l'équivalence est « true ». Pour la hiérarchie des étiquettes il s'agit de « false »
  • has_archive : il s'agit là de créer des pages d'archives pour votre custom post type. « false » représente la valeur par défaut
  • public : il s'agit ici de savoir si votre custom post type est visible. « true » représente la valeur par défaut
  • rewrite : afin de déterminer le slug utilisé dans le custom post type

Dans cet exemple, les Films sont utilisés, mais si vous souhaitez afficher une liste d'articles pour votre boutique par exemple, il suffit de remplacer les emplacements Films par Articles.

 

Étape 2 : Vérification de l'affichage du custom post type

Une fois l'étape 1 passée, pensez à vérifier dans votre tableau de bord WordPress que le type de publication que vous venez de personnaliser s'affiche bien à l'écran. 

custom post type wordpress

Si la nouvelle catégorie s'affiche dans la barre latérale de gauche, alors vous avez réussi l'étape 1.

 

Étape 3 : Personnalisation du nouveau custom post type

Les étapes précédentes passées avec succès, vous pouvez donc introduire des fonctionnalités supplémentaires avec le code ci-dessous : 

 

 

/*

* Creating a function to create our CPT

*/

 

function custom_post_type() {

 

// Set UI labels for Custom Post Type

$labels = array(

'name' => _x( 'Movies', 'Post Type General Name', 'twentytwenty' ),

'singular_name' => _x( 'Movie', 'Post Type Singular Name', 'twentytwenty' ),

'menu_name' => __( 'Movies', 'twentytwenty' ),

'parent_item_colon' => __( 'Parent Movie', 'twentytwenty' ),

'all_items' => __( 'All Movies', 'twentytwenty' ),

'view_item' => __( 'View Movie', 'twentytwenty' ),

'add_new_item' => __( 'Add New Movie', 'twentytwenty' ),

'add_new' => __( 'Add New', 'twentytwenty' ),

'edit_item' => __( 'Edit Movie', 'twentytwenty' ),

'update_item' => __( 'Update Movie', 'twentytwenty' ),

'search_items' => __( 'Search Movie', 'twentytwenty' ),

'not_found' => __( 'Not Found', 'twentytwenty' ),

'not_found_in_trash' => __( 'Not found in Trash', 'twentytwenty' ),

);

 

// Set other options for Custom Post Type

 

$args = array(

'label' => __( 'movies', 'twentytwenty' ),

'description' => __( 'Movie news and reviews', 'twentytwenty' ),

'labels' => $labels,

// Features this CPT supports in Post Editor

'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),

// You can associate this CPT with a taxonomy or custom taxonomy.

'taxonomies' => array( 'genres' ),

/* A hierarchical CPT is like Pages and can have

* Parent and child items. A non-hierarchical CPT

* is like Posts.

*/

'hierarchical' => false,

'public' => true,

'show_ui' => true,

'show_in_menu' => true,

'show_in_nav_menus' => true,

'show_in_admin_bar' => true,

'menu_position' => 5,

'can_export' => true,

'has_archive' => true,

'exclude_from_search' => false,

'publicly_queryable' => true,

'capability_type' => 'post',

'show_in_rest' => true,

 

);

 

// Registering your Custom Post Type

register_post_type( 'movies', $args );

 

}

 

/* Hook into the 'init' action so that the function

* Containing our post type registration is not

* unnecessarily executed.

*/

 

add_action( 'init', 'custom_post_type', 0 );

 

En pratiquant ainsi, cela vous permet d'ajouter des champs personnalisés autant que vous le souhaitez et également de pouvoir créer des relations de catégorie parent/enfant à votre custom post type. Il est important de souligner que le nom des nouveaux custom post type ne peut excéder 20 caractères et doit essentiellement être composé de caractères alphanumériques.

Un custom post type est un excellent moyen d'ajouter un contenu différenciant à son site web et d'apporter une touche personnalisée. À vous de choisir la manière qui vous convient pour le créer. 

 

Pour aller plus loin, découvrez comment effectuer des vérifications et des changements en masse dans votre code ou vos données en téléchargeant le guide sur les regex ; ou découvrez l’outil CMS de HubSpot.
Nouveau call-to-action

Publication originale le 3 mars 2022, mise à jour le 17 mai 2023

Sujet(s):

Site WordPress