{"id":234213,"date":"2023-02-14T14:03:00","date_gmt":"2023-02-14T11:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234213"},"modified":"2023-02-20T18:46:59","modified_gmt":"2023-02-20T15:46:59","slug":"comment-creer-un-bloc-wordpress-gutenberg-personnalise-serie-de-didacticiels","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/comment-creer-un-bloc-wordpress-gutenberg-personnalise-serie-de-didacticiels\/","title":{"rendered":"Comment cr\u00e9er un bloc WordPress Gutenberg personnalis\u00e9 : s\u00e9rie de didacticiels"},"content":{"rendered":"\n<p>Il s&rsquo;agit d&rsquo;une s\u00e9rie de tutoriels d\u00e9taill\u00e9s expliquant comment cr\u00e9er vos propres blocs WordPress Gutenberg personnalis\u00e9s. C&rsquo;est pour vous qui \u00eates un d\u00e9veloppeur de th\u00e8mes ou de plugins et qui \u00eates, comme moi, frustr\u00e9 par le manque de documentation. La plupart de ce que j&rsquo;ai appris en mati\u00e8re de d\u00e9veloppement dans le nouveau monde Javascript de WordPress se fait par essais et erreurs, en exp\u00e9rimentant vigoureusement et en lisant tout ce que j&rsquo;ai rencontr\u00e9. Et donc j&rsquo;ai pens\u00e9 que je pourrais rassembler tout ce que j&rsquo;ai appris jusqu&rsquo;\u00e0 pr\u00e9sent dans un grand tutoriel.<\/p>\n<p>A travers 10 parties ce tutoriel a pour objectif de vous apprendre \u00e0 \u00e9crire vos propres blocs personnalis\u00e9s. Peu importe \u00e0 quoi ils servent, en commen\u00e7ant par les bases et en passant \u00e0 des fonctionnalit\u00e9s plus complexes. Je vous recommande de tout \u00e9crire vous-m\u00eame au lieu de copier-coller le code. C&rsquo;est la meilleure fa\u00e7on d&rsquo;apprendre! Suivez la s\u00e9rie de l&rsquo;\u00e9tape 1 \u00e0 10 car nous allons construire au-dessus du bloc au fur et \u00e0 mesure que nous avancerons.<\/p>\n<h2>Ce que vous devez savoir avant de commencer<\/h2>\n<p>Avant de plonger dans les marches; une clause de non-responsabilit\u00e9. Il y a quelques choses que vous devriez d\u00e9j\u00e0 savoir \u00e0 l&rsquo;avance sur ce qu&rsquo;est cette s\u00e9rie et ce qu&rsquo;elle n&rsquo;est pas.<\/p>\n<h3>Les langages de programmation<\/h3>\n<p>Vous devez conna\u00eetre Javascript &#8211; c&rsquo;est une donn\u00e9e. Pas besoin d&rsquo;\u00eatre un expert, mais ce n&rsquo;est pas un tutoriel Javascript. Comme pour la version ECMAScript Javascript\u00a0; vous pouvez \u00e9crire dans ES5 et ne pas vous soucier de compiler votre code avec Babel et d&rsquo;autres choses. Cependant, cette s\u00e9rie est \u00e9crite avec le code ES6 et ESNext. Ne vous inqui\u00e9tez pas &#8211; l&rsquo;\u00e9tape 1 est d\u00e9di\u00e9e \u00e0 vous guider dans la configuration d&rsquo;un environnement de d\u00e9veloppement pr\u00eat \u00e0 coder dans ESNext avec toutes leurs nouvelles syntaxes.<\/p>\n<p>Comme vous le savez probablement, Gutenberg est bas\u00e9 sur <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React JS<\/a>. Cette s\u00e9rie n&rsquo;est pas non plus un didacticiel React et suppose une connaissance de base de React et de son fonctionnement. Encore une fois, nul besoin d&rsquo;\u00eatre un expert. Comme React existe depuis un certain temps, il existe de nombreux bons tutoriels, documentations et ressources d\u00e9di\u00e9es \u00e0 vous apprendre React. Je recommande donc de les rechercher en premier.<\/p>\n<p>Cette s\u00e9rie est ax\u00e9e sur l&rsquo;apprentissage des parties Javascript, React et JSX et ne concerne pas le style \/ CSS. Comme l&rsquo;objectif de votre bloc peut \u00eatre radicalement diff\u00e9rent, j&rsquo;ai choisi de ne pas me concentrer sur le style et de ne fournir que du HTML tr\u00e8s basique. C&rsquo;est \u00e0 vous d&rsquo;ajouter votre style et la sortie HTML n\u00e9cessaire pour que votre bloc s&rsquo;affiche exactement comme vous en avez besoin.<\/p>\n<h3>L&rsquo;\u00e2ge de ce tutoriel<\/h3>\n<p>Et enfin, veuillez consid\u00e9rer le moment o\u00f9 cette s\u00e9rie a \u00e9t\u00e9 \u00e9crite. Gutenberg est encore assez nouveau mais change radicalement et s&rsquo;am\u00e9liore.<\/p>\n<p>Si vous trouvez cela dans un avenir lointain, certains codes pourraient \u00eatre obsol\u00e8tes ou remplac\u00e9s par de meilleures m\u00e9thodes. Ce guide a \u00e9t\u00e9 \u00e9crit et finalis\u00e9 dans WordPress version 5.2.3 (fin d&rsquo;ann\u00e9e 2019).<\/p>\n<h2>Ce que vous apprendrez<\/h2>\n<p>Dans les premi\u00e8res parties, nous nous concentrons sur les bases. Nous avons mis en place un environnement de d\u00e9veloppement avec une compilation en cours de notre code. Et les bases de l&rsquo;enregistrement d&rsquo;un bloc et des parties PHP n\u00e9cessaires. Nous d\u00e9couvrirons l&rsquo;immense biblioth\u00e8que de composants et de m\u00e9thodes disponibles sur WordPress Gutenberg.<\/p>\n<p>Ensuite, nous apprendrons comment ajouter des sections et des param\u00e8tres pour notre bloc dans la barre lat\u00e9rale de l&rsquo;\u00e9diteur (inspecteur) ainsi que la personnalisation de la barre d&rsquo;outils. En cours de route, nous aborderons de nombreux types d&rsquo;entr\u00e9e diff\u00e9rents et comment utiliser le composant de Gutenberg pour ceux-ci. Et bien s\u00fbr, nous apprendrons comment enregistrer, mettre \u00e0 jour et sortir les informations enregistr\u00e9es dans notre bloc &#8211; et comment cela fonctionne dans les coulisses.<\/p>\n<p>\u00c0 la fin, nous verrons des choses plus avanc\u00e9es comme les blocs dynamiques et comment utiliser PHP pour rendre la sortie du bloc. Et enfin comment faire des requ\u00eates de publication dans l&rsquo;\u00e9diteur &#8211; permettant \u00e0 l&rsquo;utilisateur de s\u00e9lectionner une publication dans une liste pour le rendu.<\/p>\n<h3>Table des mati\u00e8res<\/h3>\n<p>Vous trouverez ci-dessous des liens directs vers chaque partie de la s\u00e9rie.<\/p>\n<ul>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-gutenberg-blocks-part-1-setting-up-the-development-environment\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 1: Configuration de l&rsquo;environnement de d\u00e9veloppement<\/a><\/strong><br \/>\nDans la premi\u00e8re partie de cette s\u00e9rie de didacticiels sur la cr\u00e9ation de blocs Gutenberg personnalis\u00e9s, nous devons configurer notre environnement de d\u00e9veloppement. Nous avons besoin d&rsquo;un endroit o\u00f9 nous pouvons \u00e9crire notre code dans les syntaxes ES6\/ESNext et le compiler \u00e0 la vol\u00e9e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-gutenberg-blocks-part-2-registering-a-block\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 2: Enregistrement d&rsquo;un bloc<\/a><br \/>\nDans cette partie, nous allons \u00e9crire du Javascript pour enregistrer et configurer notre bloc personnalis\u00e9. \u00c0 la fin, nous enregistrerons le script avec PHP et cr\u00e9erons le code PHP n\u00e9cessaire pour que WordPress le reconnaisse comme un nouveau bloc.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-gutenberg-blocks-part-3-props-and-wordpress-components\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 3: Props et composants WordPress<\/a><\/strong><br \/>\nDans l&rsquo;\u00e9tape pr\u00e9c\u00e9dente, nous avons appris comment enregistrer un bloc personnalis\u00e9, \u00e0 la fois en Javascript et en PHP. Dans cette \u00e9tape, nous apprendrons \u00e0 utiliser les composants de WordPress pour ajouter diff\u00e9rents types de champs et de param\u00e8tres.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-gutenberg-blocks-part-4-attributes\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 4: Attributs<\/a><\/strong><br \/>\nDans cette partie, nous verrons comment d\u00e9finir des attributs, r\u00e9cup\u00e9rer leurs valeurs et les mettre \u00e0 jour. Avec les attributs, nous pouvons accepter les entr\u00e9es de l&rsquo;\u00e9diteur, les enregistrer et les sortir comme bon nous semble.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-gutenberg-blocks-part-5-adding-inspector-settings\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 5: Ajouter des param\u00e8tres d&rsquo;inspecteur<\/a><\/strong><br \/>\nDans cette \u00e9tape, nous allons nous concentrer sur ce que WordPress (au moins dans le code) appelle l&rsquo;inspecteur \u2013 la barre lat\u00e9rale sur le c\u00f4t\u00e9 droit de l&rsquo;\u00e9diteur. Nous aborderons quelques nouveaux composants qu&rsquo;il est logique de placer dans la barre lat\u00e9rale et comment les g\u00e9rer.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-wordpress-gutenberg-blocks-part-6-adding-toolbars\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 6: Ajout de barres d&rsquo;outils<\/a><\/strong><br \/>\nDans cet article, nous apprendrons comment ajouter les barres d&rsquo;outils de WordPress \u00e0 notre bloc, c&rsquo;est-\u00e0-dire pour l&rsquo;alignement et l&rsquo;alignement des blocs. Nous apprendrons \u00e9galement \u00e0 ajouter nos propres barres d&rsquo;outils avec nos propres boutons pour effectuer des actions personnalis\u00e9es.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/awhitepixel.com\/blog\/how-to-create-custom-wordpress-gutenberg-blocks-part-7-creating-your-own-components\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Partie 7: Cr\u00e9ation de vos propres composants<\/a><\/strong><br \/>\nJusqu&rsquo;\u00e0 pr\u00e9sent, dans cette s\u00e9rie de didacticiels, nous avons \u00e9crit tout le code \u00e0 l&rsquo;int\u00e9rieur<code>registerBlockType()<\/code>de la<code>edit<\/code>fonction de. Il est tout \u00e0 fait possible, et souvent recommand\u00e9, d&rsquo;affecter \u00e0 la place la modification \u00e0 un composant distinct. Ce faisant, nous pouvons utiliser des fonctionnalit\u00e9s telles que l&rsquo;\u00e9tat des composants et les m\u00e9thodes de cycle de vie.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/creer-un-bloc-gutenberg-personnalise-partie-8-prise-en-charge-de-la-traduction\/\" title=\"Partie 8: Traduction de votre bloc\">Partie 8: Traduction de votre bloc<\/a><\/strong><br \/>\nDans cette partie, nous allons nous concentrer sur la mani\u00e8re de traduire les textes et les valeurs de notre bloc. Nous utilisons WP-CLI pour g\u00e9n\u00e9rer les fichiers n\u00e9cessaires afin que Gutenberg puisse charger nos traductions lors du changement de langue WordPress.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/creer-un-bloc-gutenberg-personnalise-partie-9-blocs-dynamiques-et-rendu-php\/\" title=\"Partie 9: Blocs dynamiques\">Partie 9: Blocs dynamiques<\/a><\/strong><br \/>\nJusqu&rsquo;\u00e0 pr\u00e9sent, nous avons rendu la sortie du bloc en Javascript. Cependant, avec un contenu dynamique comme des publications r\u00e9centes ou l&rsquo;affichage d&rsquo;une publication, nous pouvons \u00eatre amen\u00e9s \u00e0 rendre la sortie du bloc en PHP.<\/p>\n<\/li>\n<li>\n<p><strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/creer-un-bloc-gutenberg-personnalise-partie-10-recuperation-des-publications-et-des-composants-dordre-superieur\/\" title=\"Partie 10: R\u00e9cup\u00e9rer les publications et les composants d&#039;ordre sup\u00e9rieur\">Partie 10: R\u00e9cup\u00e9rer les publications et les composants d&rsquo;ordre sup\u00e9rieur<\/a><\/strong><br \/>\nDans la derni\u00e8re partie, nous apprendrons comment utiliser les composants d&rsquo;ordre sup\u00e9rieur, et donc comment effectuer une requ\u00eate de publication depuis l&rsquo;\u00e9diteur et fournir une m\u00e9thode pour s\u00e9lectionner les publications.<\/p>\n<\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un tutoriel complet et d\u00e9taill\u00e9 en 10 \u00e9tapes pour les d\u00e9butants \u00e0 Gutenberg sur la fa\u00e7on de cr\u00e9er votre propre bloc WordPress Gutenberg personnalis\u00e9.<\/p>\n","protected":false},"author":1,"featured_media":153476,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[915,893,893,717,717,832,936,936,915,1110,801,801,811,811,832,841,841,862,862],"tags":[1167],"class_list":["post-234213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-gutenberg-3","category-n-a","category-php-3","category-plugins-2","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234213"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234213\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/153476"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}