{"id":233841,"date":"2023-02-22T17:54:00","date_gmt":"2023-02-22T14:54:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233841"},"modified":"2022-11-11T12:44:52","modified_gmt":"2022-11-11T09:44:52","slug":"como-controlar-blocos-do-gutenberg-para-postagens-no-wordpress-desative-blocos-e-modelos-de-bloco","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-controlar-blocos-do-gutenberg-para-postagens-no-wordpress-desative-blocos-e-modelos-de-bloco\/","title":{"rendered":"Como controlar blocos do Gutenberg para postagens no WordPress: desative blocos e modelos de bloco"},"content":{"rendered":"\n<p>O novo editor do WordPress, Gutenberg, oferece ao autor grande flexibilidade para criar conte\u00fado rico. Mas, em alguns casos, voc\u00ea pode precisar limitar um pouco isso, seja como webmaster do site ou como desenvolvedor de temas. Neste post veremos como podemos fornecer limita\u00e7\u00f5es de bloco no Gutenberg usando PHP.<\/p>\n<p>Existem funcionalidades internas para definir algumas limita\u00e7\u00f5es em blocos com os quais muitos ainda n\u00e3o est\u00e3o familiarizados. Isso pode ser \u00fatil quando voc\u00ea precisa que certas postagens sigam o mesmo design ou conte\u00fado, ou se quiser ajudar autores n\u00e3o t\u00e9cnicos a n\u00e3o serem sobrecarregados pelo n\u00famero de blocos no Gutenberg. Outro exemplo inclui adicionar automaticamente os blocos de an\u00fancios necess\u00e1rios (se voc\u00ea tiver um plug-in de an\u00fancios) entre os textos nas postagens. Voc\u00ea pode for\u00e7ar isso ou usar essas t\u00e9cnicas para ajudar os autores a lembrar de adicion\u00e1-las.<\/p>\n<p>Neste post, veremos duas maneiras de controlar blocos no WordPress Gutenberg. Uma maneira \u00e9 limitar o tipo de blocos que podem ser adicionados. Em outras palavras, remova certos tipos de blocos que voc\u00ea n\u00e3o deseja que estejam dispon\u00edveis. Podemos fazer isso especificamente por tipo de postagem ou globalmente. A outra maneira \u00e9 usar modelos de bloco. O WordPress permite que voc\u00ea decida um conjunto de blocos predefinidos ao criar um novo post. Isso \u00e9 feito por tipo de postagem. Com os modelos de bloco, voc\u00ea pode oferecer ao autor os blocos iniciais para ajud\u00e1-lo a escrever o post, ou pode bloquear os blocos no lugar para que o autor n\u00e3o possa alterar sua posi\u00e7\u00e3o ou adicionar novos.<\/p>\n<p>Voc\u00ea pode fazer ambos com PHP ou Javascript. Este guia ir\u00e1 cobrir o caminho do PHP.<\/p>\n<h2>Remover tipos de bloco<\/h2>\n<h3>Lista negra<\/h3>\n<p>Existe um filtro PHP no WordPress chamado <code>allowed_block_types<\/code>. Este filtro fornece dois par\u00e2metros; uma matriz de todos os blocos e o objeto post. Tudo o que precisamos fazer \u00e9 gerenciar o array antes de devolv\u00ea-lo. E como tamb\u00e9m obtemos o objeto de postagem no filtro, tamb\u00e9m podemos adicionar regras por tipo de postagem ou outras informa\u00e7\u00f5es meta de postagem.<\/p>\n<p>A matriz de blocos consiste em sequ\u00eancias de nomes com namespace do bloco. Todos os blocos no WordPress requerem um namespace prefixado antes do nome do bloco. Para os blocos principais do WordPress o namespace \u00e9 &#8221; <code>core\/<\/code>&quot; e para os blocos de incorpora\u00e7\u00e3o do WordPress o namespace \u00e9 &#8221; &#8220;. <a href=\"https:\/\/awhitepixel.com\/blog\/wordpress-gutenberg-access-parse-blocks-with-php\/#block-names\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Por<\/a><code>core-embed\/<\/code> exemplo, o bloco de cabe\u00e7alho tem o nome &#8221; <code>core\/heading<\/code>&quot; neste array. <a href=\"https:\/\/awhitepixel.com\/blog\/wordpress-gutenberg-access-parse-blocks-with-php\/#block-names\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">para acessar e analisar os blocos de uma postagem<\/a>.<\/p>\n<p>Aqui est\u00e1 um exemplo r\u00e1pido de como usar o filtro para remover todos os blocos, exceto o par\u00e1grafo. Isso se aplicar\u00e1 a todos os tipos de postagem.<\/p>\n<pre><code>add_filter('allowed_block_types', function($block_types, $post) {\n    return ['core\/paragraph'];\n}, 10, 2);<\/code><\/pre>\n<p>Se voc\u00ea adicionar este c\u00f3digo no arquivo do seu tema <code>functions.php<\/code>ou plugin, o resultado \u00e9 que o Gutenberg n\u00e3o permite nenhum outro bloco al\u00e9m do par\u00e1grafo. Voc\u00ea nem poder\u00e1 ver outros blocos, nem tentar atra\u00ed-los digitando &#8221; <code>\/<\/code>&#8221; na postagem (atalho de bloco) ou procurando por eles.<\/p>\n<\/p>\n<p>Podemos definir os blocos que queremos manter ou remover por tipo de postagem. N\u00f3s simplesmente verificamos a propriedade <code>post_type<\/code>no objeto post. No exemplo de c\u00f3digo abaixo, definimos um novo array dos blocos que queremos permitir e adicionamos essa regra apenas para o tipo de postagem personalizado &#8216; <code>book<\/code>&#8216;.<\/p>\n<pre><code>add_filter('allowed_block_types', function($block_types, $post) {\n    $allowed = [\n        'core\/paragraph',\n        'core\/heading',\n        'core\/image'\n    ];\n    if ($post-&gt;post_type == 'book') {\n        return $allowed;\n    }\n    return $block_types;\n}, 10, 2);<\/code><\/pre>\n<p>Com o c\u00f3digo acima voc\u00ea obt\u00e9m todos os blocos ao editar posts e p\u00e1ginas, mas ao editar o tipo de post personalizado &#8216; <code>book<\/code>&#8216;, voc\u00ea s\u00f3 pode adicionar par\u00e1grafos, t\u00edtulos e imagens \u00fanicas.<\/p>\n<p>Use sua imagina\u00e7\u00e3o para adicionar suas pr\u00f3prias regras. Como temos o objeto post, podemos acessar a maioria das informa\u00e7\u00f5es que precisar\u00edamos. Talvez voc\u00ea precise limitar as op\u00e7\u00f5es de bloco por um valor meta p\u00f3s? Por exemplo, por modelo de p\u00e1gina escolhido, categoria de postagem escolhida ou outra coisa.<\/p>\n<h3>Lista de permiss\u00f5es<\/h3>\n<p>At\u00e9 onde posso ver, voc\u00ea s\u00f3 pode listar blocos (decidir quais remover, em vez de decidir qual manter) cancelando o registro dos blocos em um determinado ponto. E voc\u00ea tem que fazer isso com Javascript e n\u00e3o PHP.<\/p>\n<p>N\u00e3o entrarei em detalhes sobre isso, mas voc\u00ea precisar\u00e1 enfileirar um arquivo Javascript carregado <code>init<\/code>ou <code>enqueue_block_editor_assets<\/code>gancho, com <code>wp-dom-ready<\/code>e <code>wp-blocks<\/code>como depend\u00eancia. Dentro do script voc\u00ea pode configurar uma vari\u00e1vel daquela(s) que deseja remover, seguindo as mesmas regras para namespaces e nomes de blocos acima. E para cada nome de bloco voc\u00ea chama a fun\u00e7\u00e3o <code>unregisterBlockType()<\/code>do <code>wp.blocks<\/code>pacote. Normalmente, voc\u00ea precisaria fazer isso dentro de uma fun\u00e7\u00e3o <code>wp.domReady()<\/code>para garantir que a ordem de carregamento do script esteja correta.<\/p>\n<p>Algo assim:<\/p>\n<pre><code>var removeBlocks = [\n    'core\/paragraph',\n    'core\/heading',\n    'core\/image'\n];\n\u00a0\nwp.domReady(function() {\n    removeBlocks.forEach(function(blockName) {\n        wp.blocks.unregisterBlockType(blockName);\n    });\n});<\/code><\/pre>\n<p>A remo\u00e7\u00e3o de tipos de blocos \u00e9 uma forma de controlar blocos no Gutenberg. Vamos dar uma olhada na outra maneira, talvez mais divertida, de controlar blocos: templates de blocos.<\/p>\n<h2>Modelos de bloco<\/h2>\n<p>Outra maneira de controlar os blocos do Gutenberg no WordPress \u00e9 usando modelos de bloco. O WordPress possui uma funcionalidade que permite preencher novos posts com um conjunto de blocos predefinidos. Isso pode ser \u00fatil para ajudar os autores, mostrando a eles uma sugest\u00e3o de estrutura de bloco. Voc\u00ea tamb\u00e9m pode optar por bloquear esses blocos pr\u00e9-preenchidos, n\u00e3o permitindo que os autores reorganizem ou adicionem outros blocos. Isso \u00e9 \u00fatil quando voc\u00ea deseja que as postagens tenham uma estrutura e design espec\u00edficos \u2013 por exemplo, certificando-se de que todas as postagens desse tipo de postagem tenham suas informa\u00e7\u00f5es estruturadas exatamente da mesma maneira.<\/p>\n<p>Podemos adicionar modelos de bloco com um novo par\u00e2metro \u00e0 <code>[register_post_type](https:\/\/developer.wordpress.org\/reference\/functions\/register_post_type\/)()<\/code>fun\u00e7\u00e3o que \u00e9 usada para registrar tipos de postagem personalizados (nota: o novo par\u00e2metro ainda n\u00e3o foi adicionado \u00e0 documenta\u00e7\u00e3o). Voc\u00ea tamb\u00e9m pode adicionar ou ajustar os par\u00e2metros em tipos de postagem existentes, como postagens e p\u00e1ginas &#8211; veja abaixo como.<\/p>\n<p>O novo par\u00e2metro para <code>register_post_type()<\/code>\u00e9 &#8216; <code>template<\/code>&#8216;. Como valor para &#8216; <code>template<\/code>&#8216; voc\u00ea precisa fornecer um array de blocos. Cada bloco deve ser um array tamb\u00e9m. No m\u00ednimo, voc\u00ea precisa fornecer o primeiro elemento da matriz; o nome do bloco (por exemplo <code>core\/paragraph<\/code>, ). Voc\u00ea pode opcionalmente adicionar um segundo elemento de array para atributos e um terceiro elemento de array para blocos aninhados (por exemplo, Cover, Columns blocks). Ficar\u00e1 mais claro quando voc\u00ea vir o c\u00f3digo.<\/p>\n<p>Vamos come\u00e7ar simples. Suponha que tenhamos uma <code>register_post_type()<\/code>chamada de fun\u00e7\u00e3o para registrar um tipo de postagem personalizado &#8216; <code>book<\/code>&#8216;. Queremos pr\u00e9-preencher todas as novas postagens desse tipo de postagem com um bloco de par\u00e1grafo com um espa\u00e7o reservado informando ao autor o que ele deve escrever.<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        ...\n        'template' =&gt; [\n            ['core\/paragraph', ['placeholder' =&gt; __('Write your intro here...', 'txtdomain')]],\n        ],\n    ]);\n});<\/code><\/pre>\n<p>Observe que a matriz de atributos (com &#8216;placeholder&#8217;) \u00e9 opcional. Agora, com este par\u00e2metro &#8216;template&#8217; sempre que criarmos novos posts, ele ser\u00e1 criado com um bloco de par\u00e1grafo que possui o placeholder &#8220;Escreva sua introdu\u00e7\u00e3o aqui\u2026&#8221;.<\/p>\n<p>Vejamos um exemplo mais complicado: blocos aninhados. Digamos que queremos adicionar um bloco de capa que tenha um bloco de t\u00edtulo, um par\u00e1grafo e um bot\u00e3o dentro dele, alinhado ao centro. O t\u00edtulo e o par\u00e1grafo ter\u00e3o um espa\u00e7o reservado:<\/p>\n<pre><code>'template' =&gt; [\n    ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n        ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n        ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n        ['core\/button', ['align' =&gt; 'center']]\n    ]],\n],<\/code><\/pre>\n<p>A imagem abaixo mostra o que obteremos quando criarmos novas publica\u00e7\u00f5es de livros. Parece menos intimidante do que uma tela em branco, certo?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d330dc012.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-152040-61e4d330dc012.png\" alt=\"Como controlar blocos do Gutenberg para postagens no WordPress: desative blocos e modelos de bloco\" ><\/a><\/p>\n<p>Tenha em mente que os atributos s\u00e3o diferentes em cada tipo de bloco e tamb\u00e9m podem diferir em sua configura\u00e7\u00e3o. No exemplo de c\u00f3digo acima, adiciono dois atributos ao bloco Cover; bloqueie o alinhamento para &#8220;Full Width&#8221; e sobreponha a cor a uma cor predefinida de uma paleta de cores personalizada.<\/p>\n<p>Os alinhamentos de blocos &#8220;Wide Width&#8221; e &#8220;Full Width&#8221; devem ser especificamente suportados em seu tema. Eu tenho um post que explica <a href=\"https:\/\/awhitepixel.com\/blog\/developer-guide-using-wordpress-gutenberg-for-creating-frontpages-and-landing-pages\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">como adicionar suporte em seu tema para alinhamentos de blocos adicionais<\/a> se voc\u00ea n\u00e3o estiver familiarizado com isso. Em segundo lugar, meu tema est\u00e1 fornecendo uma paleta de cores personalizada do Gutenberg, onde uma das cores da paleta \u00e9 chamada de &#8216;perfil azul&#8217;. Isso provavelmente n\u00e3o existir\u00e1 em seu c\u00f3digo. O link acima tamb\u00e9m explica isso se voc\u00ea n\u00e3o estiver familiarizado com a paleta personalizada do Gutenberg.<\/p>\n<p>A raz\u00e3o pela qual escolho fornecer uma cor de sobreposi\u00e7\u00e3o como atributo \u00e9 por causa de como o bloco Cover se comporta. Quando voc\u00ea cria um bloco de capa, ele come\u00e7a pedindo para voc\u00ea escolher entre definir uma imagem de fundo ou escolher uma cor de fundo. At\u00e9 que o autor escolha ativamente um deles, o bloco Capa oculta qualquer conte\u00fado que tenha (o t\u00edtulo, par\u00e1grafo e bot\u00e3o que adicionamos)! Eles aparecer\u00e3o de repente depois de escolher uma imagem ou cor. Portanto, para evitar confus\u00e3o, pr\u00e9-selecionei uma cor de fundo para que o autor veja todos os blocos dentro imediatamente. A cor sempre pode ser alterada no Inspetor (barra lateral) de qualquer maneira.<\/p>\n<h3>Bloqueando o modelo de bloco<\/h3>\n<p>Com o modelo de bloco fornecido, o autor pode reorganizar e remover qualquer um dos blocos pr\u00e9-preenchidos, bem como adicionar novos blocos em qualquer lugar que desejar. Se voc\u00ea quiser evitar isso, h\u00e1 outro par\u00e2metro para <code>register_post_type()<\/code>: &#8216; <code>template_lock<\/code>&#8216;.<\/p>\n<p>O <code>template_lock<\/code>par\u00e2metro &#8216; &#8216; aceita dois valores; &#8216; <code>all<\/code>&#8216; ou &#8216; <code>insert<\/code>&#8216;.<\/p>\n<p>Definir &#8216; <code>template_lock<\/code>&#8216; para &#8216; <code>all<\/code>&#8216; bloqueia completamente os autores de reorganizar, remover ou adicionar novos blocos ao seu modelo de bloco. Eles s\u00f3 podem editar o conte\u00fado e as configura\u00e7\u00f5es dos blocos definidos como modelo de bloco. Isso \u00e9 \u00fatil nos casos em que voc\u00ea deseja que todos os tipos de postagem consistam nos mesmos blocos na mesma ordem &#8211; nem mais nem menos.<\/p>\n<p>Usar &#8216; <code>insert<\/code>&#8216; para &#8216; <code>template_lock<\/code>&#8216; permite que os autores reorganizem os blocos no modelo de bloco. Mas os autores ainda n\u00e3o podem adicionar novos blocos ou excluir nenhum dos blocos.<\/p>\n<p>Veja como voc\u00ea bloquearia completamente o modelo de bloco para o tipo de postagem personalizado &#8216; <code>book<\/code>&#8216;:<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        ...\n        'template' =&gt; [\n            ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n                ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n                ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n                ['core\/button', ['align' =&gt; 'center']]\n            ]],\n        ],\n        'template_lock' =&gt; 'all',\n    ]);\n});<\/code><\/pre>\n<p>O uso de um modelo de bloco bloqueado no Gutenberg ser\u00e1 semelhante ao abaixo. Observe que os \u00edcones de a\u00e7\u00e3o para reorganizar blocos est\u00e3o ausentes, bem como remover links de blocos no menu. Tamb\u00e9m n\u00e3o h\u00e1 \u00edcones de a\u00e7\u00e3o para adicionar novos blocos (o pequeno &#8220;+&#8221;) em qualquer lugar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d33596f0b.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-152040-61e4d33596f0b.gif\" alt=\"Como controlar blocos do Gutenberg para postagens no WordPress: desative blocos e modelos de bloco\" ><\/a><\/p>\n<h3>Ajustando modelos de bloco para tipos de postagem existentes<\/h3>\n<p>Se voc\u00ea quiser usar modelos de bloco em posts ou p\u00e1ginas, voc\u00ea tamb\u00e9m pode fazer isso. Conecte uma fun\u00e7\u00e3o <code>init<\/code>e use <code>[get_post_type_object](https:\/\/developer.wordpress.org\/reference\/functions\/get_post_type_object\/)()<\/code>. Forne\u00e7a o tipo de postagem que voc\u00ea deseja como par\u00e2metro (&#8216; <code>post<\/code>&#8216; ou &#8216; <code>page<\/code>&#8216;). Isso retorna um objeto ao qual voc\u00ea pode atribuir a propriedade &#8216; <code>template<\/code>&#8216; e &#8216; <code>template_lock<\/code>&#8216;.<\/p>\n<p>Este \u00e9 um exemplo de adi\u00e7\u00e3o do mesmo modelo de bloco e propriedade de bloqueio acima nas p\u00e1ginas:<\/p>\n<pre><code>add_action('init', function() {\n    $page_post_type = get_post_type_object('page');\n    $page_post_type-&gt;template = [\n        ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n            ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n            ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n            ['core\/button', ['align' =&gt; 'center']]\n        ]],\n    ];\n    $page_post_type-&gt;template_lock = 'all';\n});<\/code><\/pre>\n<h2>Conclus\u00e3o<\/h2>\n<p>Neste post aprendemos como obter maior controle de blocos no editor WordPress Gutenberg. H\u00e1 muitos benef\u00edcios em fazer isso, especialmente em combina\u00e7\u00e3o com tipos de postagem personalizados que precisam seguir uma estrutura espec\u00edfica. Usar as t\u00e9cnicas acima ajudar\u00e1 voc\u00ea a agilizar mais seu processo, tanto como webmaster (ajudando as pessoas a escrever postagens melhores) quanto como desenvolvedor de temas (garantindo um design comum). Os modelos de bloco bloqueados podem ser uma solu\u00e7\u00e3o diferente dos modelos de postagem personalizados e meta de postagem.<\/p>\n<p>A personaliza\u00e7\u00e3o de modelos de bloco ainda \u00e9 um recurso bastante oculto do Gutenberg no momento. Mas espero que isso mude \u00e0 medida que o Gutenberg se desenvolve e ganha um lugar mais familiar no WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explica como desabilitar blocos espec\u00edficos no WordPress Gutenberg e como adicionar e definir modelos de bloco para tipos de postagem. Tudo em PHP.<\/p>\n","protected":false},"author":1,"featured_media":224326,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,722,837,941,941,920,1110,920,816,816,837,846,846,867,867],"tags":[1170],"class_list":["post-233841","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","category-gutenberg-8","category-outro","category-n-a","category-plug-ins","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233841","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=233841"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233841\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224326"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=233841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=233841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=233841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}