{"id":234259,"date":"2023-02-23T13:33:00","date_gmt":"2023-02-23T10:33:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234259"},"modified":"2022-11-12T02:34:19","modified_gmt":"2022-11-11T23:34:19","slug":"creer-un-bloc-gutenberg-personnalise-partie-2-enregistrer-un-bloc","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/creer-un-bloc-gutenberg-personnalise-partie-2-enregistrer-un-bloc\/","title":{"rendered":"Cr\u00e9er un bloc Gutenberg personnalis\u00e9 &#8211; Partie 2\u00a0: Enregistrer un bloc"},"content":{"rendered":"\n<p>Dans 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<p>Tout d&rsquo;abord, une note rapide sur la fa\u00e7on d&rsquo;acc\u00e9der aux fonctions et composants de WordPress Gutenberg.<\/p>\n<h2><code>wp<\/code>Le package global et la d\u00e9structuration<\/h2>\n<p>Lorsque nous sommes dans un fichier Javascript mis en file d&rsquo;attente dans l&rsquo;\u00e9diteur Gutenberg, nous avons acc\u00e8s \u00e0 un objet\/package global\u00a0: <code>wp<\/code>. Il s&rsquo;agit d&rsquo;un objet Javascript tr\u00e8s vari\u00e9 et il contient tout un tas de composants et de fonctions utiles que nous utiliserons pour cr\u00e9er des blocs. Lors de l&rsquo;\u00e9criture de Javascript pour des blocs personnalis\u00e9s, vous vous r\u00e9f\u00e9rerez \u00e0 <code>wp<\/code>beaucoup de choses.<\/p>\n<p>Par cons\u00e9quent, il est courant, \u00e0 la fois en Javascript moderne et en React, de d\u00e9structurer ce que nous voulons en utiliser. Fondamentalement, cela signifie simplement que nous d\u00e9finissons des variables locales \u00e0 partir de parties d&rsquo;une structure plus grande. Par exemple, la premi\u00e8re fonction que nous utiliserons est <code>registerBlockType()<\/code>celle qui existe dans <code>wp.blocks<\/code>. Nous pourrions invoquer la fonction comme suit\u00a0:<\/p>\n<pre><code>wp.blocks.registerBlockType();<\/code><\/pre>\n<p>Mais c&rsquo;est plus facile de le d\u00e9structurer comme \u00e7a :<\/p>\n<pre><code>const { registerBlockType } = wp.blocks;\nregisterBlockType();<\/code><\/pre>\n<p>Vous pouvez maintenant vous r\u00e9f\u00e9rer directement \u00e0 la fonction sans la pr\u00e9fixer avec sa structure. Cela devient beaucoup plus utile lorsque nous nous r\u00e9f\u00e9rons \u00e0 des fonctions ou \u00e0 des composants que nous r\u00e9p\u00e9terons souvent.<\/p>\n<p>Nous ferons une restructuration dans cette s\u00e9rie, et au fur et \u00e0 mesure que nous avancerons dans le didacticiel, nous verrons \u00e0 quel point notre code devient plus lisible et plus court.<\/p>\n<h2>Enregistrer un nouveau bloc<\/h2>\n<p>La fonction d&rsquo;enregistrement d&rsquo;un nouveau bloc personnalis\u00e9 est <code>registerBlockType()<\/code>disponible dans le <code>wp.blocks<\/code>package. Il accepte deux param\u00e8tres\u00a0; d&rsquo;abord une cha\u00eene avec l&rsquo;espace de noms et le nom du bloc, et ensuite un objet avec la configuration compl\u00e8te du bloc.<\/p>\n<p>Gutenberg s&rsquo;attend \u00e0 ce que tous les blocs aient un espace de noms et un nom, d\u00e9finis avec une barre oblique entre eux. L&rsquo;espace de noms sert \u00e0 garantir que le nom de votre bloc n&rsquo;entrera pas en conflit avec d&rsquo;autres blocs susceptibles d&rsquo;utiliser le m\u00eame nom. Tous les blocs de WordPress utilisent l&rsquo;espace de noms <code>core<\/code>. Par exemple, le bloc de paragraphe standard dans WordPress porte le nom <code>core\/paragraph<\/code>. Si vous choisissez un autre espace de noms, vous pouvez \u00e9galement cr\u00e9er un bloc nomm\u00e9 paragraphe sans causer de probl\u00e8mes.<\/p>\n<p>D\u00e9cidez d&rsquo;un espace de noms de version slug qui vous est propre. J&rsquo;utiliserai l&rsquo;espace de noms <code>awp<\/code>(version courte de A White Pixel) dans cette s\u00e9rie.<\/p>\n<p>Ouvrez le fichier source que nous avons cr\u00e9\u00e9 \u00e0 la derni\u00e8re \u00e9tape\u00a0; <code>src\/block-awhitepixel-myfirstblock.js<\/code>, chez un \u00e9diteur. Nous appellerons d&rsquo;abord <code>registerBlockType<\/code>depuis destructured <code>wp.blocks<\/code>, avec le nom <code>awp\/firstblock<\/code>. Ajustez votre nom et votre espace de noms au fur et \u00e0 mesure.<\/p>\n<pre><code>const { registerBlockType } = wp.blocks;\n\u00a0\nregisterBlockType('awp\/firstblock', {\n    \/\/ Your block configuration and code here\n});<\/code><\/pre>\n<p>Dans le deuxi\u00e8me param\u00e8tre, l&rsquo;objet de configuration de bloc, nous devons d\u00e9finir quelques propri\u00e9t\u00e9s pour qu&rsquo;il soit enregistr\u00e9 avec succ\u00e8s. N&rsquo;oubliez pas que la configuration du bloc est un objet, ce qui signifie que vous devez tout \u00e9crire sous forme de paires cl\u00e9 + valeur, s\u00e9par\u00e9es par une virgule. Il y a pas mal de propri\u00e9t\u00e9s de configuration possibles, alors passons en revue celles-ci et nous verrons le code final \u00e0 la fin.<\/p>\n<h3>Obligatoire\u00a0: titre<\/h3>\n<p>La premi\u00e8re propri\u00e9t\u00e9 requise est <code>title<\/code>. C&rsquo;est le nom tel qu&rsquo;il appara\u00eetra lorsque vous s\u00e9lectionnerez un bloc. D\u00e9finissez cette propri\u00e9t\u00e9 comme n&rsquo;importe quel nom que vous souhaitez dans une cha\u00eene.<\/p>\n<p>Nous ajouterons ce qui suit comme titre\u00a0:<\/p>\n<pre><code>title: 'My first block',<\/code><\/pre>\n<p>PS: Nous reviendrons sur la fa\u00e7on dont nous \u00e9crivons toutes les cha\u00eenes de notre bloc pour nous assurer qu&rsquo;elles peuvent \u00eatre traduites dans la partie 8. Mais pour l&rsquo;instant, nous allons rester simples et simplement \u00e9crire des cha\u00eenes.<\/p>\n<h3>Obligatoire\u00a0: cat\u00e9gorie<\/h3>\n<p>La propri\u00e9t\u00e9 <code>category<\/code>d\u00e9finit o\u00f9 dans quelle cat\u00e9gorie de bloc votre bloc appara\u00eetra lorsque vous s\u00e9lectionnez des blocs \u00e0 ins\u00e9rer dans l&rsquo;\u00e9diteur. Les valeurs possibles sont <code>common<\/code>, <code>formatting<\/code>, <code>layout<\/code>, <code>widgets<\/code>, <code>embed<\/code>.<\/p>\n<p>Mettons-le dans <code>common<\/code>, la premi\u00e8re cat\u00e9gorie de bloc.<\/p>\n<pre><code>category: 'common',<\/code><\/pre>\n<h3>Facultatif\u00a0: ic\u00f4ne<\/h3>\n<p>Si vous avez utilis\u00e9 Gutenberg, vous avez probablement remarqu\u00e9 que tous les blocs ont des ic\u00f4nes. Vous pouvez ajouter une ic\u00f4ne \u00e0 votre bloc avec une cha\u00eene qui fait r\u00e9f\u00e9rence \u00e0 l&rsquo;un des <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dashicons de WordPress<\/a>, ou vous pouvez fournir un <code>svg<\/code>\u00e9l\u00e9ment personnalis\u00e9.<\/p>\n<p>Je vais juste choisir l&rsquo;un des dashicons de WordPress, le <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/#smiley\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">smiley<\/a> &#8211; mais vous pouvez choisir celui que vous voulez. Notez que vous ignorez l&rsquo;inclusion de &quot;dashicons-&quot; dans votre nom de classe d&rsquo;ic\u00f4nes.<\/p>\n<pre><code>icon: 'smiley',<\/code><\/pre>\n<h3>Facultatif\u00a0: description<\/h3>\n<p>Vous pouvez fournir une description qui sera affich\u00e9e dans la barre lat\u00e9rale Param\u00e8tres (sur le c\u00f4t\u00e9 droit) lorsque le bloc est actif.<\/p>\n<p>Je vais juste ajouter un texte rapide \u00e0 titre d&rsquo;exemple\u00a0:<\/p>\n<pre><code>description: 'Learning in progress',<\/code><\/pre>\n<h3>Facultatif\u00a0: mots cl\u00e9s<\/h3>\n<p>Gutenberg prend en charge une fonctionnalit\u00e9 de recherche lors du choix des types de blocs. Vous pouvez fournir un tableau de correspondances possibles dans la propri\u00e9t\u00e9 <code>keywords<\/code>. Sans <code>keywords<\/code>vous ne trouveriez votre bloc qu&rsquo;en recherchant son nom.<\/p>\n<p>J&rsquo;ajouterai <code>example<\/code>et <code>test<\/code>, afin que nous puissions facilement trouver notre bloc personnalis\u00e9 lorsque nous commen\u00e7ons \u00e0 taper l&rsquo;un de ces mots-cl\u00e9s.<\/p>\n<pre><code>keywords: ['example', 'test'],<\/code><\/pre>\n<h3>Facultatif\u00a0: attributs<\/h3>\n<p>La propri\u00e9t\u00e9 <code>attributes<\/code>est une propri\u00e9t\u00e9 tr\u00e8s importante que nous reviendrons assez souvent dans cette s\u00e9rie de tutoriels. C&rsquo;est l\u00e0 que vous stockez vos donn\u00e9es structur\u00e9es et les informations saisies par l&rsquo;utilisateur pour votre bloc. Vous pouvez l&rsquo;imaginer sous forme de variables. Nous ne l&rsquo;ajouterons pas pour l&rsquo;instant, mais nous y reviendrons certainement tr\u00e8s bient\u00f4t.<\/p>\n<h3>(En quelque sorte) obligatoire\u00a0: modifier et facultatif\u00a0: enregistrer<\/h3>\n<p>Dans <code>edit<\/code>et <code>save<\/code>les propri\u00e9t\u00e9s sont en fait l&rsquo;endroit o\u00f9 vous ajouterez tout votre code pour la sortie de l&rsquo;\u00e9diteur et le rendu frontal. Ces deux propri\u00e9t\u00e9s attendent une fonction qui doit renvoyer une sortie.<\/p>\n<p>La propri\u00e9t\u00e9 <code>edit<\/code>d\u00e9crit la structure de votre bloc dans l&rsquo;\u00e9diteur. La <code>save<\/code>propri\u00e9t\u00e9 g\u00e8re essentiellement deux choses; la sortie de votre bloc en frontend, mais aussi la structure de la fa\u00e7on dont votre bloc est enregistr\u00e9 dans la base de donn\u00e9es. Vous travaillerez principalement dans <code>edit<\/code>car c&rsquo;est l\u00e0 que vous ajoutez des entr\u00e9es pour entrer ou choisir des choses et mettre \u00e0 jour les donn\u00e9es du bloc. La <code>save<\/code>fonction ne doit en aucun cas mettre \u00e0 jour ou modifier les donn\u00e9es, elle doit simplement sortir.<\/p>\n<p>Gutenberg doit pouvoir reconstruire votre bloc avec tous ses param\u00e8tres dans l&rsquo;\u00e9diteur \u00e0 partir de ce qui est sorti dans la <code>save<\/code>fonction (et les attributs). Si Gutenberg ouvre un message o\u00f9 la sortie du bloc pr\u00e9c\u00e9demment enregistr\u00e9 diff\u00e8re (m\u00eame l\u00e9g\u00e8rement) de ce qui est d\u00e9fini dans l&rsquo;enregistrement, votre bloc deviendra invalide.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d21609214.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d21609214.png\" alt=\"Cr\u00e9er un bloc Gutenberg personnalis\u00e9 - Partie 2\u00a0: Enregistrer un bloc\" ><\/a><\/p>\n<p>Je peux vous garantir que vous rencontrerez souvent cela lors du d\u00e9veloppement de blocs personnalis\u00e9s. Lorsque cela se produit, vous devez supprimer le bloc (des points dans la barre d&rsquo;outils) et le rajouter. Je recommande \u00e9galement d&rsquo;actualiser le navigateur (F5 ou CTRL+R).<\/p>\n<p>WordPress a une <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/block-api\/block-edit-save\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">page de documentation<\/a> d\u00e9di\u00e9e aux fonctions d&rsquo;\u00e9dition et d&rsquo;enregistrement du bloc si vous souhaitez en savoir plus.<\/p>\n<p>En ce qui concerne notre premier bloc, produisons quelque chose de basique. Nous renverrons la m\u00eame chose pour <code>edit<\/code>et <code>save<\/code>; un \u00ab:)\u00bb entour\u00e9 de <code>&lt;div&gt;<\/code>. L&rsquo;ic\u00f4ne du bloc est un smiley apr\u00e8s tout.<\/p>\n<pre><code>edit:() =&gt; { \n    return &lt;div&gt;:)&lt;\/div&gt; \n},\nsave:() =&gt; { \n    return &lt;div&gt;:)&lt;\/div&gt; \n}<\/code><\/pre>\n<h3>Autres propri\u00e9t\u00e9s<\/h3>\n<p>Il existe des propri\u00e9t\u00e9s plus facultatives pour <code>registerBlockType<\/code>; <code>parent<\/code>, <code>supports<\/code>, <code>transforms<\/code>, <code>example<\/code>et <code>styles<\/code>. Nous allons les ignorer pour le moment, car la plupart sont destin\u00e9s \u00e0 la construction de blocs plus avanc\u00e9s ou personnalis\u00e9s. Si vous souhaitez en savoir plus \u00e0 ce sujet, consultez <a href=\"https:\/\/developer.wordpress.org\/block-editor\/developers\/block-api\/block-registration\/#block-configuration\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la documentation de WordPress<\/a>.<\/p>\n<h2>Code de bloc de registre final<\/h2>\n<p>Notre code ressemble maintenant \u00e0 ceci.<\/p>\n<pre><code>const { registerBlockType } = wp.blocks;\n\u00a0\nregisterBlockType('awp\/firstblock', {\n    title: 'My first block',\n    category: 'common',\n    icon: 'smiley',\n    description: 'Learning in progress',\n    keywords: ['example', 'test'],\n    edit: () =&gt; { \n        return &lt;div&gt;:)&lt;\/div&gt; \n    },\n    save: () =&gt; { \n        return &lt;div&gt;:)&lt;\/div&gt; \n    }\n});<\/code><\/pre>\n<p>Avec cela, nous en avons assez pour que notre bloc soit enregistr\u00e9 avec succ\u00e8s en tant que bloc personnalis\u00e9. Voyons cela en pratique dans l&rsquo;\u00e9diteur Gutenberg.<\/p>\n<p>Avez-vous pens\u00e9 \u00e0 compiler votre Javascript\u00a0? \u00c0 l&rsquo;\u00e9tape pr\u00e9c\u00e9dente, nous avons appris que nous ne pouvions pas charger ce fichier Javascript dans Gutenberg\u00a0; nous avons besoin de la version compil\u00e9e. Vous d\u00e9veloppez g\u00e9n\u00e9ralement avec <code>npm run start<\/code>une ex\u00e9cution en arri\u00e8re-plan, ou vous pouvez simplement ex\u00e9cuter <code>npm run build<\/code>une fois maintenant. Cela devrait compiler notre source Javascript et le placer l\u00e0 o\u00f9 vous l&rsquo;avez d\u00e9fini pour qu&rsquo;il soit plac\u00e9 et nomm\u00e9 dans votre fichier <code>webpack.config.js<\/code>.<\/p>\n<h2>La partie PHP de l&rsquo;enregistrement d&rsquo;un bloc<\/h2>\n<p>Pour chaque bloc, vous devez enregistrer le fichier Javascript et c&rsquo;est exactement la m\u00eame chose que vous enregistreriez n&rsquo;importe quel autre script dans WordPress &#8211; en utilisant <code>[wp_register_script](https:\/\/developer.wordpress.org\/reference\/functions\/wp_register_script\/)()<\/code>. Notez que nous enregistrons le script, pas le mettons en file d&rsquo;attente. En effet, nous devons \u00e9galement appeler une fonction PHP pour enregistrer chaque bloc personnalis\u00e9, et cette fonction est responsable de la mise en file d&rsquo;attente du script lorsque cela est n\u00e9cessaire.<\/p>\n<p>Je pr\u00e9f\u00e8re conserver le code li\u00e9 \u00e0 Gutenberg dans un fichier s\u00e9par\u00e9 dans mes th\u00e8mes. Mais vous pouvez, et nous le ferons dans ce tutoriel, simplement \u00e9crire tout le code PHP directement \u00e0 l&rsquo;int\u00e9rieur du th\u00e8me <code>functions.php<\/code>pour des raisons de simplicit\u00e9.<\/p>\n<p>Je recommande d&rsquo;utiliser le <code>init<\/code>crochet pour votre fonction, et non <code>enqueue_block_assets<\/code>. Nous pouvons mettre \u00e0 la fois l&rsquo;enregistrement du script et l&rsquo;enregistrement du bloc ensemble.<\/p>\n<pre><code>add_action('init', function() {\n    wp_register_script('awp-myfirstblock-js', get_template_directory_uri(). '\/assets\/js\/gutenberg\/block-awhitepixel-myfirstblock.js');\n\u00a0\n    register_block_type('awp\/firstblock', [\n        'editor_script' =&gt; 'awp-myfirstblock-js',\n    ]);\n});<\/code><\/pre>\n<p>La fonction PHP que nous utiliserons pour enregistrer un nouveau bloc est <code>[register_block_type](https:\/\/developer.wordpress.org\/reference\/functions\/register_block_type\/)()<\/code>. De m\u00eame que Javascript, <code>registerBlockType()<\/code>il accepte deux param\u00e8tres\u00a0; l&rsquo;espace de noms et le nom du bloc, et un tableau avec des arguments. Assurez-vous de fournir exactement le m\u00eame espace de noms et le m\u00eame nom en PHP qu&rsquo;en Javascript.<\/p>\n<p>Dans le deuxi\u00e8me argument, il y a quelques arguments possibles (dont nous reviendrons sur certains plus tard dans cette s\u00e9rie). Mais le plus important est celui <code>editor_script<\/code>o\u00f9 vous fournissez le handle (premier param\u00e8tre de <code>wp_register_script()<\/code>) du script enregistr\u00e9.<\/p>\n<p>Et c&rsquo;est tout!<\/p>\n<h2>Notre bloc dans l&rsquo;\u00e9diteur Gutenberg<\/h2>\n<p>Maintenant, lorsque vous actualisez votre \u00e9diteur dans un article, vous devriez trouver notre bloc &#8211; soit en ouvrant la cat\u00e9gorie Commun, soit en recherchant l&rsquo;un des mots cl\u00e9s ou le nom que vous avez fourni.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d216d1cdb.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d216d1cdb.png\" alt=\"Cr\u00e9er un bloc Gutenberg personnalis\u00e9 - Partie 2\u00a0: Enregistrer un bloc\" ><\/a><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d217e1762.gif\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151978-61e4d217e1762.gif\" alt=\"Cr\u00e9er un bloc Gutenberg personnalis\u00e9 - Partie 2\u00a0: Enregistrer un bloc\" ><\/a><\/p>\n<p>Notre bloc rend un simple &quot;:)&quot; \u00e0 la fois dans l&rsquo;\u00e9diteur et dans le frontend. Pour l&rsquo;instant, vous ne pouvez rien modifier dans le bloc, mais c&rsquo;est ce que nous apprendrons dans les prochaines \u00e9tapes\u00a0!<\/p>\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>Dans cette le\u00e7on de didacticiel, nous allons \u00e9crire du Javascript pour enregistrer notre bloc personnalis\u00e9. \u00c0 la fin, nous enregistrerons le script et cr\u00e9erons le code PHP n\u00e9cessaire.<\/p>\n","protected":false},"author":1,"featured_media":151979,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,893,936,936,1110,811,811,841,841,862,862],"tags":[1167],"class_list":{"0":"post-234259","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-code-2","9":"category-gutenberg-3","11":"category-n-a","12":"category-plugins-2","14":"category-tutoriels","16":"category-wordpress-3","18":"tag-affiai-fr"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234259","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=234259"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/151979"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}