{"id":72560,"date":"2023-09-04T15:30:02","date_gmt":"2023-09-04T14:30:02","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=72560&#038;preview=true&#038;preview_id=72560"},"modified":"2023-09-11T13:51:51","modified_gmt":"2023-09-11T12:51:51","slug":"modeles-blocs-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/","title":{"rendered":"Comment cr\u00e9er des mod\u00e8les de blocs WordPress"},"content":{"rendered":"<p>\u00c0 l&rsquo;\u00e8re de <a href=\"https:\/\/kinsta.com\/fr\/blog\/editeur-wordpress-gutenberg\/\">Gutenberg<\/a>, le processus de conception n&rsquo;est pas strictement li\u00e9 aux <a href=\"https:\/\/kinsta.com\/fr\/blog\/theme-wordpress-plus-rapide\/\">th\u00e8mes WordPress<\/a>. Hors de la bo\u00eete, le CMS fournit aux utilisateurs tous les outils de conception n\u00e9cessaires pour construire une grande mise en page de site et le th\u00e8me vise \u00e0 \u00eatre quelque chose qui ajoute encore plus d&rsquo;outils de construction et de conception.<\/p>\n<p>Les mod\u00e8les de blocs sont une fonctionnalit\u00e9 qui d\u00e9bloque encore plus de pouvoirs dans la construction de sites. Selon le <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/\" target=\"_blank\" rel=\"noopener noreferrer\">manuel de l&rsquo;\u00e9diteur de blocs<\/a>:<\/p>\n<blockquote><p><em>Un mod\u00e8le de bloc est d\u00e9fini comme une liste d&rsquo;\u00e9l\u00e9ments de bloc. Ces blocs peuvent avoir des attributs pr\u00e9d\u00e9finis, un contenu fictif et \u00eatre statiques ou dynamiques. Les mod\u00e8les de blocs permettent de sp\u00e9cifier un \u00e9tat initial par d\u00e9faut pour une session d&rsquo;\u00e9dition.<\/em><\/p><\/blockquote>\n<p>En d&rsquo;autres termes, les mod\u00e8les de blocs sont des collections pr\u00e9-construites de blocs utilis\u00e9es pour d\u00e9finir un \u00e9tat par d\u00e9faut de fa\u00e7on dynamique sur le client.<\/p>\n<p><strong>\ud83d\udc49 Les mod\u00e8les de blocs sont diff\u00e9rents des fichiers de mod\u00e8le.<\/strong><\/p>\n<p>Les fichiers de mod\u00e8les sont des fichiers PHP tels que <strong>index.php<\/strong>, <strong>page.php<\/strong> et <strong>single.php<\/strong>, et fonctionnent de la m\u00eame mani\u00e8re avec les th\u00e8mes classiques et les th\u00e8mes bas\u00e9s sur des blocs, selon la <a href=\"https:\/\/kinsta.com\/fr\/blog\/hierarchie-des-modeles-wordpress\/\">hi\u00e9rarchie des mod\u00e8les de WordPress<\/a>. Dans les th\u00e8mes classiques, ces fichiers sont \u00e9crits en PHP et en HTML. Dans les th\u00e8mes bas\u00e9s sur des blocs, ils sont enti\u00e8rement constitu\u00e9s de blocs.<\/p>\n<p><strong>\ud83d\udc49 Les mod\u00e8les de blocs sont diff\u00e9rents des compositions de blocs.<\/strong><\/p>\n<p>Les <a href=\"https:\/\/kinsta.com\/fr\/blog\/construire-compositions-blocs-wordpress\/\">compositions de blocs<\/a> doivent \u00eatre ajout\u00e9es manuellement \u00e0 vos pages alors que les mod\u00e8les de blocs fournissent automatiquement la mise en page initiale et les valeurs par d\u00e9faut lorsque vous ou les membres de votre \u00e9quipe cr\u00e9ez un nouvel article.<\/p>\n<p>Vous pouvez \u00e9galement lier des mod\u00e8les de blocs sp\u00e9cifiques \u00e0 vos types de publications personnalis\u00e9s et verrouiller certains blocs ou fonctionnalit\u00e9s pour forcer les utilisateurs \u00e0 utiliser vos valeurs par d\u00e9faut ou pr\u00e9venir les erreurs.<\/p>\n<p>Vous avez plusieurs fa\u00e7ons de cr\u00e9er des mod\u00e8les de blocs. Vous pouvez <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/\" target=\"_blank\" rel=\"noopener noreferrer\">utiliser l&rsquo;API des blocs<\/a> pour d\u00e9clarer un tableau de types de blocs via PHP, ou vous pouvez cr\u00e9er un type de bloc personnalis\u00e9 \u00e0 l&rsquo;aide du composant <code>InnerBlocks<\/code>.<\/p>\n<p>Allons-y !<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Comment cr\u00e9er un mod\u00e8le de bloc en PHP<\/h2>\n<p>Si vous \u00eates un d\u00e9veloppeur de la vieille \u00e9cole, vous pouvez d\u00e9finir un mod\u00e8le de bloc personnalis\u00e9 \u00e0 l&rsquo;aide d&rsquo;une extension ou du fichier <a href=\"https:\/\/kinsta.com\/fr\/blog\/wordpress-functions-php\/\">functions.php<\/a> de votre th\u00e8me. Si vous d\u00e9cidez d&rsquo;utiliser une extension, lancez votre <a href=\"https:\/\/kinsta.com\/fr\/blog\/php-editeurs\/\">\u00e9diteur de code<\/a> pr\u00e9f\u00e9r\u00e9, cr\u00e9ez un nouveau fichier PHP et ajoutez le code suivant :<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/*\n * Plugin Name:       My Block Templates\n * Plugin URI:        https:\/\/example.com\/\n * Description:       An example plugin\n * Version:           1.0\n * Requires at least: 5.5\n * Requires PHP:      8.0\n * Author:            Your name\n * Author URI:        https:\/\/author.example.com\/\n * License:           GPL v2 or later\n * License URI:       https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\n * Update URI:        https:\/\/example.com\/my-plugin\/\n *\/\n\nfunction myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'post' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading' ),\n\t\tarray( 'core\/paragraph' )\n\t);\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>Dans le code ci-dessus, <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_post_type_object\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>get_post_type_object<\/code><\/a> r\u00e9cup\u00e9rez un type de publication par son nom.<\/p>\n<p>Sauvegardez votre fichier dans le dossier <strong>wp-content\/plugins<\/strong>, naviguez vers l&rsquo;\u00e9cran Extensions dans votre <a href=\"https:\/\/kinsta.com\/fr\/blog\/tableau-de-bord-admin-wordpress\/\">tableau de bord WordPress<\/a>, et activez l&rsquo;extension <strong>My Block Templates<\/strong>.<\/p>\n<p>D\u00e9sormais, lorsque vous cr\u00e9erez un nouvel article, l&rsquo;\u00e9diteur lancera automatiquement votre mod\u00e8le de bloc avec un bloc d&rsquo;image, un titre et un paragraphe.<\/p>\n<figure id=\"attachment_161425\" aria-describedby=\"caption-attachment-161425\" style=\"width: 1984px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161425 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-template.jpg\" alt=\"Un mod\u00e8le de bloc automatiquement charg\u00e9 dans l'\u00e9diteur d'articles\" width=\"1984\" height=\"1220\"><figcaption id=\"caption-attachment-161425\" class=\"wp-caption-text\">Un mod\u00e8le de bloc automatiquement charg\u00e9 dans l&rsquo;\u00e9diteur d&rsquo;articles<\/figcaption><\/figure>\n<p>Vous pouvez \u00e9galement ajouter un tableau de r\u00e9glages pour chaque bloc et aussi cr\u00e9er des structures imbriqu\u00e9es de blocs. La fonction suivante construit un mod\u00e8le de bloc plus avanc\u00e9 avec des blocs et des r\u00e9glages internes :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_my_block_template() {\n\n\t$block_template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading', array(\n\t\t\t'placeholder'\t=&gt; 'Add H2...',\n\t\t\t'level'\t\t\t=&gt; 2\n\t\t) ),\n\t\tarray( 'core\/paragraph', array(\n\t\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t\t\t\n\t\t) ),\n\t\tarray( 'core\/columns', \n\t\t\tarray(), \n\t\t\tarray( \n\t\t\t\tarray( 'core\/column',\n\t\t\t\t\tarray(),\n\t\t\t\t\tarray(\n\t\t\t\t\t\tarray( 'core\/image' )\n\t\t\t\t\t)\n\t\t\t\t), \n\t\t\t\tarray( 'core\/column',\n\t\t\t\t\tarray(),\n\t\t\t\t\tarray(\n\t\t\t\t\t\tarray( 'core\/heading', array(\n\t\t\t\t\t\t\t'placeholder'\t=&gt; 'Add H3...',\n\t\t\t\t\t\t\t'level'\t\t\t=&gt; 3\n\t\t\t\t\t\t) ),\n\t\t\t\t\t\tarray( 'core\/paragraph', array(\n\t\t\t\t\t\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t\t\t\t\t\t) )\n\t\t\t\t\t) \n\t\t\t\t)\n\t\t\t) \n\t\t)\n\t);\n\t$post_type_object = get_post_type_object( 'post' );\n\t$post_type_object-&gt;template = $block_template;\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>Vous pouvez voir le r\u00e9sultat du code ci-dessus dans l&rsquo;image suivante :<\/p>\n<figure id=\"attachment_161426\" aria-describedby=\"caption-attachment-161426\" style=\"width: 2124px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161426 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-template-2.jpg\" alt=\"Un mod\u00e8le de bloc plus avanc\u00e9\" width=\"2124\" height=\"1432\"><figcaption id=\"caption-attachment-161426\" class=\"wp-caption-text\">Un mod\u00e8le de bloc plus avanc\u00e9<\/figcaption><\/figure>\n<p>Jusqu&rsquo;\u00e0 pr\u00e9sent, nous n&rsquo;avons utilis\u00e9 que des blocs de base. Mais vous pouvez aussi inclure des <a href=\"https:\/\/kinsta.com\/fr\/blog\/blocs-gutenberg\/\">blocs personnalis\u00e9s<\/a> ou des <a href=\"https:\/\/kinsta.com\/fr\/blog\/construire-compositions-blocs-wordpress\/\">compositions de blocs<\/a> dans vos mod\u00e8les de blocs, comme le montre l&rsquo;exemple suivant :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'page' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/pattern', array(\n\t\t\t'slug' =&gt; 'my-plugin\/my-block-pattern'\n\t\t) ) \n\t);\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>Il n&rsquo;y a pas beaucoup de diff\u00e9rence dans le cas o\u00f9 vous d\u00e9cidiez de cr\u00e9er un mod\u00e8le de bloc par d\u00e9faut pour un type de publication personnalis\u00e9 d\u00e9j\u00e0 enregistr\u00e9. Il vous suffit de remplacer le type de publication de <code>get_post_type_object<\/code> par le nom de votre type de publication personnalis\u00e9, comme le montre l&rsquo;exemple suivant :<\/p>\n<pre><code class=\"language-php\">&lt;?php\nfunction myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'book' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading' ),\n\t\tarray( 'core\/paragraph' )\n\t);\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>Maintenant que vous savez comment cr\u00e9er des mod\u00e8les de blocs, nous pouvons aller de l&rsquo;avant et explorer d&rsquo;autres cas d&rsquo;utilisation. Plongeons un peu plus profond\u00e9ment.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Mod\u00e8les de blocs avec les types d&rsquo;articles personnalis\u00e9s<\/h3>\n<p>Comme nous l&rsquo;avons mentionn\u00e9 pr\u00e9c\u00e9demment, tu peux attacher un mod\u00e8le de bloc \u00e0 un type de publication personnalis\u00e9. Vous pouvez le faire apr\u00e8s que votre type de publication personnalis\u00e9 a d\u00e9j\u00e0 \u00e9t\u00e9 enregistr\u00e9, mais vous pr\u00e9f\u00e9rerez peut-\u00eatre d\u00e9finir un mod\u00e8le de bloc lors de l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/types-publications-personnalises-wordpress\/\">enregistrement du type de publication personnalis\u00e9<\/a>.<\/p>\n<p>Dans ce cas, vous pouvez utiliser les arguments <code>template<\/code> et <code>template_lock<\/code> de la fonction <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_post_type\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>register_post_type<\/code><\/a> :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_book_post_type() {\n\t$args = array(\n\t\t'label' =&gt; esc_html__( 'Books' ),\n\t\t'labels' =&gt; array(\n\t\t\t'name' =&gt; esc_html__( 'Books' ),\n\t\t\t'singular_name' =&gt; esc_html__( 'Book' ),\n\t\t),\n\t\t'public' =&gt; true,\n\t\t'publicly_queryable' =&gt; true,\n\t\t'show_ui' =&gt; true,\n\t\t'show_in_rest' =&gt; true,\n\t\t'rest_namespace' =&gt; 'wp\/v2',\n\t\t'has_archive' =&gt; true,\n\t\t'show_in_menu' =&gt; true,\n\t\t'show_in_nav_menus' =&gt; true,\n\t\t'supports' =&gt; array( 'title', 'editor', 'thumbnail' ),\n\t\t'template' =&gt; array(\n\t\t\tarray( 'core\/paragraph', array(\n\t\t\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t\t\t) ),\n\t\t\tarray( 'core\/columns', \n\t\t\t\tarray(), \n\t\t\t\tarray( \n\t\t\t\t\tarray( 'core\/column',\n\t\t\t\t\t\tarray(),\n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\tarray( 'core\/image' )\n\t\t\t\t\t\t)\n\t\t\t\t\t), \n\t\t\t\t\tarray( 'core\/column',\n\t\t\t\t\t\tarray(),\n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\tarray( 'core\/heading', array(\n\t\t\t\t\t\t\t\t'placeholder'\t=&gt; 'Add H3...',\n\t\t\t\t\t\t\t\t'level'\t\t\t=&gt; 3\n\t\t\t\t\t\t\t) ),\n\t\t\t\t\t\t\tarray( 'core\/paragraph', array(\n\t\t\t\t\t\t\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) \n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n\tregister_post_type( 'book', $args );\n}\nadd_action( 'init', 'myplugin_register_book_post_type' );<\/code><\/pre>\n<p>Et c&rsquo;est tout. L&rsquo;image ci-dessous montre le mod\u00e8le de bloc dans l&rsquo;interface de l&rsquo;\u00e9diteur pour un type de publication personnalis\u00e9 Book.<\/p>\n<figure id=\"attachment_161428\" aria-describedby=\"caption-attachment-161428\" style=\"width: 2124px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161428 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/cpt-block-template.jpg\" alt=\"Un mod\u00e8le de bloc pour un type de publication personnalis\u00e9\" width=\"2124\" height=\"1038\"><figcaption id=\"caption-attachment-161428\" class=\"wp-caption-text\">Un mod\u00e8le de bloc pour un type de publication personnalis\u00e9<\/figcaption><\/figure>\n<p>Lorsque vous aurez termin\u00e9 la mise en page, vous voudrez peut-\u00eatre jouer avec les r\u00e9glages des blocs pour affiner le comportement et l&rsquo;apparence de votre mod\u00e8le de bloc.<\/p>\n<h3>Affiner le mod\u00e8le de bloc avec les attributs de bloc<\/h3>\n<p>Nous avons d\u00e9fini un mod\u00e8le de bloc comme une liste de blocs. Chaque \u00e9l\u00e9ment de la liste doit \u00eatre un tableau contenant le nom du bloc et un tableau d&rsquo;attributs facultatifs. Avec les tableaux imbriqu\u00e9s, vous pouvez ajouter un troisi\u00e8me tableau pour les blocs enfants.<\/p>\n<p>Un mod\u00e8le avec un bloc Colonnes peut \u00eatre repr\u00e9sent\u00e9 comme ci-dessous :<\/p>\n<pre><code class=\"language-php\">$template = array( 'core\/columns', \n\t\/\/ attributes\n\tarray(), \n\t\/\/ nested blocks\n\tarray(\n\t\tarray( 'core\/column' ),\n\t\tarray( 'core\/column' ) \n\t) \n);<\/code><\/pre>\n<p>Comme mentionn\u00e9 ci-dessus, le deuxi\u00e8me tableau de la liste est un tableau facultatif d&rsquo;attributs de blocs. Ces attributs vous permettent de personnaliser l&rsquo;apparence de votre mod\u00e8le afin que vous ou vos utilisateurs puissiez vous concentrer sur le contenu de l&rsquo;article sans vous soucier de la mise en page et de la conception.<\/p>\n<p>Pour commencer, vous pouvez utiliser l&rsquo;\u00e9diteur de blocs pour cr\u00e9er une structure de blocs que vous pourrez utiliser comme r\u00e9f\u00e9rence pour votre mod\u00e8le.<\/p>\n<figure id=\"attachment_161769\" aria-describedby=\"caption-attachment-161769\" style=\"width: 2118px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161769 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/a-block-layout.jpg\" alt=\"Une mise en page de bloc dans l'\u00e9diteur de blocs\" width=\"2118\" height=\"1066\"><figcaption id=\"caption-attachment-161769\" class=\"wp-caption-text\">Une mise en page de bloc dans l&rsquo;\u00e9diteur de blocs<\/figcaption><\/figure>\n<p>Ajoutez vos blocs, personnalisez la mise en page et les styles, puis passez \u00e0 l&rsquo;\u00e9diteur de code et trouvez les d\u00e9limiteurs de blocs.<\/p>\n<figure id=\"attachment_161770\" aria-describedby=\"caption-attachment-161770\" style=\"width: 2042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161770 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-delimiter.jpg\" alt=\"Le d\u00e9limiteur de bloc d'un bloc Colonnes\" width=\"2042\" height=\"248\"><figcaption id=\"caption-attachment-161770\" class=\"wp-caption-text\">Le d\u00e9limiteur de bloc d&rsquo;un bloc Colonnes<\/figcaption><\/figure>\n<p>Les d\u00e9limiteurs de blocs stockent les r\u00e9glages et les styles des blocs dans des paires cl\u00e9\/valeur. Vous pouvez simplement copier et coller les cl\u00e9s et les valeurs du bloc pour remplir votre tableau d&rsquo;attributs :<\/p>\n<pre><code class=\"language-php\">$template = array( 'core\/columns', \n\tarray(\n\t\t'verticalAlignment'\t=&gt; 'center',\n\t\t'align'\t\t\t\t=&gt; 'wide',\n\t\t'style'\t\t\t\t=&gt; array( \n\t\t\t'border'\t=&gt; array(\n\t\t\t\t'width'\t=&gt; '2px',\n\t\t\t\t'radius'\t=&gt; array(\n\t\t\t\t\t'topLeft'\t\t=&gt; '12px', \n\t\t\t\t\t'topRight'\t\t=&gt; '12px', \n\t\t\t\t\t'bottomLeft'\t=&gt; '12px', \n\t\t\t\t\t'bottomRight'\t=&gt; '12px'\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\t'backgroundColor' =&gt; 'tertiary'\n\t),\n\tarray(\n\t\tarray( 'core\/column' ),\n\t\tarray( 'core\/column' ) \n\t) \n);<\/code><\/pre>\n<p>R\u00e9p\u00e9tez le processus pour chaque bloc du mod\u00e8le et vous aurez termin\u00e9.<\/p>\n<pre><code class=\"language-php\">$template = array(\n\tarray( 'core\/paragraph', array(\n\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t) ),\n\tarray( 'core\/columns', \n\t\tarray(\n\t\t\t'verticalAlignment'\t=&gt; 'center',\n\t\t\t'align'\t\t\t\t=&gt; 'wide',\n\t\t\t'style'\t\t\t\t=&gt; array( \n\t\t\t\t'border'\t=&gt; array(\n\t\t\t\t\t'width'\t\t=&gt; '2px',\n\t\t\t\t\t'radius'\t=&gt; array(\n\t\t\t\t\t\t'topLeft'\t\t=&gt; '12px', \n\t\t\t\t\t\t'topRight'\t\t=&gt; '12px', \n\t\t\t\t\t\t'bottomLeft'\t=&gt; '12px', \n\t\t\t\t\t\t'bottomRight'\t=&gt; '12px'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t),\n\t\t\t'backgroundColor' =&gt; 'tertiary',\n\t\t\t'lock' =&gt; array(\n\t\t\t\t'remove'\t=&gt; true,\n\t\t\t\t'move'\t\t=&gt; true\n\t\t\t)\n\t\t), \n\t\tarray( \n\t\t\tarray( 'core\/column',\n\t\t\t\tarray( 'verticalAlignment'\t=&gt; 'center' ),\n\t\t\t\tarray(\n\t\t\t\t\tarray( 'core\/image', \n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\t'style'\t=&gt; array( 'border' =&gt; array( 'radius' =&gt; '8px' ) ) \n\t\t\t\t\t\t) \n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t), \n\t\t\tarray( 'core\/column',\n\t\t\t\tarray( 'verticalAlignment'\t=&gt; 'center' ),\n\t\t\t\tarray(\n\t\t\t\t\tarray( 'core\/heading', array(\n\t\t\t\t\t\t'placeholder'\t=&gt; 'Add H3...',\n\t\t\t\t\t\t'level'\t\t\t=&gt; 3\n\t\t\t\t\t) ),\n\t\t\t\t\tarray( 'core\/paragraph', array(\n\t\t\t\t\t\t'placeholder'\t=&gt; 'Add paragraph...'\n\t\t\t\t\t) )\n\t\t\t\t) \n\t\t\t)\n\t\t)\n\t)\n);<\/code><\/pre>\n<h3>Verrouillage des blocs<\/h3>\n<p>Vous pouvez verrouiller des blocs sp\u00e9cifiques ou tous les blocs inclus dans votre mod\u00e8le en utilisant la propri\u00e9t\u00e9 <code>template_lock<\/code> de la page <code>$post_type_object<\/code>.<\/p>\n<p>Le verrouillage des mod\u00e8les peut \u00eatre tr\u00e8s utile lorsque vous avez un blog \u00e0 plusieurs auteurs et que vous voulez emp\u00eacher tous les utilisateurs ou certains d&rsquo;entre eux de modifier la mise en page de votre mod\u00e8le de bloc.<\/p>\n<p>Dans l&rsquo;exemple suivant, nous verrouillons tous les blocs du mod\u00e8le de bloc :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'post' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading' ),\n\t\tarray( 'core\/paragraph' )\n\t);\n\t$post_type_object-&gt;template_lock = 'all';\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>Les blocs verrouill\u00e9s affichent une ic\u00f4ne de verrouillage dans la barre d&rsquo;outils des blocs et dans la vue en liste :<\/p>\n<figure id=\"attachment_161430\" aria-describedby=\"caption-attachment-161430\" style=\"width: 1798px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161430 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/locked-block.jpg\" alt=\"Un bloc d'en-t\u00eate verrouill\u00e9\" width=\"1798\" height=\"1050\"><figcaption id=\"caption-attachment-161430\" class=\"wp-caption-text\">Un bloc d&rsquo;en-t\u00eate verrouill\u00e9<\/figcaption><\/figure>\n<p>Les utilisateurs peuvent d\u00e9verrouiller les blocs \u00e0 partir du menu Options disponible dans la barre d&rsquo;outils des blocs.<\/p>\n<figure id=\"attachment_161431\" aria-describedby=\"caption-attachment-161431\" style=\"width: 1368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161431 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlock-block.jpg\" alt=\"D\u00e9verrouiller un bloc\" width=\"1368\" height=\"1120\"><figcaption id=\"caption-attachment-161431\" class=\"wp-caption-text\">D\u00e9verrouiller un bloc<\/figcaption><\/figure>\n<p>Lorsque vous cliquez sur <strong>D\u00e9verrouiller<\/strong>, une fen\u00eatre modale vous permet d&rsquo;activer\/d\u00e9sactiver le mouvement, d&#8217;emp\u00eacher la suppression, ou les deux :<\/p>\n<figure id=\"attachment_161433\" aria-describedby=\"caption-attachment-161433\" style=\"width: 1368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161433 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlock-block-2.jpg\" alt=\"Options de verrouillage\" width=\"1368\" height=\"1120\"><figcaption id=\"caption-attachment-161433\" class=\"wp-caption-text\">Options de verrouillage<\/figcaption><\/figure>\n<p><code>template_lock<\/code> peut prendre l&rsquo;une des <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#locking\" target=\"_blank\" rel=\"noopener noreferrer\">valeurs suivantes<\/a>:<\/p>\n<ul>\n<li><code>all<\/code> &#8211; Emp\u00eache les utilisateurs d&rsquo;ajouter de nouveaux blocs, de d\u00e9placer et de supprimer des blocs existants.<\/li>\n<li><code>insert<\/code> &#8211; Emp\u00eache les utilisateurs d&rsquo;ajouter de nouveaux blocs et de supprimer des blocs existants.<\/li>\n<li><code>contentOnly<\/code> &#8211; Les utilisateurs ne peuvent modifier que le contenu des blocs inclus dans le mod\u00e8le. Remarque : <code>contentOnly<\/code> ne peut \u00eatre utilis\u00e9 qu&rsquo;au niveau du mod\u00e8le et doit \u00eatre g\u00e9r\u00e9 par le code. (Voir aussi <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/curating-the-editor-experience\/#locking-apis\" target=\"_blank\" rel=\"noopener noreferrer\">Verrouillage des API<\/a>).<\/li>\n<\/ul>\n<figure id=\"attachment_161435\" aria-describedby=\"caption-attachment-161435\" style=\"width: 2370px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161435 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/prevent-removal.jpg\" alt=\"R\u00e9glage de template_lock pour emp\u00eacher la suppression des blocs du mod\u00e8le\" width=\"2370\" height=\"1410\"><figcaption id=\"caption-attachment-161435\" class=\"wp-caption-text\">R\u00e9glage de template_lock pour emp\u00eacher la suppression des blocs du mod\u00e8le<\/figcaption><\/figure>\n<p>Si vous voulez verrouiller des blocs sp\u00e9cifiques, vous pouvez utiliser l&rsquo;attribut <code>lock<\/code> sur chaque bloc :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'post' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading' ),\n\t\tarray( 'core\/paragraph', array(\n\t\t\t'lock' =&gt; array(\n\t\t\t\t'remove'\t=&gt; true,\n\t\t\t\t'move'\t\t=&gt; true\n\t\t\t)\n\t\t) )\n\t);\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>L&rsquo;attribut <code>lock<\/code> peut prendre l&rsquo;une des <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#individual-block-locking\" target=\"_blank\" rel=\"noopener noreferrer\">valeurs suivantes<\/a>:<\/p>\n<ul>\n<li><code>remove<\/code>: Emp\u00eache les utilisateurs de supprimer un bloc.<\/li>\n<li><code>move<\/code>: Emp\u00eache les utilisateurs de d\u00e9placer un bloc.<\/li>\n<\/ul>\n<p>Vous pouvez \u00e9galement utiliser <code>lock<\/code> en conjonction avec <code>template_lock<\/code> pour affiner le comportement des blocs inclus dans votre mod\u00e8le de bloc. Dans l&rsquo;exemple suivant, nous verrouillons tous les blocs \u00e0 l&rsquo;exception de l&rsquo;en-t\u00eate :<\/p>\n<pre><code class=\"language-php\">function myplugin_register_my_block_template() {\n\t$post_type_object = get_post_type_object( 'post' );\n\t$post_type_object-&gt;template = array(\n\t\tarray( 'core\/image' ),\n\t\tarray( 'core\/heading', array(\n\t\t\t'lock' =&gt; array(\n\t\t\t\t'remove'\t=&gt; false,\n\t\t\t\t'move'\t\t=&gt; false\n\t\t\t) \n\t\t) ),\n\t\tarray( 'core\/paragraph' )\n\t);\n\t$post_type_object-&gt;template_lock = 'all';\n}\nadd_action( 'init', 'myplugin_register_my_block_template' );<\/code><\/pre>\n<p>L&rsquo;image ci-dessous montre le mod\u00e8le de bloc avec les blocs verrouill\u00e9s et d\u00e9verrouill\u00e9s :<\/p>\n<figure id=\"attachment_161437\" aria-describedby=\"caption-attachment-161437\" style=\"width: 1800px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161437 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlocked-heading.jpg\" alt=\"Un mod\u00e8le de bloc avec des blocs verrouill\u00e9s et d\u00e9verrouill\u00e9s.\" width=\"1800\" height=\"1080\"><figcaption id=\"caption-attachment-161437\" class=\"wp-caption-text\">Un mod\u00e8le de bloc avec des blocs verrouill\u00e9s et d\u00e9verrouill\u00e9s.<\/figcaption><\/figure>\n<p>Les d\u00e9veloppeurs de blocs peuvent \u00e9galement utiliser l&rsquo;attribut <code>lock<\/code> dans la d\u00e9finition du bloc au niveau <code>attributes<\/code> (voir \u00e9galement <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#individual-block-locking\" target=\"_blank\" rel=\"noopener noreferrer\">Verrouillage individuel des blocs<\/a>).<\/p>\n<h3>Emp\u00eacher les utilisateurs de d\u00e9verrouiller les blocs<\/h3>\n<p>Si vous avez test\u00e9 le code abord\u00e9 jusqu&rsquo;ici dans l&rsquo;article, vous avez peut-\u00eatre r\u00e9alis\u00e9 que vous pouvez d\u00e9verrouiller les blocs inclus dans votre mod\u00e8le (ou tout autre bloc) depuis l&rsquo;interface de l&rsquo;\u00e9diteur. Par d\u00e9faut, tous les utilisateurs ayant acc\u00e8s \u00e0 l&rsquo;\u00e9dition peuvent verrouiller ou d\u00e9verrouiller les blocs, et ce faisant, ils contournent les r\u00e9glages de votre mod\u00e8le.<\/p>\n<p>Vous pouvez contr\u00f4ler si les blocs peuvent \u00eatre verrouill\u00e9s ou d\u00e9verrouill\u00e9s \u00e0 l&rsquo;aide du filtre <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/filters\/editor-filters\/#block_editor_settings_all\" target=\"_blank\" rel=\"noopener noreferrer\"><code>block_editor_settings_all<\/code><\/a>.<\/p>\n<blockquote><p><em>Le filtre enverra tout r\u00e9glage \u00e0 l&rsquo;\u00e9diteur initialis\u00e9, ce qui signifie que tout r\u00e9glage de l&rsquo;\u00e9diteur utilis\u00e9 pour configurer l&rsquo;\u00e9diteur lors de l&rsquo;initialisation peut \u00eatre filtr\u00e9 par une extension WordPress PHP avant d&rsquo;\u00eatre envoy\u00e9.<\/em><\/p><\/blockquote>\n<p>La fonction de rappel que tu utiliseras avec ce filtre prend deux param\u00e8tres :<\/p>\n<ul>\n<li><code>$settings<\/code>: Un tableau de r\u00e9glages de l&rsquo;\u00e9diteur.<\/li>\n<li><code>$context<\/code>: Une instance de la classe <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_block_editor_context\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>WP_Block_Editor_Context<\/code><\/a>, un objet qui contient des informations sur l&rsquo;\u00e9diteur de blocs en cours de rendu.<\/li>\n<\/ul>\n<p>Ce que vous devez faire, c&rsquo;est filtrer <code>$settings['canLockBlocks']<\/code> en lui attribuant la valeur <code>true<\/code> ou <code>false<\/code>, comme le montre l&rsquo;exemple suivant :<\/p>\n<pre><code class=\"language-php\">add_filter( 'block_editor_settings_all', \n\tfunction( $settings, $context ) {\n\t\tif ( $context-&gt;post && 'book' === $context-&gt;post-&gt;post_type ) {\n\t\t\t$settings['canLockBlocks'] = false;\n\t\t}\n\t\treturn $settings;\n\t}, 10, 2\n);<\/code><\/pre>\n<p>Vous pouvez exclure des r\u00f4les d&rsquo;utilisateurs sp\u00e9cifiques du verrouillage\/d\u00e9verrouillage des blocs en effectuant une v\u00e9rification conditionnelle des <a href=\"https:\/\/kinsta.com\/fr\/blog\/roles-utilisateurs-wordpress\/\">capacit\u00e9s de l&rsquo;utilisateur<\/a> actuel.<\/p>\n<p>Dans l&rsquo;exemple suivant, nous v\u00e9rifions si l&rsquo;<a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/current_user_can\/\" target=\"_blank\" rel=\"noopener noreferrer\">utilisateur actuel<\/a> peut modifier les publications des autres (en d&rsquo;autres termes, si le r\u00f4le de l&rsquo;utilisateur actuel est \u00c9diteur ou sup\u00e9rieur) :<\/p>\n<pre><code class=\"language-php\">add_filter( 'block_editor_settings_all', \n\tfunction( $settings, $context ) {\n\t\tif ( $context-&gt;post && 'book' === $context-&gt;post-&gt;post_type ) {\n\t\t\t$settings['canLockBlocks'] = current_user_can( 'edit_others_posts' );\n\t\t}\n\t\treturn $settings;\n\t}, 10, 2\n);<\/code><\/pre>\n<p>Les images suivantes comparent l&rsquo;\u00e9tat initial de l&rsquo;\u00e9diteur pour un administrateur et un auteur. Premi\u00e8rement, admin :<\/p>\n<figure id=\"attachment_161440\" aria-describedby=\"caption-attachment-161440\" style=\"width: 2124px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161440 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/initial-state-for-admin.jpg\" alt=\"L'\u00e9tat initial de l'\u00e9diteur pour un utilisateur Admin\" width=\"2124\" height=\"1388\"><figcaption id=\"caption-attachment-161440\" class=\"wp-caption-text\">L&rsquo;\u00e9tat initial de l&rsquo;\u00e9diteur pour un utilisateur Admin<\/figcaption><\/figure>\n<p>Maintenant, l&rsquo;auteur :<\/p>\n<figure id=\"attachment_161442\" aria-describedby=\"caption-attachment-161442\" style=\"width: 2126px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161442 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/initial-state-for-author.jpg\" alt=\"L'\u00e9tat initial de l'\u00e9diteur pour un auteur\" width=\"2126\" height=\"1378\"><figcaption id=\"caption-attachment-161442\" class=\"wp-caption-text\">L&rsquo;\u00e9tat initial de l&rsquo;\u00e9diteur pour un auteur<\/figcaption><\/figure>\n<p>Et vous pouvez v\u00e9rifier n&rsquo;importe quelle condition sur l&rsquo;utilisateur actuel. Dans l&rsquo;exemple suivant, nous <a href=\"https:\/\/make.wordpress.org\/core\/2022\/05\/05\/block-locking-settings-in-wordpress-6-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">emp\u00eachons un utilisateur sp\u00e9cifique<\/a> de verrouiller\/d\u00e9verrouiller des blocs :<\/p>\n<pre><code class=\"language-php\">add_filter( 'block_editor_settings_all', \n\tfunction( $settings, $context ) {\n\t\t$user = wp_get_current_user();\n\t\tif ( in_array( $user-&gt;user_email, [ 'email@example.com' ], true ) ) {\n\t\t\t$settings['canLockBlocks'] = false;\n\t\t}\n\t\treturn $settings;\n\t}, 10, 2\n);<\/code><\/pre>\n<p>Vous pouvez combiner plus de conditions pour avoir un contr\u00f4le granulaire sur qui est autoris\u00e9 \u00e0 verrouiller\/d\u00e9verrouiller des blocs dans votre mod\u00e8le et qui ne l&rsquo;est pas. C&rsquo;est l&rsquo;un des aspects de ce que l&rsquo;on appelle l&rsquo;<a href=\"https:\/\/make.wordpress.org\/core\/2022\/02\/09\/core-editor-improvement-curated-experiences-with-locking-apis-theme-json\/\" target=\"_blank\" rel=\"noopener noreferrer\">exp\u00e9rience curative<\/a>.<\/p>\n<p>Mais attendez. Avez-vous essay\u00e9 de modifier le contenu de votre article \u00e0 l&rsquo;aide de l&rsquo;\u00e9diteur de code ? Eh bien, vous serez peut-\u00eatre surpris de voir que les utilisateurs qui ne sont pas autoris\u00e9s \u00e0 d\u00e9verrouiller les blocs \u00e0 partir de l&rsquo;interface utilisateur peuvent quand m\u00eame modifier le contenu \u00e0 partir de l&rsquo;\u00e9diteur de code.<\/p>\n<h3>D\u00e9sactivation de l&rsquo;\u00e9diteur de code pour des r\u00f4les d&rsquo;utilisateur sp\u00e9cifiques<\/h3>\n<p>Par d\u00e9faut, tous les utilisateurs qui peuvent modifier le contenu peuvent acc\u00e9der \u00e0 l&rsquo;\u00e9diteur de code. Cela pourrait passer outre vos r\u00e9glages de verrouillage et certains utilisateurs pourraient ruiner ou supprimer la mise en page de votre mod\u00e8le.<\/p>\n<p>Vous pouvez aussi utiliser <code>block_editor_settings_all<\/code> pour filtrer le param\u00e8tre <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/filters\/editor-filters\/#codeeditingenabled\" target=\"_blank\" rel=\"noopener noreferrer\"><code>codeEditingEnabled<\/code><\/a> pour emp\u00eacher certains r\u00f4les d&rsquo;utilisateurs d&rsquo;acc\u00e9der \u00e0 l&rsquo;\u00e9diteur de code. Voici le code :<\/p>\n<pre><code class=\"language-php\">add_filter( 'block_editor_settings_all', \n\tfunction( $settings, $context ) {\n\t\tif ( $context-&gt;post && 'book' === $context-&gt;post-&gt;post_type ) {\n\t\t\t$settings['canLockBlocks'] = current_user_can( 'edit_others_posts' );\n\t\t\t$settings['codeEditingEnabled'] = current_user_can( 'edit_others_posts' );\n\t\t}\n\t\treturn $settings;\n\t}, 10, 2\n);<\/code><\/pre>\n<p>Avec ce code en place, les utilisateurs qui n&rsquo;ont pas la capacit\u00e9 <code>edit_others_posts<\/code> ne seront pas autoris\u00e9s \u00e0 acc\u00e9der \u00e0 l&rsquo;\u00e9diteur de code. L&rsquo;image ci-dessous montre la barre d&rsquo;outils Options pour un auteur.<\/p>\n<figure id=\"attachment_161825\" aria-describedby=\"caption-attachment-161825\" style=\"width: 2128px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161825 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/options-toolbar-without-code-editor-access.jpg\" alt=\"La barre d'outils Options pour un r\u00f4le d'utilisateur n'ayant pas acc\u00e8s \u00e0 l'\u00e9diteur de code.\" width=\"2128\" height=\"1202\"><figcaption id=\"caption-attachment-161825\" class=\"wp-caption-text\">La barre d&rsquo;outils Options pour un r\u00f4le d&rsquo;utilisateur n&rsquo;ayant pas acc\u00e8s \u00e0 l&rsquo;\u00e9diteur de code.<\/figcaption><\/figure>\n<p>Voil\u00e0 ce que vous devez savoir pour construire des mod\u00e8les de blocs via PHP. Maintenant, si vous \u00eates un d\u00e9veloppeur de blocs Gutenberg et que vous aimez travailler avec <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a>, vous pr\u00e9f\u00e9rerez peut-\u00eatre opter pour une approche diff\u00e9rente.<\/p>\n<h2>Comment construire un mod\u00e8le \u00e0 l&rsquo;aide de JavaScript<\/h2>\n<p>L&rsquo;ajout d&rsquo;un mod\u00e8le de bloc \u00e0 un article fonctionne diff\u00e9remment si vous d\u00e9cidez d&rsquo;opter pour JavaScript. Vous pouvez toujours construire un mod\u00e8le, mais vous devez cr\u00e9er un bloc personnalis\u00e9 et utiliser le composant <code>InnerBlocks<\/code>, comme indiqu\u00e9 dans notre <a href=\"https:\/\/kinsta.com\/fr\/blog\/blocs-gutenberg\/#innerblocks-component\">guide de d\u00e9veloppement des blocs Gutenberg<\/a>.<\/p>\n<blockquote><p><em>InnerBlocks exporte une paire de composants qui peuvent \u00eatre utilis\u00e9s dans les impl\u00e9mentations de blocs pour permettre un contenu de bloc imbriqu\u00e9.<\/em> &#8211; Source : <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/blob\/HEAD\/packages\/block-editor\/src\/components\/inner-blocks\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">InnerBlocks<\/a><\/p><\/blockquote>\n<p>Comment \u00e7a marche ?<\/p>\n<p>Vous pouvez utiliser <code>InnerBlocks<\/code> dans vos blocs personnalis\u00e9s de la m\u00eame mani\u00e8re que n&rsquo;importe quel autre composant de Gutenberg.<\/p>\n<p>Vous devez d&rsquo;abord l&rsquo;inclure \u00e0 partir d&rsquo;un paquet avec d&rsquo;autres d\u00e9pendances :<\/p>\n<pre><code class=\"language-javascript\">import { registerBlockType } from '@wordpress\/blocks';\nimport { useBlockProps, InnerBlocks } from '@wordpress\/block-editor';<\/code><\/pre>\n<p>Ensuite, vous d\u00e9finirez les propri\u00e9t\u00e9s de <code>InnerBlocks<\/code>. Dans l&rsquo;exemple suivant, nous allons d\u00e9clarer une constante <code>TEMPLATE<\/code> que nous utiliserons ensuite pour d\u00e9finir la valeur de la propri\u00e9t\u00e9 <code>template<\/code> de l&rsquo;\u00e9l\u00e9ment <code>InnerBlocks<\/code>:<\/p>\n<pre><code class=\"language-javascript\">const TEMPLATE = [\n\t[ 'core\/paragraph', { 'placeholder': 'Add paragraph...' } ],\n\t[ 'core\/columns', { verticalAlignment: 'center' }, \n\t\t[\n\t\t\t[ \n\t\t\t\t'core\/column', \n\t\t\t\t{ templateLock: 'all' }, \n\t\t\t\t[\n\t\t\t\t\t[ 'core\/image' ]\n\t\t\t\t]\n\t\t\t],\n\t\t\t[ \n\t\t\t\t'core\/column', \n\t\t\t\t{ templateLock: 'all' }, \n\t\t\t\t[\n\t\t\t\t\t[ \n\t\t\t\t\t\t'core\/heading', \n\t\t\t\t\t\t{'placeholder': 'Add H3...', 'level': 3}\n\t\t\t\t\t], \n\t\t\t\t\t[ \n\t\t\t\t\t\t'core\/paragraph', \n\t\t\t\t\t\t{'placeholder': 'Add paragraph...'} \n\t\t\t\t\t]\n\t\t\t\t], \n\t\t\t]\n\t\t]\n\t]\n];\nregisterBlockType( metadata.name, {\n\ttitle: 'My Template',\n\tcategory: 'widgets',\n\tedit: ( props ) =&gt; {\n\t\treturn(\n\t\t\t&lt;div&gt;\n\t\t\t\t&lt;InnerBlocks\n\t\t\t\t\ttemplate={ TEMPLATE }\n\t\t\t\t\ttemplateLock=\"insert\"\n\t\t\t\t\/&gt;\n\t\t\t&lt;\/div&gt;\n\t\t)\n\t},\n\tsave() {\n\t\tconst blockProps = useBlockProps.save();\n\t\treturn(\n\t\t\t&lt;div { ...blockProps }&gt;\n\t\t\t\t&lt;InnerBlocks.Content \/&gt;\n\t\t\t&lt;\/div&gt;\n\t\t)\n\t}\n} );<\/code><\/pre>\n<p>Ce code est assez simple. Vous devriez remarquer que nous avons utilis\u00e9 l&rsquo;attribut <code>templateLock<\/code> deux fois, d&rsquo;abord au niveau du bloc, puis \u00e0 l&rsquo;int\u00e9rieur de l&rsquo;\u00e9l\u00e9ment <code>InnerBlocks<\/code>. Pour obtenir la liste compl\u00e8te des attributs disponibles, consultez la <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/blob\/HEAD\/packages\/block-editor\/src\/components\/inner-blocks\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">r\u00e9f\u00e9rence<code>InnerBlocks<\/code><\/a> et le <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/block-tutorial\/nested-blocks-inner-blocks\/\" target=\"_blank\" rel=\"noopener noreferrer\">manuel de l&rsquo;\u00e9diteur de blocs<\/a>.<\/p>\n<p>Essayez maintenant.<\/p>\n<p>Tout d&rsquo;abord, cr\u00e9ez une installation locale de WordPress en utilisant <a href=\"https:\/\/kinsta.com\/fr\/devkinsta\/fonctionnalites\/\">DevKinsta<\/a> ou tout autre <a href=\"https:\/\/kinsta.com\/local-development\/\">environnement de d\u00e9veloppement local<\/a>.<\/p>\n<p>Ensuite, lancez votre outil de ligne de commande, naviguez jusqu&rsquo;\u00e0 votre dossier <strong>plugins<\/strong> et ex\u00e9cutez la commande suivante :<\/p>\n<pre><code class=\"language-bash\">npx @wordpress\/create-block template-block<\/code><\/pre>\n<p>Vous pouvez changer le nom du bloc pour ce que vous voulez. Si vous pr\u00e9f\u00e9rez contr\u00f4ler tous les aspects de votre bloc de d\u00e9marrage, il vous suffit de suivre les instructions fournies dans notre <a href=\"https:\/\/kinsta.com\/fr\/blog\/blocs-gutenberg\/#set-up-the-plugin\">guide d\u00e9finitif sur le d\u00e9veloppement des blocs<\/a>.<\/p>\n<p>Une fois l&rsquo;installation termin\u00e9e, ex\u00e9cutez les commandes suivantes :<\/p>\n<pre><code class=\"language-bash\">cd template-block\nnpm start<\/code><\/pre>\n<p>Lancez votre <a href=\"https:\/\/kinsta.com\/fr\/blog\/tableau-de-bord-admin-wordpress\/\">tableau de bord d&rsquo;administration WordPress<\/a> et naviguez jusqu&rsquo;\u00e0 l&rsquo;\u00e9cran <strong>Extensions<\/strong>. Trouvez et activez votre extenbsion <strong>Template Block<\/strong>.<\/p>\n<p>Dans votre <a href=\"https:\/\/kinsta.com\/fr\/blog\/editeurs-html-gratuits\/\">\u00e9diteur de code<\/a> pr\u00e9f\u00e9r\u00e9, ouvrez le fichier <strong>index.js<\/strong> que vous trouverez dans le dossier <strong>src<\/strong>. Copiez et collez le code ci-dessus, enregistrez votre <strong>index.js<\/strong>, et de retour dans le tableau de bord de WordPress, cr\u00e9ez un nouvel article ou une nouvelle page.<\/p>\n<p>Ouvrez l&rsquo;outil d&rsquo;insertion de blocs et descendez jusqu&rsquo;\u00e0 la section <strong>Widgets<\/strong>. Vous devriez y trouver votre bloc personnalis\u00e9.<\/p>\n<figure id=\"attachment_161826\" aria-describedby=\"caption-attachment-161826\" style=\"width: 2260px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161826 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/my-template-block-1.jpg\" alt=\"Un bloc personnalis\u00e9 dans l'insertion de blocs\" width=\"2260\" height=\"1410\"><figcaption id=\"caption-attachment-161826\" class=\"wp-caption-text\">Un bloc personnalis\u00e9 dans l&rsquo;insertion de blocs<\/figcaption><\/figure>\n<p>Ajoutez-le \u00e0 l&rsquo;article, personnalisez le contenu et enregistrez l&rsquo;article.<\/p>\n<figure id=\"attachment_161827\" aria-describedby=\"caption-attachment-161827\" style=\"width: 2258px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-161827 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/template-in-list-view-1.jpg\" alt=\"Vue en liste d'un mod\u00e8le personnalis\u00e9\" width=\"2258\" height=\"936\"><figcaption id=\"caption-attachment-161827\" class=\"wp-caption-text\">Vue en liste d&rsquo;un mod\u00e8le personnalis\u00e9<\/figcaption><\/figure>\n<p>Si vous passez \u00e0 l&rsquo;\u00e9diteur de code, vous verrez le balisage suivant :<\/p>\n<pre><code class=\"language-markup\">&lt;!-- wp:create-block\/template-block --&gt;\n&lt;div class=\"wp-block-create-block-template-block\"&gt;&lt;!-- wp:paragraph {\"placeholder\":\"Add paragraph...\"} --&gt;\n&lt;p&gt;&lt;\/p&gt;\n&lt;!-- \/wp:paragraph --&gt;\n\n&lt;!-- wp:columns {\"verticalAlignment\":\"center\"} --&gt;\n&lt;div class=\"wp-block-columns are-vertically-aligned-center\"&gt;&lt;!-- wp:column {\"templateLock\":\"all\"} --&gt;\n&lt;div class=\"wp-block-column\"&gt;&lt;!-- wp:image --&gt;\n&lt;figure class=\"wp-block-image\"&gt;&lt;img alt=\"\"\/&gt;&lt;\/figure&gt;\n&lt;!-- \/wp:image --&gt;&lt;\/div&gt;\n&lt;!-- \/wp:column --&gt;\n\n&lt;!-- wp:column {\"templateLock\":\"all\"} --&gt;\n&lt;div class=\"wp-block-column\"&gt;&lt;!-- wp:heading {\"level\":3,\"placeholder\":\"Add H3...\"} --&gt;\n&lt;h3 class=\"wp-block-heading\"&gt;&lt;\/h3&gt;\n&lt;!-- \/wp:heading --&gt;\n\n&lt;!-- wp:paragraph {\"placeholder\":\"Add paragraph...\"} --&gt;\n&lt;p&gt;&lt;\/p&gt;\n&lt;!-- \/wp:paragraph --&gt;&lt;\/div&gt;\n&lt;!-- \/wp:column --&gt;&lt;\/div&gt;\n&lt;!-- \/wp:columns --&gt;&lt;\/div&gt;\n&lt;!-- \/wp:create-block\/template-block --&gt;<\/code><\/pre>\n<p>Pr\u00e9visualisez maintenant le r\u00e9sultat dans votre <a href=\"https:\/\/kinsta.com\/browsers\/\">navigateur pr\u00e9f\u00e9r\u00e9<\/a>. Si l&rsquo;apparence de votre bloc doit \u00eatre am\u00e9lior\u00e9e, vous pouvez simplement modifier les styles dans votre fichier <strong>style.scss<\/strong>.<\/p>\n<p>Une fois que vous \u00eates satisfait de vos personnalisations, arr\u00eatez le processus et lancez <code>npm run build<\/code>. Tous les fichiers de votre projet seront compress\u00e9s et disponibles pour la production dans le nouveau dossier <strong>build<\/strong>.<\/p>\n<p>C&rsquo;est simple et puissant, n&rsquo;est-ce pas ?<\/p>\n<p>Vous pouvez maintenant cr\u00e9er des mod\u00e8les avanc\u00e9s de blocs que vous pourrez inclure dans votre contenu en quelques clics.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>L&rsquo;ajout d&rsquo;un mod\u00e8le de bloc \u00e0 tes types d&rsquo;e publication personnalis\u00e9s ou d&rsquo;articles peut consid\u00e9rablement acc\u00e9l\u00e9rer et am\u00e9liorer l&rsquo;exp\u00e9rience de cr\u00e9ation et d&rsquo;\u00e9dition sur votre site WordPress. Les mod\u00e8les de blocs sont particuli\u00e8rement utiles sur les sites multi-utilisateurs, o\u00f9 plusieurs utilisateurs sont autoris\u00e9s \u00e0 cr\u00e9er du contenu et o\u00f9 vous avez besoin qu&rsquo;ils respectent le m\u00eame format.<\/p>\n<p>Cela vous permet \u00e9galement de cr\u00e9er des mises en page uniformes sans avoir \u00e0 ajouter manuellement un mod\u00e8le de bloc \u00e0 chaque fois que vous cr\u00e9ez un nouvel article. Pensez \u00e0 un site d&rsquo;avis ou de recettes, o\u00f9 chaque page doit respecter la m\u00eame structure.<\/p>\n<p>En combinant les connaissances que vous aurez acquises sur la cr\u00e9ation de blocs personnalis\u00e9s <a href=\"https:\/\/kinsta.com\/fr\/blog\/blocs-gutenberg\/\">statiques<\/a> ou <a href=\"https:\/\/kinsta.com\/fr\/blog\/blocs-dynamiques-gutenberg\/\">dynamiques<\/a>, de compositions de <a href=\"https:\/\/kinsta.com\/fr\/blog\/construire-compositions-blocs-wordpress\/\">blocs<\/a>, vous serez en mesure de toujours identifier la solution la plus efficace et la plus performante pour construire n&rsquo;importe quel type de site WordPress.<\/p>\n<p>\u00c0 vous de jouer maintenant. Avez-vous d\u00e9j\u00e0 explor\u00e9 les mod\u00e8les de blocs ? Pour quel cas d&rsquo;utilisation les trouvez-vous les plus adapt\u00e9s ? Partagez votre exp\u00e9rience dans les commentaires ci-dessous.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c0 l&rsquo;\u00e8re de Gutenberg, le processus de conception n&rsquo;est pas strictement li\u00e9 aux th\u00e8mes WordPress. Hors de la bo\u00eete, le CMS fournit aux utilisateurs tous les &#8230;<\/p>\n","protected":false},"author":36,"featured_media":72561,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[527,72,343],"topic":[1028],"class_list":["post-72560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-block-editor","tag-gutenberg","tag-wordpress-developers","topic-developpement-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment construire des mod\u00e8les de blocs WordPress - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l&#039;\u00e9diteur de blocs dans ce guide approfondi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment cr\u00e9er des mod\u00e8les de blocs WordPress\" \/>\n<meta property=\"og:description\" content=\"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l&#039;\u00e9diteur de blocs dans ce guide approfondi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-04T14:30:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-11T12:51:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l&#039;\u00e9diteur de blocs dans ce guide approfondi.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Comment cr\u00e9er des mod\u00e8les de blocs WordPress\",\"datePublished\":\"2023-09-04T14:30:02+00:00\",\"dateModified\":\"2023-09-11T12:51:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\"},\"wordCount\":3045,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\",\"keywords\":[\"Block Editor\",\"Gutenberg\",\"WordPress developers\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\",\"name\":\"Comment construire des mod\u00e8les de blocs WordPress - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\",\"datePublished\":\"2023-09-04T14:30:02+00:00\",\"dateModified\":\"2023-09-11T12:51:51+00:00\",\"description\":\"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l'\u00e9diteur de blocs dans ce guide approfondi.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"D\u00e9veloppement WordPress\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/developpement-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment cr\u00e9er des mod\u00e8les de blocs WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment construire des mod\u00e8les de blocs WordPress - Kinsta\u00ae","description":"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l'\u00e9diteur de blocs dans ce guide approfondi.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment cr\u00e9er des mod\u00e8les de blocs WordPress","og_description":"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l'\u00e9diteur de blocs dans ce guide approfondi.","og_url":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-09-04T14:30:02+00:00","article_modified_time":"2023-09-11T12:51:51+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","type":"image\/jpeg"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l'\u00e9diteur de blocs dans ce guide approfondi.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Carlo Daniele","Dur\u00e9e de lecture estim\u00e9e":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Comment cr\u00e9er des mod\u00e8les de blocs WordPress","datePublished":"2023-09-04T14:30:02+00:00","dateModified":"2023-09-11T12:51:51+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/"},"wordCount":3045,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","keywords":["Block Editor","Gutenberg","WordPress developers"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/","url":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/","name":"Comment construire des mod\u00e8les de blocs WordPress - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","datePublished":"2023-09-04T14:30:02+00:00","dateModified":"2023-09-11T12:51:51+00:00","description":"Apprenez \u00e0 construire des mod\u00e8les de blocs WordPress, des mises en page de blocs pr\u00e9construits automatiquement charg\u00e9s dans l'\u00e9diteur de blocs dans ce guide approfondi.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/09\/wordpress-block-templates-1.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/modeles-blocs-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"D\u00e9veloppement WordPress","item":"https:\/\/kinsta.com\/fr\/sujets\/developpement-wordpress\/"},{"@type":"ListItem","position":3,"name":"Comment cr\u00e9er des mod\u00e8les de blocs WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/fr\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=72560"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72560\/revisions"}],"predecessor-version":[{"id":72699,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72560\/revisions\/72699"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/translations\/fr"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72560\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/72561"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=72560"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=72560"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=72560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}