{"id":231981,"date":"2023-01-06T12:48:00","date_gmt":"2023-01-06T09:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231981"},"modified":"2022-11-10T05:59:12","modified_gmt":"2022-11-10T02:59:12","slug":"ajouter-une-vue-personnalisee-a-lecran-tous-les-messages","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/ajouter-une-vue-personnalisee-a-lecran-tous-les-messages\/","title":{"rendered":"Ajouter une vue personnalis\u00e9e \u00e0 l&rsquo;\u00e9cran Tous les messages"},"content":{"rendered":"\n<p><strong>TL;DR<\/strong>: Je vais travailler sur une s\u00e9rie qui examine comment r\u00e9aliser une t\u00e2che utile avec des taxonomies, des cat\u00e9gories probables, puis la refactoriser en un plugin orient\u00e9 objet qui servira de plugin utilitaire pour les taxonomies, en g\u00e9n\u00e9ral .<\/p>\n<hr \/>\n<h3>Une br\u00e8ve histoire des messages OOP<\/h3>\n<p>Il y a quelque temps, j&rsquo;ai fait <a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">une longue s\u00e9rie<\/a> sur les principes de la programmation orient\u00e9e objet (et j&rsquo;ai essay\u00e9 de partager une quantit\u00e9 d\u00e9cente sur la fa\u00e7on de r\u00e9aliser certaines choses dans le contexte de WordPress).<\/p>\n<p>J&rsquo;ai \u00e9galement \u00e9crit un tas d&rsquo;articles sur l&rsquo;ensemble du paradigme au fil des ans pour ceux qui souhaitent rattraper <a href=\"https:\/\/tommcfarlin.com\/tag\/object-oriented-programming\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">certains de ces articles<\/a>.<\/p>\n<p>Et je m&rsquo;en voudrais de ne pas partager qu&rsquo;un <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bon ami<\/a> \u00e0 moi a litt\u00e9ralement \u00e9crit un <a href=\"https:\/\/tommcfarlin.com\/object-oriented-programming-using-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">livre sur le sujet<\/a> aussi.<\/p>\n<p>Et donc, alors que je r\u00e9fl\u00e9chissais \u00e0 divers sujets sur lesquels \u00e9crire (apr\u00e8s avoir pris une p\u00e9riode de temps certes plus longue que pr\u00e9vu), j&rsquo;ai pens\u00e9 qu&rsquo;il pourrait \u00eatre utile de parler de choses pratiques que nous pouvons faire avec des API et des crochets normaux, puis refactorisez cela dans un type de plugin utilitaire.<\/p>\n<h2>Ajouter une vue personnalis\u00e9e<\/h2>\n<p>Pour les besoins du travail que je vais partager dans cette d\u00e9mo, j&rsquo;utilise les \u00e9l\u00e9ments suivants\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/localwp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Local par Flywheel<\/a> avec un <code>https:\/\/sandbox.local<\/code>domaine<\/li>\n<li><a href=\"https:\/\/www.tableplus.io\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TablePlus<\/a> pour l&rsquo;acc\u00e8s \u00e0 la base de donn\u00e9es<\/li>\n<li><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code<\/a> comme mon IDE<\/li>\n<li>Et les <a href=\"https:\/\/github.com\/WebDevStudios\/php-coding-standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">normes de codage PHP WDS<\/a> pour tout le PHP que vous allez voir.<\/li>\n<\/ul>\n<p>Si vous voulez suivre ce que j&rsquo;ai en cours, utilisez tout ce qui pr\u00e9c\u00e8de (je ne sais pas si je partagerai tout mais si vous voyez des captures d&rsquo;\u00e9cran et des extraits de code, vous saurez d&rsquo;o\u00f9 cela vient ).<\/p>\n<p>Sur ce, voici une courte digression sur <code>views<\/code>WordPress (et ce n&rsquo;est pas comme Views au sens de <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93controller\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVC<\/a> ou <a href=\"https:\/\/en.wikipedia.org\/wiki\/Model%E2%80%93view%E2%80%93viewmodel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MVVM<\/a> ).<\/p>\n<h3>Vues WordPress<\/h3>\n<p>Au moment d&rsquo;\u00e9crire ces lignes, il ne semble pas y avoir de d\u00e9claration claire et concise sur ce qu&rsquo;est une vue WordPress. En termes de crochet disponible, nous avons <code>views_edit-post<\/code>.<\/p>\n<p>Donc, si nous prenons ce crochet particulier et ce qu&rsquo;il fait, peut-\u00eatre que quelque chose comme \u00e7a suffirait :<\/p>\n<p>Une vue WordPress est une page sur laquelle nous pouvons afficher tous les articles conformes \u00e0 un ensemble de crit\u00e8res sp\u00e9cifi\u00e9s.<\/p>\n<p>Pr\u00eat \u00e0 l&#8217;emploi, ce crit\u00e8re inclut g\u00e9n\u00e9ralement des publications telles que\u00a0:<\/p>\n<ul>\n<li>Publi\u00e9,<\/li>\n<li>Brouillons,<\/li>\n<li>Poubelle,<\/li>\n<li>Programm\u00e9,<\/li>\n<li>Etc.<\/li>\n<\/ul>\n<p>Mais que se passe-t-il si vous avez un autre message qui a d&rsquo;autres crit\u00e8res selon lesquels vous souhaitez filtrer\u00a0? Bien s\u00fbr, vous pouvez filtrer par la liste d\u00e9roulante qui est pr\u00e9sente \u00e0 l&rsquo;\u00e9cran (par exemple, par cat\u00e9gorie), et c&rsquo;est tr\u00e8s bien, mais que se passe-t-il si vous souhaitez utiliser un crit\u00e8re personnalis\u00e9 pour [une raison quelconque]\u00a0?<\/p>\n<p>Par exemple, que se passe-t-il si vous ne voulez pas avoir \u00e0 cliquer sur un certain \u00e9l\u00e9ment, puis \u00e0 filtrer, puis \u00e0 afficher les publications\u00a0? Au lieu de cela, vous voulez voir un lien vers les crit\u00e8res, le nombre de publications qui correspondent aux crit\u00e8res, puis les filtrer\u00a0?<\/p>\n<p>C&rsquo;est l\u00e0 que la possibilit\u00e9 de modifier les vues entre en jeu.<\/p>\n<p>Et pour les besoins de cet article, je vais expliquer comment introduire une nouvelle ancre en haut de la page qui r\u00e9pertoriera le nombre de messages pour une cat\u00e9gorie sp\u00e9cifi\u00e9e.<\/p>\n<h3>Quelle est notre opinion\u00a0?<\/h3>\n<p>Dans ce cas, nous utiliserons Non cat\u00e9goris\u00e9 car une installation par d\u00e9faut a d\u00e9j\u00e0 un article non cat\u00e9goris\u00e9 disponible et nous pouvons facilement modifier certains changements autour de cela.<\/p>\n<p>Pour ce faire, nous allons \u00e9crire un <code>mu-plugin<\/code>afin qu&rsquo;il soit plac\u00e9 dans le <code>mu-plugins<\/code>r\u00e9pertoire. Si votre installation n&rsquo;en a pas, ajoutez le r\u00e9pertoire, puis ajoutez <code>add-custom-view.php<\/code>au r\u00e9pertoire\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de802d2a6.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-158448-61e6de802d2a6.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>\u00c0 partir de l\u00e0, le fichier de plugin initial peut ressembler \u00e0 ceci\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de83d7406.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-158448-61e6de83d7406.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Dans un premier temps, nous proc\u00e9dons comme suit\u00a0:<\/p>\n<ol>\n<li>D\u00e9finition d&rsquo;un espace de noms,<\/li>\n<li>Ajouter un filtre,<\/li>\n<li>Ensuite, configurez la fonction qui acceptera l&rsquo;ensemble par d\u00e9faut de <code>$views<\/code>et renverra le tableau de <code>$views<\/code>apr\u00e8s qu&rsquo;ils ont \u00e9t\u00e9 modifi\u00e9s.<\/li>\n<\/ol>\n<p>Alors, que devons-nous faire \u00e0 partir d&rsquo;ici\u00a0?<\/p>\n<h3>L&rsquo;ensemble des exigences<\/h3>\n<p>Pour r\u00e9aliser ce que nous voulons, nous devons \u00eatre capables de :<\/p>\n<ul>\n<li>Pr\u00e9cisez le nom de la cat\u00e9gorie,<\/li>\n<li>Ajoutez le lien vers la cat\u00e9gorie ainsi que le nombre de messages avec cette cat\u00e9gorie \u00e0 la liste des vues,<\/li>\n<li>La possibilit\u00e9 de d\u00e9terminer si nous sommes sur la page de cat\u00e9gorie pour styliser correctement la liste<\/li>\n<li>La possibilit\u00e9 de filtrer par type de publication,<\/li>\n<li>Et un moyen de le tester.<\/li>\n<\/ul>\n<p>Tout ce qui pr\u00e9c\u00e8de sera couvert dans le code plus tard dans l&rsquo;article, mais la cinqui\u00e8me \u00e9tape n\u00e9cessite que vous cr\u00e9iez manuellement une cat\u00e9gorie afin que nous puissions facilement tester si le reste du code fonctionne.<\/p>\n<p>Alors allez-y et faites-le. La cat\u00e9gorie peut \u00eatre nomm\u00e9e n&rsquo;importe quoi (j&rsquo;ai utilis\u00e9 Sample Category). Une fois cela fait, \u00e9crivons le code du reste du plugin.<\/p>\n<h4>D\u00e9terminer notre point de vue<\/h4>\n<p>Tout d&rsquo;abord, je vais partager une fonction qui d\u00e9terminera sur quelle page nous nous trouvons et fera l&rsquo;une des deux choses suivantes\u00a0:<\/p>\n<ul>\n<li>Si nous sommes sur une page qui a le m\u00eame param\u00e8tre de cha\u00eene de requ\u00eate pour l&rsquo;ID de notre cat\u00e9gorie, je fournirai un nom de classe ; sinon, nous retournerons une cha\u00eene vide.<\/li>\n<\/ul>\n<p>Pour ce faire, la fonction doit :<\/p>\n<ol>\n<li>Accepter un nom de cat\u00e9gorie,<\/li>\n<li>Initialiser une variable pour les attributs,<\/li>\n<li>Comparer les variables de cha\u00eene de requ\u00eate<\/li>\n<li>D\u00e9terminez si le nom de la cat\u00e9gorie et l&rsquo;ID de la cat\u00e9gorie sont identiques,<\/li>\n<li>Et retournez la bonne valeur, si ce n&rsquo;est pas le cas.<\/li>\n<\/ol>\n<p>Voici \u00e0 quoi ressemble ma fonction :<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8684cf5.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-158448-61e6de8684cf5.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Cela pourrait \u00e9galement \u00eatre simplifi\u00e9 avec un op\u00e9rateur ternaire, mais pour le garder aussi lisible que possible, je le laisse tel quel pour le moment.<\/p>\n<h4>D\u00e9terminer le nom de la cat\u00e9gorie<\/h4>\n<p>Cette fonctionnalit\u00e9 particuli\u00e8re est en fait tr\u00e8s simple et bien que nous ayons l&rsquo;habitude de recevoir les commentaires des utilisateurs dans une grande partie de ce que nous faisons, nous allons coder en dur cette valeur.<\/p>\n<p>Pour ce faire, nous allons simplement stocker ceci dans une variable qui est pass\u00e9e dans le reste du code.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8963b8b.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-158448-61e6de8963b8b.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Vous avez vu la variable pr\u00e9c\u00e9demment transmise \u00e0 la fonction ci-dessus et la verrez \u00e9galement utilis\u00e9e dans la version finale du code source.<\/p>\n<h4>R\u00e9cup\u00e9rer les r\u00e9sultats des publications avec la cat\u00e9gorie<\/h4>\n<p>Pour cela, nous devons faire deux choses :<\/p>\n<ol>\n<li>R\u00e9cup\u00e9rer tous les <code>object_id<\/code>enregistrements qui ont l&rsquo;ID de cette cat\u00e9gorie,<\/li>\n<li>Filtrez le contenu qui n&rsquo;est pas destin\u00e9 \u00e0 ces messages.<\/li>\n<\/ol>\n<p>Il y a deux ou trois choses que je veux mentionner ici: Tout d&rsquo;abord, nous allons utiliser la <code>get_cat_ID<\/code>fonction fournie par WordPress. Cela r\u00e9cup\u00e8re l&rsquo;ID de la cat\u00e9gorie en fonction du nom entrant.<\/p>\n<p>Deuxi\u00e8mement, j&rsquo;utilise deux fonctions &#8211; dont une est une boucle &#8211; pour examiner le statut de publication d&rsquo;un \u00e9l\u00e9ment. Ce n&rsquo;est pas la mani\u00e8re la plus efficace de le faire. Au lieu de cela, nous pourrions utiliser une requ\u00eate plus \u00e9l\u00e9gante pour r\u00e9cup\u00e9rer uniquement les publications\u00a0; cependant, la premi\u00e8re it\u00e9ration de ceci est destin\u00e9e \u00e0 montrer non seulement comment le faire \u00e0 partir de z\u00e9ro, mais aussi pour un public qui peut ne pas \u00eatre aussi \u00e0 l&rsquo;aise avec d&rsquo;autres aspects de l&rsquo;\u00e9criture de code.<\/p>\n<p>Avec cela, voici comment nous obtenons tous les enregistrements dans WordPress qui sont marqu\u00e9s comme non class\u00e9s.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8c7738c.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-158448-61e6de8c7738c.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Et avec cela, nous prenons les r\u00e9sultats et les envoyons dans cette fonction qui renverra le nombre d&rsquo;\u00e9l\u00e9ments qui ne sont que des messages.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de8fa1d77.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-158448-61e6de8fa1d77.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Avec cela, nous avons la plupart de ce dont nous avons besoin pour commencer \u00e0 assembler notre ancre de vue.<\/p>\n<h4>G\u00e9n\u00e9rer une ancre de vue<\/h4>\n<p>Maintenant que nous avons toutes les fonctions n\u00e9cessaires pour g\u00e9n\u00e9rer une ancre de vue, nous devons les assembler \u00e0 la place de <code>sprintf<\/code>pour un formatage de cha\u00eene s\u00fbr.<\/p>\n<p>L&rsquo;objectif est de g\u00e9n\u00e9rer une ancre qui\u00a0:<\/p>\n<ul>\n<li>Ressemble au reste des ancres,<\/li>\n<li>Affiche le nombre de messages,<\/li>\n<li>Est en gras chaque fois que vous consultez lesdits messages.<\/li>\n<\/ul>\n<p>Pour ce faire, nous devons cr\u00e9er le lien et ajouter les arguments de cha\u00eene de requ\u00eate appropri\u00e9s. Cela signifie que nous allons cr\u00e9er un lien vers <code>edit.php<\/code>avec des arguments pour\u00a0:<\/p>\n<ul>\n<li>l&rsquo;identifiant de la cat\u00e9gorie,<\/li>\n<li>le type de poste,<\/li>\n<li>et tous les messages qui ont cette cat\u00e9gorie.<\/li>\n<\/ul>\n<p>Ensuite, nous devrons inclure\u00a0:<\/p>\n<ul>\n<li>tous les attributs pour styliser le lien,<\/li>\n<li>le nom de la cat\u00e9gorie,<\/li>\n<li>et juste le contenu du message <code>post_type<\/code>.<\/li>\n<\/ul>\n<p>Pour ce faire, nous pouvons utiliser la fonction suivante :<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158448-61e6de92c2f38.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-158448-61e6de92c2f38.png\" alt=\"Ajouter une vue personnalis\u00e9e \u00e0 l&#039;\u00e9cran Tous les messages\" ><\/a><\/p>\n<p>Cela fait plusieurs choses :<\/p>\n<ol>\n<li>Accepte le tableau standard <code>$views<\/code>de WordPress,<\/li>\n<li>Ajoute notre ancre personnalis\u00e9e comme indiqu\u00e9 ci-dessus,<\/li>\n<li>Le pousse dans le <code>$views<\/code>tableau,<\/li>\n<li>Le renvoie \u00e0 WordPress pour le rendu.<\/li>\n<\/ol>\n<p>Et c&rsquo;est tout!<\/p>\n<h4>Le tester<\/h4>\n<p>Pour tester cela, chargez votre navigateur et vous devriez voir un nouveau lien Non class\u00e9 \u00e0 c\u00f4t\u00e9 du reste des ancres telles que Tout, Publi\u00e9, Mine, Corbeille, Planifi\u00e9, etc.<\/p>\n<p>Apr\u00e8s cela, modifiez une cat\u00e9gorie de messages et supprimez Non cat\u00e9goris\u00e9, puis revisitez ou actualisez la page Tous les messages et vous verrez que le lien est actif et styl\u00e9, selon la fa\u00e7on dont vous le visualisez, et il inclut le nombre de messages qui sont cat\u00e9goris\u00e9s comme tel aussi.<\/p>\n<h2>Maintenant, vers GitHub<\/h2>\n<p>J&rsquo;ai charg\u00e9 <a href=\"https:\/\/github.com\/tommcfarlin\/add-custom-view\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la premi\u00e8re it\u00e9ration de ce plugin sur GitHub<\/a> afin que vous puissiez le t\u00e9l\u00e9charger et le placer dans votre <code>mu-plugins<\/code>r\u00e9pertoire pour le tester.<\/p>\n<p>Dans les prochains articles, j&rsquo;aimerais commencer par changer cela en un paradigme orient\u00e9 objet afin que ce soient les changements qui arrivent dans le plugin et le contenu \u00e0 venir dans les futurs articles.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec ce mu-plugin, je montre comment ajouter une vue personnalis\u00e9e \u00e0 la page WordPress All Posts en fonction d&rsquo;une cat\u00e9gorie sp\u00e9cifi\u00e9e.<\/p>\n","protected":false},"author":1,"featured_media":158449,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,832,801,841,862],"tags":[1167],"class_list":["post-231981","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-guide-pour-les-debutants","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231981","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=231981"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/158449"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}