Créer manuellement des types de publication personnalisés WordPress

Publié: 2020-12-15

Dans notre premier article sur les types de publication personnalisée WordPress, nous avons expliqué comment vous pouvez facilement créer vos propres types de publication personnalisés à l'aide de l'excellent plugin Custom Post Type UI. Dans ce deuxième article, nous verrons comment vous pouvez le faire manuellement (c'est-à-dire en codant). Alors, pourquoi s'il est si facile de créer un type de publication personnalisé à l'aide d'un plugin, voudriez-vous le faire longtemps?

L'utilisation d'un plugin pour ajouter des fonctionnalités personnalisées peut très bien fonctionner (et la vaste bibliothèque de plugins qui aident à étendre les fonctionnalités est l'une des raisons pour lesquelles WordPress est si populaire). Cependant, des problèmes peuvent survenir si et quand un plugin devient non pris en charge (car l'auteur du plugin choisit de ne pas continuer à le mettre à jour et à le développer). Si cela se produit, vous pourriez constater que la fonctionnalité fournie par le plugin ne fonctionne plus, ce qui pourrait être un problème sérieux si votre site Web est construit autour d'une fonctionnalité particulière fournie par un plugin.

En tant que tel, si vous pouvez coder directement les fonctionnalités plutôt que de vous fier à un plugin, c'est une bonne option à considérer.

Aujourd'hui, nous vous expliquerons comment créer votre propre type de message personnalisé sans utiliser de plugin. Nous allons également démontrer une configuration de base comme la définition des étiquettes CPT (Custom Post Type) ainsi que des choses comme l'activation des images en vedette et plus encore. Nous ajouterons ensuite une taxonomie personnalisée et enfin nous verrons comment vous pouvez afficher votre contenu Custom Post Type dans l'interface de votre site Web.

Créer le type de publication personnalisé

Si vous avez suivi notre tutoriel précédent et que le plugin CPT UI est toujours installé, veuillez le désactiver afin d'éviter toute confusion lors de la création manuelle de votre nouveau CPT.

Comme précédemment, nous utiliserons les recettes comme objectif pour notre nouveau type de message personnalisé. Pour commencer, la première chose que nous devons faire est de créer le type de message personnalisé en insérant le bon morceau de code dans notre fichier functions.php .

Configuration de base

Pour l'instant, nous allons créer nos types de publication avec un minimum d'arguments en utilisant la fonction register_post_type fournie par WordPress.

 register_post_type( string $post_type, array|string $args = array() )

La structure de cette fonction requiert deux paramètres. La clé de type de publication qui ne doit contenir que des caractères alphanumériques minuscules, des tirets et des traits de soulignement et un deuxième paramètre facultatif, le $args pour des arguments supplémentaires. Nous nous concentrerons uniquement sur certains de ces arguments dans cet article, mais si vous souhaitez en expérimenter davantage, vous pouvez trouver la liste complète des arguments disponibles dans la documentation WordPress associée.

Pour les besoins de cet article, nous utiliserons le code ci-dessous.

 function recipes_post_type() { register_post_type( 'recipes', array( 'labels' => array( 'name' => __( 'Recipes' ), 'singular_name' => __( 'Recipe' ) ), 'public' => true, 'show_in_rest' => true, 'supports' => array('title', 'editor', 'thumbnail') ) ); } add_action( 'init', 'recipes_post_type' );

Si vous suivez, lancez votre éditeur de texte préféré et ajoutez ce code à votre fichier functions.php .

Vous verrez dans ce code que nous avons utilisé le tableau 'labels' pour définir les noms singulier et pluriel de notre type de publication, l'argument show_in_rest pour activer l'éditeur Gutenberg pour les publications de recettes ainsi que l'argument public .

L'argument public fait en fait trois choses différentes. Il affiche le menu de publication personnalisé de l'administrateur, il inclut le menu de publication personnalisé dans les résultats de la recherche sur le site Web et affiche également le menu de publication personnalisé dans la zone du menu d'administration de WordPress. Ces options peuvent être modifiées séparément à l'aide des show_in_nav_menus , exclude_from_search et show_ui respectivement. Les valeurs par défaut show_in_nav_menus et show_ui héritent de la valeur public mais la valeur par défaut exclude_from_search est l'opposé de la valeur public .

Nous avons également utilisé l'argument supports qui définit les fonctionnalités prises en charge par une publication personnalisée. Pour l'instant, nous n'activerons que 'titre', 'éditeur' et 'vignette' (d'autres options seront présentées dans de futurs articles).

Avec cet extrait de code ajouté à notre fichier functions.php et enregistré (sauvegardez toujours votre site Web avant d'entreprendre un travail comme celui-ci !), Vous verrez maintenant un tout nouvel élément de menu dans l'administrateur WordPress (dans ce cas, "Recettes").

Ensuite, si nous nous dirigeons vers Apparence> Menus, nous pouvons confirmer que les recettes ont été ajoutées en option. Cela confirme que les choses fonctionnent comme elles le devraient.

Remarque : Si vous accédez à la zone de menu et que vous ne voyez pas l'élément de menu "Recettes", il est possible qu'il n'ait pas été coché dans les options de l'écran. Pour ce faire, rendez-vous tout en haut de la page et ouvrez la barre d'options de l'écran et assurez-vous que votre nouveau type de publication personnalisé (Recettes dans cet exemple) a été coché.

Ajoutez votre taxonomie pour votre type de publication personnalisé

Des taxonomies WordPress existent pour regrouper des contenus similaires. À ce stade, nous avons nos publications personnalisées de "recettes", mais nous n'avons pas la possibilité de les classer comme nous le souhaitons. Il serait donc utile de créer une catégorie distincte pour nos recettes. Regroupons par exemple les recettes selon le type de cuisine auquel elles appartiennent.

Pour ce faire, nous devons enregistrer une nouvelle taxonomie "cuisines", puis la lier au type de publication "recettes".

Pour ajouter la taxonomie, nous utilisons la fonction register_taxonomy() fournie par WordPress (voir une liste d'arguments ici).

 register_taxonomy( string $taxonomy, $object_type, $args )

Les arguments obligatoires sont $taxonomy , qui est la clé de la taxonomie, et $object_type , qui est le type d'objet ou le tableau de types d'objets auquel la taxonomie doit être associée, dans notre cas, 'recipes'. Dans le paramètre $arg , nous inclurons également les valeurs nécessaires pour étiqueter nos instances d'administration de notre taxonomie.

 function create_recipes_taxonomy() { register_taxonomy('cuisines','recipes',array( 'hierarchical' => false, 'labels' => array( 'name' => _x( 'Cuisines', 'taxonomy general name' ), 'singular_name' => _x( 'Cuisine', 'taxonomy singular name' ), 'menu_name' => __( 'Cuisines' ), 'all_items' => __( 'All Cuisines' ), 'edit_item' => __( 'Edit Cuisines' ), 'update_item' => __( 'Update Cuisines' ), 'add_new_item' => __( 'Add Cuisines' ), 'new_item_name' => __( 'New Cuisines' ), ), 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, )); } add_action( 'init', 'create_recipes_taxonomy', 0 );

Le booléen show_admin_column définit si la taxonomie sera visible ou non sous forme de colonne dans le tableau de la liste d'administration des recettes.

Maintenant, si vous revenez à votre administrateur WordPress et que vous l'actualisez, vous devriez voir la taxonomie "Cuisines" dans le menu Recettes.

Vous devriez également voir une colonne "Cuisines" dans le tableau Recettes :

Affichage de votre contenu de type de publication personnalisé sur le frontend

À ce stade, vous devriez pouvoir inclure vos publications personnalisées dans votre menu ainsi que les taxonomies personnalisées que vous avez créées. Pour le démontrer, nous avons ajouté deux Cuisines 'Méditerranéenne' et 'Mexicaine' dans notre menu Taxonomie des Cuisines. Celles-ci apparaissent alors sous forme d'options de menu dans notre menu WordPress nous permettant de créer un menu Recettes comme celui présenté ci-dessous.

Si vous avez créé une publication Recette et que vous l'avez associée à une catégorie Cuisine, vous devriez maintenant les voir apparaître lorsque vous sélectionnez la cuisine associée dans le menu.

Remarque : si vous essayez d'afficher une publication de recette dans le front-end, vous pourriez obtenir un « 404 introuvable ». Cela peut arriver parce que le cache Permalink doit être vidé. Cela est facile à faire. Allez simplement dans Paramètres> Permaliens et ré-enregistrez.

Nous allons maintenant créer un autre élément de menu pour "Toutes les recettes" en utilisant un code personnalisé afin d'afficher une archive de toutes nos recettes.

Avant de continuer, nous devons nous assurer que notre argument d'archive de publications personnalisées est défini sur true. Revenez à votre code dans functions.php où vous enregistrez le type de recettes et ajoutez 'has_archive' => true, dans le tableau des arguments.

 function recipes_post_type() { register_post_type( 'recipes', array( 'labels' => array( 'name' => __( 'Recipes' ), 'singular_name' => __( 'Recipe' ) ), 'public' => true, 'show_in_rest' => true, 'supports' => array('title', 'editor', 'thumbnail'), 'has_archive' => true, ) ); } add_action( 'init', 'recipes_post_type' );

Après cela, allez dans Paramètres> Permaliens et réenregistrez pour vous assurer que vous n'obtenez pas d'erreur 404 (comme nous l'avons mentionné précédemment).

Maintenant, dans la page de construction du menu, ajoutez le lien personnalisé pour la page des archives. Le texte du lien pourrait être "Toutes les recettes".

L'URL doit être "/?post_type=recipes", si vos permaliens sont définis sur "Plain" et '/recipes/' si les permaliens sont définis sur "Post name".

Ajoutez l'élément de menu et accédez à votre site Web et cliquez sur son lien. Vous devriez maintenant voir toutes les publications de recettes dans une vue d'archive.

Lectures complémentaires

  • Créer des types de publication personnalisés WordPress à l'aide d'un plugin
  • Types de publication personnalisés WordPress – Aller plus loin
  • Créez des types de publication personnalisés WordPress en utilisant votre propre plugin !

Conclusion

La façon d'aborder les types de publication personnalisés que nous avons examinés dans cet article peut sembler déroutante au premier abord (surtout si on la compare à la facilité de créer des types de publication personnalisés à l'aide d'un plugin). Cependant, si vous êtes prêt à persévérer, coder vos propres types de publication personnalisés a ses avantages, à savoir que vous ne dépendez pas d'un plugin si jamais ce plugin cesse de fonctionner ou devient non pris en charge.