• 6 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/08/2023

Créez un type de contenu

Découvrez les types de contenu

WordPress comporte de nombreux types de contenu différents par défaut, stockés sous la table wp_posts  dans la base de données.

Les types de contenu par défaut, qui sont toujours inclus dans une installation WordPress (à moins qu’ils n’aient été retirés), sont les suivants :

  • articles ;

  • pages ;

  • fichiers joints ;

  • révisions ;

  • menus de navigation ;

  • CSS personnalisé ;

  • jeux de modifications.

De base, pour un site simple, ces types de contenu suffisent, et vous permettront donc de réaliser un petit site pour y afficher quelques pages, une série d’articles avec un menu pour parcourir les différentes pages.

Maintenant, penchons-nous sur notre cas qui est un peu plus spécifique ! On souhaite enregistrer pour CookInFamily des recettes avec des données spécifiques. Comment procéderiez-vous ?

Créer une page pour chaque recette et utiliser le champ du contenu principal ( body  ) pour y afficher le contenu ?

Bonne idée, mais en utilisant body  , le rendu du contenu sera similaire au template de la page. Les données de la recette s’afficheront donc de la même manière qu’une simple page, pas très sexy. Et comment feriez-vous par exemple pour mettre en avant les ingrédients ? Ou classifier les recettes afin de les filtrer ?
La réponse à cette question est l’utilisation d’un type de contenu personnalisé (ou Custom Post Type, en anglais).
Grâce aux types de contenu personnalisés, nous pouvons répondre à des besoins spécifiques, tels que rajouter : 

  • des produits pour un site e-commerce ; 

  • des événements pour un site d'événements ; 

  • et des recettes pour un site de cuisine. 

Les types de contenu personnalisés ont des champs, taxonomies et options de publication qui leur sont propres.

Les types de contenu personnalisés peuvent être créés avec le plugin Custom Post Type UI, ou via du code PHP  sous WordPress.

Comment choisir entre utiliser le plugin ou tout coder à la main, me demanderez-vous ? Voyons ensemble !

CPT UI

Code PHP

Interface graphique facile à utiliser pour créer des types de contenu personnalisés sans avoir besoin de connaissances en programmation. 

Requiert une connaissance en code PHP pour créer et configurer les types de contenu personnalisés.

Permet de créer rapidement des types de contenu personnalisés avec des options de personnalisation et de configuration, telles que les libellés, les fonctionnalités, les icônes, etc.

Le processus peut être plus lent et plus complexe que d'utiliser un plugin.  

Le plugin est régulièrement mis à jour et dispose d'une communauté active.

Contrôle total sur le code, ce qui peut améliorer les performances du site. 

Les fonctionnalités avancées peuvent nécessiter des connaissances en code.  

Personnalisation complète des types de contenu personnalisés avec des fonctionnalités avancées.

Peut ralentir le site si trop de types de contenu personnalisés sont créés.  

Fonctionne même si le plugin Custom Post Type UI est désactivé.

 

Les erreurs de code peuvent avoir des conséquences importantes sur le site.

Alors, partons d’abord sur la création d’un CPT avec le plugin CPT UI.

Créez un type de contenu avec Custom Post Type UI

L'extension Custom Post Type UI (CPT UI) pour WordPress permet aux utilisateurs de créer et de gérer facilement des types de contenu personnalisés directement depuis l'interface d'administration de WordPress, sans avoir besoin de coder ou de modifier le code source du thème.

Il est temps de voir ensemble comment créer un type de contenu via ce plugin. Je vous invite donc à télécharger et à installer l’extension Custom Post Type UI. N’oubliez pas de l’activer !

Après l’installation, vous verrez un tout nouveau menu “CPT UI” apparaître  dans l’administration. Cliquez sur le sous-menu “Ajouter/Modifier des types de publication” afin de créer notre tout premier type de contenu personnalisé !

La page de configuration nous demande de renseigner un slug, un libellé pour le pluriel et un pour le singulier.
Ajout d’un type de contenu via CPTUI

Renseignez le slug “recettes” avec son label au pluriel puis celui au singulier, et cliquez sur “Ajouter un type de publication”.

Tout en restant sur la même page, cliquez sur l’onglet “Modifier les types de contenu” pour modifier le type de contenu Recettes que nous venons de créer à l’instant.

Via le nouveau formulaire, vous pourrez modifier l’icône existante, les labels, et modifier quelques options afin de personnaliser au maximum le nouveau type de contenu.

Par exemple, dans la section "Supports", vous pouvez sélectionner les champs par défaut pour votre nouveau type de contenu.

Ou dans la section "Taxonomies", vous pouvez définir des taxonomies personnalisées pour votre type de contenu personnalisé, telles que des catégories ou des étiquettes.

Nous venons de renseigner le slug recettes, avec les libellés pour le singulier et le pluriel.
Édition d’un type de contenu via CPTUI

Et voilà, vous venez de créer votre tout premier type de contenu avec CPT UI !
Le type de contenu personnalisé “Recettes” est dorénavant accessible depuis le menu principal de l’interface d’administration WordPress.

Depuis notre nouvelle CPT, nous pouvons ajouter et administrer nos contenus Recette.
Ajout d’une recette

Vous pouvez commencer à ajouter du contenu en cliquant sur le sous-menu "Ajouter" de “Recettes”. Vous pouvez également afficher et gérer votre contenu personnalisé dans la section correspondante de l'interface d'administration de WordPress.

Développez un type de contenu via le code

Pour développer un nouveau type de contenu personnalisé sous WordPress, il faut utiliser la fonction register_post_type  . Créons un type de contenu personnalisé pour nos ingrédients depuis notre thème directement, sans passer par un plugin externe.

Nous allons d’abord créer une fonction via le hook init  pour appeler register_post_type()  ; bien entendu, tout ceci se passe dans le fichier functions.php  du thème CookInFamily.

Nous allons pouvoir (comme avec le plugin CPT UI) définir une icône, les labels, la position du lien de l’entrée du menu de l’administration, les champs par défaut à utiliser, etc. Voici le code que nous allons utiliser :

function cookinfamily_register_custom_post_types() {    $labels_ingredient = array(    'menu_name'         => __('Ingrédients', 'cookinfamily'),    'name_admin_bar'    => __('Ingrédient', 'cookinfamily'),       'add_new_item'      => __('Ajouter un nouvel ingrédient', 'cookinfamily'),       'new_item'          => __('Nouvel ingrédient', 'cookinfamily'),       'edit_item'         => __('Modifier l\'ingrédient', 'cookinfamily'),    ); $args_ingredient = array(    'label'             => __('Ingrédients', 'cookinfamily'),    'description'       => __('Ingrédients', 'cookinfamily'),    'labels'            => $labels_ingredient,    'supports'          => array('title', 'thumbnail', 'excerpt', 'editor'),    'hierarchical'      => false,    'public'            => true,    'show_ui'           => true,    'show_in_menu'      => true,    'menu_position'     => 40,    'show_in_admin_bar' => true,    'show_in_nav_menus' => true,    'can_export'        => true,    'has_archive'       => true,    'exclude_from_search'   => false,    'publicly_queryable' => true,    'capability_type'   => 'post',    'menu_icon'  => 'dashicons-drumstick',    ); register_post_type('cif_ingredient', $args_ingredient);    }

add_action('init', 'cookinfamily_register_custom_post_types', 11);

Vous remarquerez que nous avons une partie labels  dans les arguments que nous allons utiliser. Celle-ci permet de personnaliser les libellés et les textes associés à un type de contenu personnalisé. C’est un tableau qui contient plusieurs clés qui définissent différents libellés pour le type de contenu personnalisé. Voyons rapidement chaque clé :

  • menu_name  : le nom du menu affiché dans le panneau d'administration pour le type de contenu personnalisé ; 

  • name_admin_bar  : le nom affiché dans la barre d'outils d'administration lorsque vous visualisez un article de ce type de contenu personnalisé ;

  • add_new_item  : le texte qui s'affiche dans le bouton "Ajouter" lorsque vous ajoutez un nouvel élément de ce type de contenu personnalisé ;

  • new_item  : le texte qui s'affiche pour un nouvel élément de ce type de contenu personnalisé ;

  • edit_item  : le texte qui s'affiche lorsque vous modifiez un élément de ce type de contenu personnalisé.  

En plus des arguments labels, le code fourni définit également plusieurs autres arguments pour le type de contenu. Ces arguments définissent des fonctionnalités supplémentaires pour le type de contenu personnalisé, telles que les capacités de support, la hiérarchie, la visibilité, la position de menu, ou l'icône de menu. En utilisant ces arguments, vous pouvez personnaliser complètement le type de contenu personnalisé pour répondre aux besoins de votre site WordPress.

Une fois que vous aurez enregistré le fichier, le type de contenu personnalisé sera disponible dans l'interface d'administration de WordPress, avec les champs que vous aurez définis dans votre code PHP.

Depuis notre nouvelle CPT, nous pouvons ajouter et administrer nos contenus Ingrédients
Affichage d’un nouveau type de contenu personnalisé

Vous pourrez ajouter du contenu pour votre type de contenu personnalisé en utilisant le formulaire "Ajouter" de l'interface d'administration. Si vous ne vous souvenez plus comment faire, vous pouvez revenir sur le chapitre Créez des articles catégorisés du cours précédent.

Mais alors, quel est l’intérêt de développer soi-même quelque chose qu’une extension peut faire automatiquement pour nous ?

Il y a plusieurs avantages à développer vos propres types de contenu plutôt que de passer par une extension.

Tout d’abord, vous allez avoir un contrôle total sur le code lorsque vous créez un type de contenu personnalisé avec du code PHP. Vous allez pouvoir personnaliser chaque aspect du type de contenu personnalisé selon vos besoins. Vous pourrez créer des champs personnalisés, définir des relations entre différents types de contenus, ajouter des fonctionnalités avancées, un système d’export, etc.

D’un point de vue performance, les types de contenu personnalisés créés avec du code PHP ont tendance à être plus performants que ceux créés avec l'extension Custom Post Type UI. Cela est dû au fait que l'extension doit charger des fichiers supplémentaires pour fonctionner, ce qui peut ralentir votre site.

Vous allez acquérir une meilleure flexibilité grâce à un type de contenu personnalisé avec du code PHP. Vous allez pouvoir facilement ajouter des fonctionnalités supplémentaires telles que des shortcodes, des widgets, des blocs Gutenberg, etc. Vous pouvez également créer des modèles de pages personnalisés pour afficher votre contenu.

Enfin, nous avons l’avantage de la portabilité ! Lorsque vous créez un type de contenu personnalisé avec du code PHP, vous pouvez facilement le transférer vers un autre site WordPress en copiant simplement le code PHP correspondant, ou en activant le thème sur un autre WordPress. En revanche, l'extension Custom Post Type UI doit être installée sur chaque site WordPress où vous souhaitez utiliser le type de contenu personnalisé.

En résumé

  • WordPress propose par défaut différents types de contenus pour gérer les données.

  • Il existe la possibilité de créer des types de contenu personnalisés pour nous permettre de gérer les données comme nous le souhaitons.

  • Le plugin CPT UI peut rapidement générer un type de contenu personnalisé.

  • Développer un type de contenu personnalisé sans passer par un plugin comporte plusieurs avantages pour votre site WordPress.

  • L’utilisation de code PHP ou d’un plugin sous WordPress reflète vos compétences et besoins pour votre projet.       

Bon, nous avons une page d’administration et des types de contenu personnalisés. Comment aller plus loin en ajoutant des champs personnalisés pour ces types de contenus ? C’est ce que nous allons voir dans la prochaine partie.

Exemple de certificat de réussite
Exemple de certificat de réussite