{"id":234222,"date":"2023-02-15T20:29:00","date_gmt":"2023-02-15T17:29:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234222"},"modified":"2022-11-12T00:57:01","modified_gmt":"2022-11-11T21:57:01","slug":"guide-tout-sur-les-hooks-dans-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/guide-tout-sur-les-hooks-dans-wordpress\/","title":{"rendered":"Guide : Tout sur les Hooks dans WordPress"},"content":{"rendered":"\n<p>Vous a-t-on d\u00e9j\u00e0 dit que la solution \u00e0 votre probl\u00e8me est que vous devez \u00abvous accrocher\u00bb \u00e0 quelque chose pour faire votre travail ou l&rsquo;utiliser <code>add_filter<\/code>sans vraiment comprendre pourquoi cela g\u00e2che tout? Les crochets constituent la base de WordPress et fournissent des th\u00e8mes et des plugins un moyen d&rsquo;interagir ou modifier le code. Dans cet article, nous d\u00e9crirons ce que sont les crochets, comment ils fonctionnent et comment nous pouvons les utiliser.<\/p>\n<h2>Que sont les crochets\u00a0?<\/h2>\n<p>Au fur et \u00e0 mesure que WordPress parcourt son code (depuis le d\u00e9but du chargement des classes, du chargement des plugins, du chargement du th\u00e8me, de la requ\u00eate pour la requ\u00eate en cours et enfin du rendu du HTML), il passe par un tas de &quot;points de contr\u00f4le&quot;\u00a0; crochets. Lorsqu&rsquo;un crochet est rencontr\u00e9, WordPress arr\u00eate ce qu&rsquo;il fait &#8211; et v\u00e9rifie s&rsquo;il y a des fonctions (dans le th\u00e8me, le plugin ou WordPress lui-m\u00eame) enregistr\u00e9es pour s&rsquo;ex\u00e9cuter sur ce crochet. S&rsquo;il y en a, WordPress ex\u00e9cutera toutes ces fonctions, puis continuera l\u00e0 o\u00f9 il s&rsquo;est arr\u00eat\u00e9.<\/p>\n<p>Cela permet aux plugins, aux th\u00e8mes et \u00e0 WordPress lui-m\u00eame de &quot;s&rsquo;accrocher&quot; \u00e0 certains points pour ajouter, par exemple, des feuilles de style dans la <code>&lt;head&gt;<\/code>balise du th\u00e8me, modifier la fa\u00e7on dont WordPress interroge les publications ou simplement modifier le contenu de la publication s&rsquo;il le souhaite.<\/p>\n<p>Il existe deux types de crochets; actions et filtres. Ils fonctionnent de mani\u00e8re assez similaire les uns aux autres, mais \u00e0 une exception pr\u00e8s que nous examinerons de plus pr\u00e8s ci-dessous.<\/p>\n<h2>Actions et filtres<\/h2>\n<p>Pour vous accrocher \u00e0 une action ou \u00e0 un filtre, vous devez d\u00e9finir le crochet (par son nom) que vous souhaitez utiliser et d\u00e9finir un rappel &#8211; qui est le nom de la fonction que vous souhaitez ex\u00e9cuter. Dans la plupart des cas, les crochets fournissent des param\u00e8tres ou des variables qui sont pertinents pour le crochet.<\/p>\n<p>Les actions sont simplement des &quot;points de contr\u00f4le&quot; dans l&rsquo;ex\u00e9cution de WordPress, o\u00f9 vous pouvez effectuer une t\u00e2che ou faire \u00e9cho \u00e0 quelque chose. Dans de rares cas, vous pouvez modifier un objet (fourni dans les param\u00e8tres), de sorte que toutes les ex\u00e9cutions suivantes fonctionnent avec cet objet modifi\u00e9.<\/p>\n<p>Les filtres servent \u00e0 modifier une variable ou une sortie. Tous les crochets de filtre fourniront la variable que vous pouvez modifier comme premier param\u00e8tre et vous permettront de la modifier ou de renvoyer quelque chose de diff\u00e9rent.<\/p>\n<p>WordPress ex\u00e9cute de nombreux crochets, mais vous pouvez cr\u00e9er les v\u00f4tres dans votre plugin ou votre th\u00e8me. Cela permet aux d\u00e9veloppeurs d&rsquo;\u00e9tendre et de modifier votre code ; par exemple modifier un plugin via un th\u00e8me, ou modifier le th\u00e8me parent via le th\u00e8me enfant.<\/p>\n<p>De nombreuses fonctions de WordPress, g\u00e9n\u00e9ralement utilis\u00e9es pour imprimer des publications, sont \u00e9galement des filtres ou des actions. Par exemple, la fonction <code>the_title()<\/code>imprime le titre du message, mais c&rsquo;est aussi un filtre.<\/p>\n<p>Voyons comment nous nous y accrochons dans la pratique.<\/p>\n<h2>S&rsquo;accrocher aux actions<\/h2>\n<p>Pour vous accrocher \u00e0 une action, vous utilisez la m\u00e9thode <code>add_action()<\/code>. Au minimum, il n\u00e9cessite deux param\u00e8tres\u00a0; le nom du crochet et le rappel\u00a0; le nom de la fonction que vous souhaitez ex\u00e9cuter. Vous pouvez \u00e9ventuellement fournir la priorit\u00e9 comme troisi\u00e8me param\u00e8tre et d\u00e9finir le nombre d&rsquo;arguments qui seront transmis \u00e0 votre fonction de rappel. Nous verrons les deux param\u00e8tres optionnels plus tard, mais pour l&rsquo;instant, voici un exemple de <code>add_action<\/code>:<\/p>\n<pre><code>add_action('init', 'my_function_name');\nfunction my_function_name() {\n    \/\/ Do your stuff\n}<\/code><\/pre>\n<p>Le premier param\u00e8tre \u00e0 <code>add_action<\/code>est le nom de l&rsquo;action ; dans ce cas <code>init<\/code>, qui est un crochet WordPress assez courant qui se produit lors de l&rsquo;initialisation. Le deuxi\u00e8me param\u00e8tre est votre rappel, dans ce cas le nom de la fonction que nous souhaitons ex\u00e9cuter. Ensuite, tout ce que vous avez \u00e0 faire est de d\u00e9finir une fonction avec ce nom et d&rsquo;y ajouter votre code.<\/p>\n<p>Vous pouvez \u00e9galement utiliser des fonctions anonymes o\u00f9 vous d\u00e9finissez la fonction \u00e0 l&rsquo;int\u00e9rieur <code>add_action<\/code>au lieu de fournir un nom de fonction, comme ceci ;<\/p>\n<pre><code>add_action('init', function() {\n    \/\/ Do your stuff\n});<\/code><\/pre>\n<p>De nombreux d\u00e9veloppeurs pr\u00e9f\u00e8rent cette m\u00e9thode car cela \u00e9vite le risque de red\u00e9finir une fonction PHP portant le m\u00eame nom.<\/p>\n<p>Si vous devez ex\u00e9cuter une fonction d\u00e9finie dans une classe PHP, vous devez fournir un tableau comme param\u00e8tre de rappel\u00a0; o\u00f9 le premier \u00e9l\u00e9ment est l&rsquo;objet de classe et le deuxi\u00e8me \u00e9l\u00e9ment est le nom de la fonction\u00a0:<\/p>\n<pre><code>class MyClass {\n    public function __construct() {\n        add_action('init', [$this, 'myFunctionName']);\n    }\n\u00a0\n    public function myFunctionName() {\n        \/\/ Do your stuff\n    }\n}<\/code><\/pre>\n<h2>Accrochage aux filtres<\/h2>\n<p>Pour s&rsquo;accrocher \u00e0 un filtre, on utilise la fonction <code>add_filter()<\/code>. Comme pour les actions ci-dessus, le premier param\u00e8tre est le nom du filtre et le second est votre rappel. Vous pouvez \u00e9ventuellement fournir la priorit\u00e9 comme troisi\u00e8me param\u00e8tre et le nombre d&rsquo;arguments comme quatri\u00e8me. Voici un exemple de <code>add_filter<\/code>:<\/p>\n<pre><code>add_filter('the_title', 'my_function_name');\nfunction my_function_name($title) {\n    \/\/ Do your stuff\n    return $title;\n}<\/code><\/pre>\n<p>Dans l&rsquo;exemple ci-dessus, nous nous accrochons au filtre <code>the_title<\/code>(qui imprime le titre du message) et dit \u00e0 WordPress d&rsquo;ex\u00e9cuter notre fonction. Tous les filtres fourniront toujours un argument\u00a0; la variable \u00e0 modifier. Dans ma fonction, je l&rsquo;ai nomm\u00e9 <code>$title<\/code>car je sais qu&rsquo;il contient le titre du message. \u00c0 l&rsquo;int\u00e9rieur de la fonction, je peux la modifier ou remplacer compl\u00e8tement la variable. Il est important de se rappeler que dans les filtres, vous <strong>devez toujours renvoyer la variable<\/strong>. Si vous ne renvoyez rien dans votre fonction de rappel, la variable se vide. Si j&rsquo;ignorais l&rsquo;instruction de retour dans l&rsquo;exemple ci-dessus, aucun titre de message ne ferait \u00e9cho nulle part.<\/p>\n<p>L&rsquo;argument variable et la r\u00e8gle de retour de quelque chose dans votre fonction de rappel sont pratiquement la seule diff\u00e9rence entre les filtres et les actions. Tout le reste fonctionne de la m\u00eame mani\u00e8re. Vous pouvez suivre les exemples de fonctions et de classes anonymes indiqu\u00e9s pour les actions ci-dessus pour les filtres, ainsi que les param\u00e8tres facultatifs priorit\u00e9 et nombre d&rsquo;arguments\u00a0; que nous examinerons ensuite.<\/p>\n<h2>Priorit\u00e9<\/h2>\n<p>Le troisi\u00e8me param\u00e8tre (facultatif) de <code>add_action<\/code>et <code>add_filter<\/code>est un entier qui d\u00e9finit la priorit\u00e9 de votre fonction de rappel. Ceci est utile dans les cas o\u00f9 il y a plusieurs fonctions (pas n\u00e9cessairement de vous dans votre th\u00e8me ou plugin, rappelez-vous que WordPress lui-m\u00eame utilise ses propres crochets), et vous devez d\u00e9cider laquelle ex\u00e9cuter en premier.<\/p>\n<p>Si aucune priorit\u00e9 n&rsquo;est fournie, la valeur par d\u00e9faut est 10. Plus la priorit\u00e9 est faible, plus il est ex\u00e9cut\u00e9 t\u00f4t, et plus la priorit\u00e9 est \u00e9lev\u00e9e, plus il est ex\u00e9cut\u00e9 tard. Vous ne pouvez pas fournir une priorit\u00e9 n\u00e9gative.<\/p>\n<p>Imaginez plusieurs fonctions de rappel enregistr\u00e9es dans <code>init<\/code>. Si aucune priorit\u00e9 n&rsquo;a \u00e9t\u00e9 fournie pour plusieurs rappels, WordPress les ex\u00e9cutera dans l&rsquo;ordre dans lequel ils ont \u00e9t\u00e9 trouv\u00e9s (par exemple dans <code>functions.php<\/code>ou votre code de plugin).<\/p>\n<pre><code>add_action('init', 'my_function_name');\nadd_action('init', 'my_second_function_name');\nadd_action('init', 'my_third_function_name', 12);\nadd_action('init', 'my_fourth_function_name', 1);<\/code><\/pre>\n<p>Ce serait l&rsquo;ordre dans lequel WordPress ex\u00e9cutera les rappels ci-dessus\u00a0:<\/p>\n<ol>\n<li><code>my_fourth_function_name<\/code>(priorit\u00e9 1)<\/li>\n<li><code>my_function_name<\/code>(priorit\u00e9 10)<\/li>\n<li><code>my_second_function_name<\/code>(priorit\u00e9 10, mais appara\u00eet plus tard dans le code)<\/li>\n<li><code>my_third_function_name<\/code>(priorit\u00e9 12)<\/li>\n<\/ol>\n<h2>Nombre d&rsquo;arguments<\/h2>\n<p>Habituellement, les crochets fournissent des donn\u00e9es suppl\u00e9mentaires qui sont pertinentes et utiles pour les fonctions de rappel. Par exemple, l&rsquo;action <code>save_post<\/code>(s&rsquo;ex\u00e9cute chaque fois qu&rsquo;un article est mis \u00e0 jour) fournit deux arguments possibles\u00a0; l&rsquo;ID de publication et l&rsquo;objet de publication. Celles-ci sont utiles pour les op\u00e9rations que vous devez g\u00e9n\u00e9ralement ex\u00e9cuter sur ce crochet (par exemple, si vous souhaitez enregistrer une m\u00e9ta de publication, vous avez besoin de l&rsquo;ID de publication).<\/p>\n<p>Si aucun nombre d&rsquo;arguments n&rsquo;a \u00e9t\u00e9 fourni pour une action ou un filtre, la valeur par d\u00e9faut est 1. C&rsquo;est pourquoi vous n&rsquo;avez pas besoin de d\u00e9finir 1 <code>add_filter<\/code>pour acc\u00e9der \u00e0 la variable \u00e0 laquelle le filtre est accroch\u00e9. Les actions, cependant, ne peuvent transmettre aucun argument m\u00eame si le nombre d&rsquo;arguments est d\u00e9fini sur 1 par d\u00e9faut.<\/p>\n<p>Regardons un exemple de d\u00e9finition du nombre d&rsquo;arguments et comment nous y acc\u00e9dons dans notre fonction de rappel\u00a0:<\/p>\n<pre><code>add_action('save_post', 'my_function_name', 10, 2);\nfunction my_function_name($post_id, $post) {\n    \/\/ Do your stuff\n}<\/code><\/pre>\n<p>Dans l&rsquo;exemple ci-dessus, nous disons \u00e0 WordPress de transmettre deux arguments \u00e0 notre fonction de rappel. N&rsquo;oubliez pas que nous devons d\u00e9finir la priorit\u00e9 comme troisi\u00e8me param\u00e8tre, nous d\u00e9finissons donc g\u00e9n\u00e9ralement la valeur par d\u00e9faut, qui est 10. Quant \u00e0 notre fonction de rappel, nous pouvons maintenant d\u00e9finir le m\u00eame nombre d&rsquo;arguments que nous avons demand\u00e9, dans l&rsquo;exemple ci-dessus, c&rsquo;\u00e9tait 2.<\/p>\n<p>Si nous avions dans l&rsquo;exemple ci-dessus d\u00e9fini le nombre d&rsquo;arguments sur 1, seul le premier argument de notre fonction de rappel serait rempli. La seconde, <code>$post<\/code>, serait ind\u00e9finie.<\/p>\n<h2>Que se passe-t-il si nous avons besoin de donn\u00e9es qui n&rsquo;ont pas \u00e9t\u00e9 transmises dans le hook\u00a0?<\/h2>\n<p>C&rsquo;est enti\u00e8rement au d\u00e9veloppeur qui a cr\u00e9\u00e9 le crochet de d\u00e9finir quels arguments peuvent \u00eatre pass\u00e9s. Cela signifie que vous ne pouvez pas simplement forcer les arguments que vous souhaitez ou dont vous avez besoin dans votre fichier <code>add_action<\/code>ou <code>add_filter<\/code>. Heureusement, dans la plupart des cas, nous avons des alternatives pour obtenir les variables dont nous avons besoin. Si vous vous connectez \u00e0 une action ou \u00e0 un filtre o\u00f9 vous savez que certaines variables globales doivent \u00eatre d\u00e9finies, vous pouvez acc\u00e9der \u00e0 ces variables globales dans votre fonction de rappel. En outre, WordPress propose <a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">toute une gamme de balises conditionnelles que<\/a> vous pouvez utiliser dans vos fonctions accroch\u00e9es (\u00e0 l&rsquo;exception des tout premiers crochets qui se produisent avant que WordPress ne d\u00e9finisse ces balises conditionnelles)<\/p>\n<p>Regardons un exemple d&rsquo;acc\u00e8s aux variables globales. Le filtre <code>the_title<\/code>fournit l&rsquo;ID de publication comme argument facultatif, auquel nous pouvons acc\u00e9der en le d\u00e9finissant comme argument acceptable\u00a0;<\/p>\n<pre><code>add_filter('the_title', 'my_function_name', 10, 2);\nfunction my_function_name($title, $post_id) {\n    if ($post_id == 1) {\n        return 'First post ever!';\n    }\n    return $title;\n}<\/code><\/pre>\n<p>Cependant, nous pouvons obtenir le m\u00eame r\u00e9sultat en;<\/p>\n<pre><code>add_filter('the_title', 'my_function_name');\nfunction my_function_name($title) {\n    global $post;\n    if ($post-&gt;ID == 1) {\n        return 'First post ever!';\n    }\n    return $title;\n}<\/code><\/pre>\n<p>Si vous savez qu&rsquo;une variable globale est d\u00e9finie par le point d&rsquo;ex\u00e9cution du hook, vous pouvez la d\u00e9finir comme globale dans votre fonction de rappel et acc\u00e9der aux donn\u00e9es \u00e0 partir de l\u00e0. Par exemple, d\u00e9finir <code>global $wp_query<\/code>dans l&rsquo;exemple ci-dessus vous donnerait \u00e9galement acc\u00e8s \u00e0 l&rsquo;objet wp_query complet dans le rappel de votre fonction.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Les balises conditionnelles WordPress<\/a> sont extr\u00eamement utiles. \u00c0 moins que vous ne soyez accroch\u00e9 \u00e0 un crochet qui survient tr\u00e8s t\u00f4t dans l&rsquo;ex\u00e9cution de WordPress, ils sont disponibles. Il existe des balises conditionnelles pour v\u00e9rifier \u00e0 quelle page (mod\u00e8le) vous vous trouvez, si vous \u00eates dans un menu ou une boucle de publication, et bien plus encore. Par exemple, lors de la modification de la requ\u00eate post \u00e0 l&rsquo;aide du crochet <code>pre_get_posts<\/code>, il est tr\u00e8s utile de s&rsquo;assurer que votre code ne s&rsquo;ex\u00e9cute que dans certains cas. Par exemple;<\/p>\n<pre><code>add_action('pre_get_posts', 'my_function_name');\nfunction my_function_name($query) {\n    if (!is_admin()) {\n        \/\/ Do your stuff\n    }\n}<\/code><\/pre>\n<p>\u00c9tant donn\u00e9 que le hook <code>pre_get_posts<\/code>s&rsquo;ex\u00e9cute \u00e0 la fois dans l&rsquo;administrateur et le frontend, nous pouvons utiliser une balise conditionnelle pour nous assurer que notre code n&rsquo;affecte que la requ\u00eate frontend.<\/p>\n<h2>Cr\u00e9er vos propres crochets<\/h2>\n<p>Vous pouvez d\u00e9finir vos propres actions et filtres. Si vous \u00eates un d\u00e9veloppeur de th\u00e8mes ou de plugins, vous \u00eates encourag\u00e9 \u00e0 le faire, afin de permettre aux autres de modifier votre code sans changer le code source.<\/p>\n<p>Enregistrez une action avec <code>do_action()<\/code>et enregistrez un filtre avec <code>apply_filters()<\/code>.<\/p>\n<p>Le <code>do_action()<\/code>n\u00e9cessite un minimum de 1 param\u00e8tre\u00a0; le nom du crochet. Gardez \u00e0 l&rsquo;esprit que le nom du crochet doit \u00eatre unique (ne l&rsquo;appelez pas, par exemple <code>init<\/code>, car il s&rsquo;agit d&rsquo;un crochet principal de WordPress). Placez le <code>do_action()<\/code>o\u00f9 vous voulez que le crochet apparaisse. Par exemple, vous pouvez placer le crochet dans votre th\u00e8me <code>header.php<\/code>, juste apr\u00e8s le corps pour d\u00e9finir un crochet o\u00f9 les d\u00e9veloppeurs peuvent g\u00e9n\u00e9rer des scripts ou d&rsquo;autres contenus.<\/p>\n<pre><code>...\n&lt;body&gt;\n    &lt;?php do_action('mytheme_after_body'); ?&gt;<\/code><\/pre>\n<p>Vous pouvez ajouter autant de param\u00e8tres <code>do_action<\/code>que vous le souhaitez apr\u00e8s le nom du crochet. Essayez de garder \u00e0 l&rsquo;esprit ce dont les d\u00e9veloppeurs de donn\u00e9es auraient besoin dans vos crochets, qui ne sont pas facilement accessibles autrement.<\/p>\n<p>Le <code>apply_filters()<\/code>n\u00e9cessite un minimum de 2 param\u00e8tres ; le nom du hook et la variable sur laquelle vous enregistrez le filtre. Par exemple, votre th\u00e8me peut inscrire un filtre autour de certaines classes HTML pour permettre aux d\u00e9veloppeurs de modifier ou d&rsquo;en ajouter :<\/p>\n<pre><code>&lt;section class=\"&lt;?php echo apply_filters('mytheme_section_classes', 'section default-class'); ?&gt;\"&gt;\n    ...\n&lt;\/section&gt;<\/code><\/pre>\n<p>Comme pour les actions, vous pouvez ajouter autant de param\u00e8tres <code>apply_filters<\/code>que vous le souhaitez apr\u00e8s les deux param\u00e8tres obligatoires.<\/p>\n<h2>Conclusion et ressources utiles<\/h2>\n<p>Avec cela, j&rsquo;esp\u00e8re que vous avez acquis une solide compr\u00e9hension de la fa\u00e7on dont WordPress ex\u00e9cute la plupart de son code, comment vous pouvez modifier le code et comment vous, en tant que d\u00e9veloppeur, pouvez \u00e9galement permettre \u00e0 d&rsquo;autres d\u00e9veloppeurs d&rsquo;apporter des modifications \u00e0 votre code.<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_action<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">add_filter<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Conditional_Tags\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Balises conditionnelles WordPress<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/do_action\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">faire_action<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/apply_filters\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">appliquer_filtres<\/a><\/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>Dans ce guide pour d\u00e9butants, nous apprendrons ce que sont les hooks et les filtres WordPress, comment ils fonctionnent et comment les utiliser.<\/p>\n","protected":false},"author":1,"featured_media":153117,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,893,717,717,832,1110,832,925,925,841,841,862,862],"tags":[1167],"class_list":["post-234222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-n-a","category-sujets","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234222","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=234222"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/153117"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}