{"id":62773,"date":"2023-09-04T11:24:01","date_gmt":"2023-09-04T14:24:01","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=62773&#038;preview=true&#038;preview_id=62773"},"modified":"2023-09-11T05:01:07","modified_gmt":"2023-09-11T08:01:07","slug":"modelos-de-blocos-do-wordpress","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/","title":{"rendered":"Como Criar Modelos de Blocos do WordPress"},"content":{"rendered":"<p>Na era <a href=\"https:\/\/kinsta.com\/pt\/blog\/editor-gutenberg-wordpress\/\">Gutenberg<\/a>, o processo de design n\u00e3o est\u00e1 estritamente vinculado aos <a href=\"https:\/\/kinsta.com\/pt\/blog\/temas-wordpress-mais-rapidos\/\">temas de WordPress<\/a>. O CMS oferece aos usu\u00e1rios todas as ferramentas de design necess\u00e1rias para criar um \u00f3timo layout do site, e o bloco pretende ser algo que acrescente ainda mais ferramentas de constru\u00e7\u00e3o e design.<\/p>\n<p>Os modelos de blocos s\u00e3o um recurso que libera ainda mais poderes na cria\u00e7\u00e3o de sites. De acordo com o <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/\">Manual do Editor de Blocos<\/a>:<\/p>\n<blockquote><p><em>Um modelo de bloco \u00e9 definido como uma lista de itens de bloco. Esses blocos podem ter atributos predefinidos, conte\u00fado de espa\u00e7o reservado e ser est\u00e1ticos ou din\u00e2micos. Os modelos de bloco permitem que voc\u00ea especifique um estado inicial padr\u00e3o para uma sess\u00e3o do editor.<\/em><\/p><\/blockquote>\n<p>Em outras palavras, os modelos de bloco s\u00e3o cole\u00e7\u00f5es pr\u00e9-constru\u00eddas de blocos usados para definir um estado padr\u00e3o dinamicamente no cliente.<\/p>\n<p><strong>\ud83d\udc49 Os modelos de bloco s\u00e3o diferentes dos arquivos de modelo.<\/strong><\/p>\n<p>Os arquivos de modelo s\u00e3o arquivos PHP, como <strong>index.php<\/strong>, <strong>page.php<\/strong> e <strong>single.php<\/strong>, e funcionam da mesma forma com temas cl\u00e1ssicos e de bloco, de acordo com a <a href=\"https:\/\/kinsta.com\/pt\/blog\/hierarquia-modelos-wordpress\/\">hierarquia de modelos do WordPress<\/a>. Nos temas cl\u00e1ssicos, esses arquivos s\u00e3o escritos em PHP e HTML. Nos temas de bloco, eles s\u00e3o inteiramente feitos de blocos.<\/p>\n<p><strong>\ud83d\udc49 Os modelos de bloco s\u00e3o diferentes dos padr\u00f5es de bloco.<\/strong><\/p>\n<p>Os <a href=\"https:\/\/kinsta.com\/pt\/blog\/padroes-de-bloco-wordpress\/\">padr\u00f5es de blocos<\/a> precisam ser adicionados manualmente \u00e0s suas p\u00e1ginas, enquanto os modelos de blocos fornecem automaticamente o layout inicial e os padr\u00f5es quando voc\u00ea ou os membros da sua equipe criam uma nova publica\u00e7\u00e3o.<\/p>\n<p>Voc\u00ea tamb\u00e9m pode vincular modelos de bloco espec\u00edficos aos seus tipos de publica\u00e7\u00e3o personalizados e bloquear alguns blocos ou recursos para for\u00e7ar os usu\u00e1rios a usar seus padr\u00f5es ou evitar erros.<\/p>\n<p>Voc\u00ea tem algumas maneiras de criar modelos de bloco. Voc\u00ea pode <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/\" target=\"_blank\" rel=\"noopener noreferrer\">usar a API de blocos<\/a> para declarar uma array de tipos de blocos via PHP ou pode criar um tipo de bloco personalizado usando o componente <code>InnerBlocks<\/code>.<\/p>\n<p>Vamos come\u00e7ar!<\/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>Como criar um modelo de bloco usando PHP<\/h2>\n<p>Se voc\u00ea \u00e9 um desenvolvedor \u00e0 moda antiga, pode definir um modelo de bloco personalizado usando um plugin ou o <a href=\"https:\/\/kinsta.com\/pt\/blog\/wordpress-functions-php\/\">functions.php<\/a> do seu tema. Se optar por usar um plugin, abra seu <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-editor\/\">editor de c\u00f3digo<\/a> favorito, crie um novo arquivo PHP e adicione o seguinte c\u00f3digo:<\/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>No c\u00f3digo acima, <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_post_type_object\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>get_post_type_object<\/code><\/a> recupera um tipo de artigo pelo nome.<\/p>\n<p>Salve seu arquivo na pasta <strong>wp-content\/plugins<\/strong>, navegue at\u00e9 a tela Plugins no <a href=\"https:\/\/kinsta.com\/pt\/blog\/painel-administrativo-wordpress\/\">painel do WordPress<\/a> e ative o plugin <strong>My Block Templates<\/strong>.<\/p>\n<p>Agora, ao criar um novo artigo, o editor j\u00e1 abre com seu modelo de bloco, que inclui uma imagem, um t\u00edtulo e um texto.<\/p>\n<figure id=\"attachment_161425\" aria-describedby=\"caption-attachment-161425\" style=\"width: 1984px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161425\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-template.jpg\" alt=\"A block template automatically loaded in the post editor\" width=\"1984\" height=\"1220\"><figcaption id=\"caption-attachment-161425\" class=\"wp-caption-text\">Um modelo de bloco carregado automaticamente no editor de artigos.<\/figcaption><\/figure>\n<p>Voc\u00ea tamb\u00e9m pode adicionar uma array de configura\u00e7\u00f5es para cada bloco e criar estruturas aninhadas de blocos. A fun\u00e7\u00e3o a seguir cria um modelo de bloco mais avan\u00e7ado com blocos internos e configura\u00e7\u00f5es:<\/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>Voc\u00ea pode ver o resultado do c\u00f3digo acima na imagem a seguir:<\/p>\n<figure id=\"attachment_161426\" aria-describedby=\"caption-attachment-161426\" style=\"width: 2124px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161426\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-template-2.jpg\" alt=\"A more advanced block template\" width=\"2124\" height=\"1432\"><figcaption id=\"caption-attachment-161426\" class=\"wp-caption-text\">Um modelo de bloco mais avan\u00e7ado.<\/figcaption><\/figure>\n<p>At\u00e9 agora, usamos apenas os blocos principais. Mas voc\u00ea tamb\u00e9m pode incluir <a href=\"https:\/\/kinsta.com\/pt\/blog\/blocos-personalizados-gutenberg\/\">blocos personalizados<\/a> ou <a href=\"https:\/\/kinsta.com\/pt\/blog\/padroes-de-bloco-wordpress\/\">padr\u00f5es de blocos<\/a> em seus modelos de blocos, conforme mostrado no exemplo a seguir:<\/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>N\u00e3o h\u00e1 muita diferen\u00e7a caso voc\u00ea decida criar um modelo de bloco padr\u00e3o para um tipo de artigo personalizado j\u00e1 registrado. Basta alterar o tipo de artigo de <code>get_post_type_object<\/code> para o nome do tipo de artigo personalizado, conforme mostrado no exemplo a seguir:<\/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>Agora que voc\u00ea sabe como criar modelos de bloco, podemos seguir em frente e explorar mais casos de uso. Vamos nos aprofundar um pouco mais.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"5\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>Modelos de bloco com tipos de artigo personalizados<\/h3>\n<p>Como mencionamos anteriormente, voc\u00ea pode anexar um modelo de bloco a um tipo de artigo personalizado. Voc\u00ea pode fazer isso depois que o tipo de artigo personalizado j\u00e1 tiver sido registrado, mas talvez prefira definir um modelo de bloco no <a href=\"https:\/\/kinsta.com\/pt\/blog\/tipos-publicacoes-personalizadas-wordpress\/\">registro do tipo de artigo personalizado<\/a>.<\/p>\n<p>Nesse caso, voc\u00ea pode usar os argumentos <code>template<\/code> e <code>template_lock<\/code> da fun\u00e7\u00e3o <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_post_type\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>register_post_type<\/code><\/a> da fun\u00e7\u00e3o:<\/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>E \u00e9 isso. A imagem abaixo mostra o modelo de bloco na interface do editor para um tipo de artigo personalizado.<\/p>\n<figure id=\"attachment_161428\" aria-describedby=\"caption-attachment-161428\" style=\"width: 2124px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161428\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/cpt-block-template.jpg\" alt=\"A block template for a custom post type\" width=\"2124\" height=\"1038\"><figcaption id=\"caption-attachment-161428\" class=\"wp-caption-text\">Um modelo de bloco para um tipo de artigo personalizado.<\/figcaption><\/figure>\n<p>Quando terminar com o layout, voc\u00ea pode querer mexer nas configura\u00e7\u00f5es do bloco para ajustar o comportamento e a apar\u00eancia do seu modelo de bloco.<\/p>\n<h3>Ajustando o modelo de bloco com atributos de bloco<\/h3>\n<p>Definimos um modelo de bloco como uma lista de blocos. Cada item na lista deve ser um array contendo o nome do bloco e um array de atributos opcionais. Com arrays aninhados, voc\u00ea pode querer adicionar um terceiro array para blocos dependentes.<\/p>\n<p>Um modelo com um bloco de Colunas pode ser representado da seguinte forma:<\/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>Como mencionado acima, o segundo array da lista \u00e9 um array opcional de atributos de bloco. Esses atributos permitem que voc\u00ea personalize a apar\u00eancia do seu modelo para que voc\u00ea ou seus usu\u00e1rios possam se concentrar no conte\u00fado da publica\u00e7\u00e3o sem se preocupar com o layout e o design da p\u00e1gina.<\/p>\n<p>Para come\u00e7ar, voc\u00ea pode usar o editor de blocos para criar uma estrutura de blocos que possa ser usada como refer\u00eancia para o seu modelo.<\/p>\n<figure id=\"attachment_161769\" aria-describedby=\"caption-attachment-161769\" style=\"width: 2118px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161769\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/a-block-layout.jpg\" alt=\"A block layout in the block editor\" width=\"2118\" height=\"1066\"><figcaption id=\"caption-attachment-161769\" class=\"wp-caption-text\">Um layout de bloco no editor de blocos.<\/figcaption><\/figure>\n<p>Adicione seus blocos, personalize o layout e os estilos e, em seguida, passe para o editor de c\u00f3digo e encontre os delimitadores de blocos.<\/p>\n<figure id=\"attachment_161770\" aria-describedby=\"caption-attachment-161770\" style=\"width: 2042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161770\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/block-delimiter.jpg\" alt=\"The block delimiter of a Columns block\" width=\"2042\" height=\"248\"><figcaption id=\"caption-attachment-161770\" class=\"wp-caption-text\">O delimitador de bloco de um bloco de Colunas.<\/figcaption><\/figure>\n<p>Delimitadores de bloco armazenam configura\u00e7\u00f5es e estilos do bloco em pares chave\/valor. Voc\u00ea pode simplesmente copiar e colar chaves e valores da marca\u00e7\u00e3o do bloco para preencher seu array de atributos:<\/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>Repita o processo para cada bloco no modelo e voc\u00ea ter\u00e1 terminado.<\/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>Bloqueando blocos<\/h3>\n<p>Voc\u00ea pode bloquear blocos espec\u00edficos ou todos os blocos inclu\u00eddos em seu modelo usando a propriedade <code>template_lock<\/code> do <code>$post_type_object<\/code>.<\/p>\n<p>O bloqueio de modelos pode ser muito \u00fatil quando voc\u00ea tem um blog com v\u00e1rios autores e deseja impedir que todos ou determinados usu\u00e1rios alterem o layout do modelo de bloco.<\/p>\n<p>No exemplo a seguir, estamos bloqueando todos os blocos do modelo de bloco:<\/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>Os blocos bloqueados mostram um \u00edcone de bloqueio na barra de ferramentas de blocos e na exibi\u00e7\u00e3o de lista:<\/p>\n<figure id=\"attachment_161430\" aria-describedby=\"caption-attachment-161430\" style=\"width: 1798px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161430\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/locked-block.jpg\" alt=\"A locked heading block\" width=\"1798\" height=\"1050\"><figcaption id=\"caption-attachment-161430\" class=\"wp-caption-text\">Um bloco de t\u00edtulo bloqueado.<\/figcaption><\/figure>\n<p>Os usu\u00e1rios podem desbloquear blocos no menu Options, dispon\u00edvel na barra de ferramentas de blocos.<\/p>\n<figure id=\"attachment_161431\" aria-describedby=\"caption-attachment-161431\" style=\"width: 1368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161431\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlock-block.jpg\" alt=\"Unlocking a block\" width=\"1368\" height=\"1120\"><figcaption id=\"caption-attachment-161431\" class=\"wp-caption-text\">Desbloqueio de um bloco.<\/figcaption><\/figure>\n<p>Quando voc\u00ea clica em <strong>Unlock<\/strong>, um pop-up modal permite que voc\u00ea ative\/desative o movimento, impe\u00e7a a remo\u00e7\u00e3o ou ambos:<\/p>\n<figure id=\"attachment_161433\" aria-describedby=\"caption-attachment-161433\" style=\"width: 1368px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161433\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlock-block-2.jpg\" alt=\"Locking options\" width=\"1368\" height=\"1120\"><figcaption id=\"caption-attachment-161433\" class=\"wp-caption-text\">Op\u00e7\u00f5es de bloqueio.<\/figcaption><\/figure>\n<p><code>template_lock<\/code> Voc\u00ea pode assumir um dos <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#locking\" target=\"_blank\" rel=\"noopener noreferrer\">seguintes valores<\/a>:<\/p>\n<ul>\n<li><code>all<\/code> &#8211; Impede que os usu\u00e1rios adicionem novos blocos, movam e removam blocos existentes<\/li>\n<li><code>insert<\/code> &#8211; Impede que os usu\u00e1rios adicionem novos blocos e removam blocos existentes<\/li>\n<li><code>contentOnly<\/code> &#8211; Os usu\u00e1rios s\u00f3 podem editar o conte\u00fado dos blocos inclu\u00eddos no modelo. Observe que o site <code>contentOnly<\/code> s\u00f3 pode ser usado no n\u00edvel do padr\u00e3o ou do modelo e deve ser gerenciado com c\u00f3digo. (Consulte tamb\u00e9m <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/curating-the-editor-experience\/#locking-apis\" target=\"_blank\" rel=\"noopener noreferrer\">APIs de bloqueio<\/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=\"size-full wp-image-161435\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/prevent-removal.jpg\" alt=\"Setting template_lock to prevent template blocks from being removed\" width=\"2370\" height=\"1410\"><figcaption id=\"caption-attachment-161435\" class=\"wp-caption-text\">Configura\u00e7\u00e3o de template_lock para evitar que os blocos de modelo sejam removidos.<\/figcaption><\/figure>\n<p>Se quiser bloquear blocos espec\u00edficos, voc\u00ea pode usar o atributo <code>lock<\/code> em cada bloco:<\/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>O atributo <code>lock<\/code> pode assumir um dos <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#individual-block-locking\" target=\"_blank\" rel=\"noopener noreferrer\">seguintes valores<\/a>:<\/p>\n<ul>\n<li><code>remove<\/code>: Impede que os usu\u00e1rios removam um bloco.<\/li>\n<li><code>move<\/code>: Impede que os usu\u00e1rios movam um bloco.<\/li>\n<\/ul>\n<p>E voc\u00ea tamb\u00e9m pode usar <code>lock<\/code> em conjunto com <code>template_lock<\/code> para ajustar o comportamento dos blocos inclu\u00eddos no modelo de bloco. No exemplo a seguir, estamos bloqueando todos os blocos, exceto o cabe\u00e7alho:<\/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>A imagem abaixo mostra o modelo de bloco com blocos bloqueados e desbloqueados:<\/p>\n<figure id=\"attachment_161437\" aria-describedby=\"caption-attachment-161437\" style=\"width: 1800px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161437\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/unlocked-heading.jpg\" alt=\"A block template with locked and unlocked blocks\" width=\"1800\" height=\"1080\"><figcaption id=\"caption-attachment-161437\" class=\"wp-caption-text\">Um modelo de bloco com blocos bloqueados e desbloqueados.<\/figcaption><\/figure>\n<p>Os desenvolvedores de blocos tamb\u00e9m podem usar o atributo <code>lock<\/code> na defini\u00e7\u00e3o do bloco no n\u00edvel <code>attributes<\/code> (consulte tamb\u00e9m <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-templates\/#individual-block-locking\" target=\"_blank\" rel=\"noopener noreferrer\">Bloqueio individual de blocos<\/a>).<\/p>\n<h3>Impedindo que os usu\u00e1rios desbloqueiem blocos<\/h3>\n<p>Se voc\u00ea testou o c\u00f3digo discutido at\u00e9 agora no artigo, deve ter percebido que pode desbloquear os blocos inclu\u00eddos no seu modelo (ou qualquer outro bloco) na interface do editor. Por padr\u00e3o, todos os usu\u00e1rios com acesso de edi\u00e7\u00e3o podem bloquear ou desbloquear blocos e, ao fazer isso, voc\u00ea ignora as configura\u00e7\u00f5es do modelo.<\/p>\n<p>Voc\u00ea pode controlar se os blocos podem ser bloqueados ou desbloqueados usando o filtro <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> filtro.<\/p>\n<blockquote><p><em>O filtro enviar\u00e1 qualquer configura\u00e7\u00e3o para o Editor inicializado, o que significa que qualquer configura\u00e7\u00e3o do editor usada para configurar o editor na inicializa\u00e7\u00e3o pode ser filtrada por um plugin WordPress em PHP antes de ser enviada.<\/em><\/p><\/blockquote>\n<p>A fun\u00e7\u00e3o de callback que voc\u00ea usar\u00e1 com esse filtro recebe dois par\u00e2metros:<\/p>\n<ul>\n<li><code>$settings<\/code>: Uma array de configura\u00e7\u00f5es do editor.<\/li>\n<li><code>$context<\/code>: Uma inst\u00e2ncia da 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>, um objeto que cont\u00e9m informa\u00e7\u00f5es sobre um editor de blocos sendo renderizado.<\/li>\n<\/ul>\n<p>O que voc\u00ea precisa fazer \u00e9 filtrar <code>$settings['canLockBlocks']<\/code>, definindo como <code>true<\/code> ou <code>false<\/code>, conforme mostrado no exemplo a seguir:<\/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>Voc\u00ea pode excluir fun\u00e7\u00f5es de usu\u00e1rio espec\u00edficas do bloqueio\/desbloqueio de blocos executando uma verifica\u00e7\u00e3o condicional nos <a href=\"https:\/\/kinsta.com\/pt\/blog\/funcoes-usuario-wordpress\/\">recursos atuais do usu\u00e1rio<\/a>.<\/p>\n<p>No exemplo a seguir, estamos verificando se o <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/current_user_can\/\" target=\"_blank\" rel=\"noopener noreferrer\">usu\u00e1rio atual pode<\/a> editar os artigos de outros (em outras palavras, se a fun\u00e7\u00e3o do usu\u00e1rio atual \u00e9 Editor ou superior):<\/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>As imagens a seguir comparam o estado inicial do editor para um administrador e um autor. Primeiro, 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=\"size-full wp-image-161440\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/initial-state-for-admin.jpg\" alt=\"The editor's initial state for an Admin user\" width=\"2124\" height=\"1388\"><figcaption id=\"caption-attachment-161440\" class=\"wp-caption-text\">O estado inicial do editor para um usu\u00e1rio Admin<\/figcaption><\/figure>\n<p>Agora, o Author:<\/p>\n<figure id=\"attachment_161442\" aria-describedby=\"caption-attachment-161442\" style=\"width: 2126px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161442\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/initial-state-for-author.jpg\" alt=\"The editor's initial state for an Author\" width=\"2126\" height=\"1378\"><figcaption id=\"caption-attachment-161442\" class=\"wp-caption-text\">O estado inicial do editor para um usu\u00e1rio Autor.<\/figcaption><\/figure>\n<p>E voc\u00ea pode verificar qualquer condi\u00e7\u00e3o no usu\u00e1rio atual. No exemplo a seguir, estamos <a href=\"https:\/\/make.wordpress.org\/core\/2022\/05\/05\/block-locking-settings-in-wordpress-6-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">impedindo que um usu\u00e1rio espec\u00edfico<\/a> bloqueie\/desbloqueie blocos:<\/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>Voc\u00ea pode combinar mais condi\u00e7\u00f5es para ter um controle granular sobre quem tem permiss\u00e3o para bloquear\/desbloquear blocos em seu modelo e quem n\u00e3o tem. Esse \u00e9 um aspecto do que chamamos de &#8220;<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\">Experi\u00eancia Personalizada<\/a>&#8220;.<\/p>\n<p>Mas aten\u00e7\u00e3o! J\u00e1 experimentou editar o conte\u00fado do seu artigo pelo editor de c\u00f3digo? Voc\u00ea pode se surpreender ao descobrir que usu\u00e1rios que n\u00e3o podem destravar blocos pela interface gr\u00e1fica ainda assim podem modificar o conte\u00fado usando o editor de c\u00f3digo.<\/p>\n<h3>Desativando o editor de c\u00f3digo para fun\u00e7\u00f5es de usu\u00e1rio espec\u00edfico<\/h3>\n<p>Por padr\u00e3o, todos os usu\u00e1rios que podem editar conte\u00fado podem acessar o editor de c\u00f3digo. Isso pode anular suas configura\u00e7\u00f5es de bloqueio e alguns usu\u00e1rios podem arruinar ou excluir o layout do modelo.<\/p>\n<p>Voc\u00ea tamb\u00e9m pode usar <code>block_editor_settings_all<\/code> para filtrar a configura\u00e7\u00e3o <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/filters\/editor-filters\/#codeeditingenabled\" target=\"_blank\" rel=\"noopener noreferrer\"><code>codeEditingEnabled<\/code><\/a> para impedir que fun\u00e7\u00f5es de usu\u00e1rio espec\u00edficas acessem o editor de c\u00f3digo. Aqui est\u00e1 o c\u00f3digo:<\/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>Com esse c\u00f3digo em vigor, os usu\u00e1rios que n\u00e3o tiverem o recurso <code>edit_others_posts<\/code> n\u00e3o ter\u00e3o permiss\u00e3o para acessar o editor de c\u00f3digo. A imagem abaixo mostra a barra de ferramentas Op\u00e7\u00f5es para um autor.<\/p>\n<figure id=\"attachment_161825\" aria-describedby=\"caption-attachment-161825\" style=\"width: 2128px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161825\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/options-toolbar-without-code-editor-access.jpg\" alt=\"The Options toolbar for a user role without access to the code editor\" width=\"2128\" height=\"1202\"><figcaption id=\"caption-attachment-161825\" class=\"wp-caption-text\">A Barra de Op\u00e7\u00f5es para uma fun\u00e7\u00e3o de usu\u00e1rio sem acesso ao editor de c\u00f3digo.<\/figcaption><\/figure>\n<p>\u00c9 isso que voc\u00ea precisa saber para criar modelos de blocos via PHP. Agora, se voc\u00ea \u00e9 um desenvolvedor de blocos Gutenberg e adora trabalhar com <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a>, pode preferir optar por uma abordagem diferente.<\/p>\n<h2>Como criar um modelo usando JavaScript<\/h2>\n<p>Adicionar um modelo de bloco a um artigo funciona de forma diferente se voc\u00ea decidir usar JavaScript. Voc\u00ea ainda pode construir um modelo, mas precisa criar um bloco personalizado e usar o componente <code>InnerBlocks<\/code>, conforme discutido em nosso <a href=\"https:\/\/kinsta.com\/pt\/blog\/blocos-personalizados-gutenberg\/#innerblocks-component\">guia de desenvolvimento de blocos Gutenberg<\/a>.<\/p>\n<blockquote><p><em>O InnerBlocks exporta um par de componentes que podem ser usados em implementa\u00e7\u00f5es de blocos para permitir o conte\u00fado de blocos aninhados.<\/em> &#8211; Fonte: <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>Como isso funciona?<\/p>\n<p>Voc\u00ea pode usar o <code>InnerBlocks<\/code> em seus blocos personalizados da mesma forma que qualquer outro componente do Gutenberg.<\/p>\n<p>Primeiro voc\u00ea precisa inclu\u00ed-lo em um pacote junto com outras depend\u00eancias:<\/p>\n<pre><code class=\"language-javascript\">import { registerBlockType } from '@wordpress\/blocks';\nimport { useBlockProps, InnerBlocks } from '@wordpress\/block-editor';<\/code><\/pre>\n<p>Em seguida, voc\u00ea definir\u00e1 as propriedades do <code>InnerBlocks<\/code>. No exemplo a seguir, declararemos uma constante <code>TEMPLATE<\/code> que voc\u00ea usar\u00e1 para definir o valor da propriedade <code>template<\/code> do elemento <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>Esse c\u00f3digo \u00e9 bastante simples. Voc\u00ea deve notar que usamos o atributo <code>templateLock<\/code> duas vezes, primeiro no n\u00edvel do bloco e depois dentro do elemento <code>InnerBlocks<\/code>. Para obter a lista completa das propriedades dispon\u00edveis, consulte a <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/blob\/HEAD\/packages\/block-editor\/src\/components\/inner-blocks\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">refer\u00eancia<code>InnerBlocks<\/code><\/a> e o <a href=\"https:\/\/developer.wordpress.org\/block-editor\/how-to-guides\/block-tutorial\/nested-blocks-inner-blocks\/\" target=\"_blank\" rel=\"noopener noreferrer\">Manual do Editor de Blocos<\/a>.<\/p>\n<p>Agora, experimente voc\u00ea mesmo.<\/p>\n<p>Primeiro, crie uma instala\u00e7\u00e3o local de WordPress usando o <a href=\"https:\/\/kinsta.com\/pt\/devkinsta\/caracteristicas\/\">DevKinsta<\/a> ou qualquer outro <a href=\"https:\/\/kinsta.com\/local-development\/\">ambiente de desenvolvimento local<\/a>.<\/p>\n<p>Em seguida, inicie sua ferramenta de linha de comando, navegue at\u00e9 a pasta de <strong>Plugins<\/strong> e execute o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">npx @wordpress\/create-block template-block<\/code><\/pre>\n<p>Voc\u00ea pode alterar o nome do bloco para o que quiser. Se voc\u00ea preferir controlar todo e qualquer aspecto do seu bloco inicial, basta seguir as instru\u00e7\u00f5es fornecidas em nosso <a href=\"https:\/\/kinsta.com\/pt\/blog\/blocos-personalizados-gutenberg\/#set-up-the-plugin\">guia definitivo de desenvolvimento de blocos<\/a>.<\/p>\n<p>Quando a instala\u00e7\u00e3o estiver conclu\u00edda, execute os seguintes comandos:<\/p>\n<pre><code class=\"language-bash\">cd template-block\nnpm start<\/code><\/pre>\n<p>Abra o <a href=\"https:\/\/kinsta.com\/pt\/blog\/painel-administrativo-wordpress\/\">painel de controle\u00a0do WordPress<\/a> e navegue at\u00e9 a tela <strong>Plugins<\/strong>. Encontre e ative o plugin <strong>Template Block<\/strong>.<\/p>\n<p>Em seu <a href=\"https:\/\/kinsta.com\/pt\/blog\/editores-html-gratuitos\/\">editor de c\u00f3digo<\/a> favorito, abra o arquivo <strong>index.js<\/strong> que voc\u00ea encontra na pasta <strong>src<\/strong>. Copie e cole o c\u00f3digo acima, salve o <strong>index.js<\/strong> e, de volta ao painel do WordPress, crie um novo artigo ou p\u00e1gina.<\/p>\n<p>Abra o inseridor de blocos e role para baixo at\u00e9 a se\u00e7\u00e3o <strong>Widgets<\/strong>. L\u00e1 voc\u00ea deve encontrar seu bloco personalizado.<\/p>\n<figure id=\"attachment_161826\" aria-describedby=\"caption-attachment-161826\" style=\"width: 2260px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161826\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/my-template-block-1.jpg\" alt=\"A custom block in the block inserter\" width=\"2260\" height=\"1410\"><figcaption id=\"caption-attachment-161826\" class=\"wp-caption-text\">Um bloco personalizado no inseridor de blocos.<\/figcaption><\/figure>\n<p>Adicione ao artigo, personalize o conte\u00fado e salve o artigo.<\/p>\n<figure id=\"attachment_161827\" aria-describedby=\"caption-attachment-161827\" style=\"width: 2258px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-161827\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/template-in-list-view-1.jpg\" alt=\"List view of a custom template\" width=\"2258\" height=\"936\"><figcaption id=\"caption-attachment-161827\" class=\"wp-caption-text\">Visualiza\u00e7\u00e3o de lista de um modelo personalizado.<\/figcaption><\/figure>\n<p>Se voc\u00ea mudar para o editor de c\u00f3digo, ver\u00e1 a seguinte marca\u00e7\u00e3o:<\/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>Agora, visualize o resultado em seu <a href=\"https:\/\/kinsta.com\/browsers\/\">navegador favorito<\/a>. Se a apar\u00eancia do bloco precisar ser melhorada, voc\u00ea pode simplesmente alterar os estilos no arquivo <strong>style.scss<\/strong>.<\/p>\n<p>Quando voc\u00ea estiver satisfeito com suas personaliza\u00e7\u00f5es, interrompa o processo e execute <code>npm run build<\/code>. Todos os arquivos do seu projeto ser\u00e3o compactados e estar\u00e3o dispon\u00edveis para produ\u00e7\u00e3o na nova pasta <strong>build<\/strong>.<\/p>\n<p>Isso \u00e9 f\u00e1cil e poderoso, n\u00e3o \u00e9?<\/p>\n<p>Agora voc\u00ea pode criar modelos avan\u00e7ados de blocos que podem ser inclu\u00eddos em seu conte\u00fado com apenas alguns cliques.<\/p>\n<h2>Resumo<\/h2>\n<p>Adicionar um modelo de bloco ao seu artigo ou tipos de artigos personalizados pode acelerar e melhorar significativamente a experi\u00eancia de cria\u00e7\u00e3o e edi\u00e7\u00e3o no seu site WordPress. Modelos de bloco s\u00e3o especialmente \u00fateis em sites com m\u00faltiplos usu\u00e1rios, onde v\u00e1rios usu\u00e1rios t\u00eam permiss\u00e3o para criar conte\u00fado e voc\u00ea precisa que eles sigam o mesmo formato.<\/p>\n<p>Isso tamb\u00e9m permite que voc\u00ea crie layouts uniformes sem ter que adicionar manualmente um padr\u00e3o de bloco toda vez que criar um novo artigo. Pense em um site de avalia\u00e7\u00f5es ou receitas, onde cada p\u00e1gina deve respeitar a mesma estrutura.<\/p>\n<p>Combinando o conhecimento que voc\u00ea ter\u00e1 adquirido na cria\u00e7\u00e3o de blocos personalizados <a href=\"https:\/\/kinsta.com\/pt\/blog\/blocos-personalizados-gutenberg\/\">est\u00e1ticos<\/a> ou <a href=\"https:\/\/kinsta.com\/pt\/blog\/blocos-dinamicos-gutenberg\/\">din\u00e2micos<\/a>, <a href=\"https:\/\/kinsta.com\/pt\/blog\/padroes-de-bloco-wordpress\/\">padr\u00f5es de blocos<\/a> e modelos de bloco, voc\u00ea sempre poder\u00e1 identificar a solu\u00e7\u00e3o mais eficiente e eficaz para construir qualquer tipo de site WordPress.<\/p>\n<p>Agora \u00e9 com voc\u00ea. J\u00e1 explorou os modelos de bloco? Em qual caso voc\u00ea acha que eles s\u00e3o mais adequados? Por favor, compartilhe sua experi\u00eancia nos coment\u00e1rios abaixo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na era Gutenberg, o processo de design n\u00e3o est\u00e1 estritamente vinculado aos temas de WordPress. O CMS oferece aos usu\u00e1rios todas as ferramentas de design necess\u00e1rias &#8230;<\/p>\n","protected":false},"author":36,"featured_media":62774,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[518,65,261],"topic":[1026],"class_list":["post-62773","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-block-editor","tag-gutenberg","tag-wordpress-developers","topic-desenvolvimento-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>Como Criar Modelos de Blocos do WordPress - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado\" \/>\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\/pt\/blog\/modelos-de-blocos-do-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Criar Modelos de Blocos do WordPress\" \/>\n<meta property=\"og:description\" content=\"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-04T14:24:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-11T08:01:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.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=\"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Como Criar Modelos de Blocos do WordPress\",\"datePublished\":\"2023-09-04T14:24:01+00:00\",\"dateModified\":\"2023-09-11T08:01:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\"},\"wordCount\":2702,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg\",\"keywords\":[\"Block Editor\",\"Gutenberg\",\"WordPress developers\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\",\"name\":\"Como Criar Modelos de Blocos do WordPress - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg\",\"datePublished\":\"2023-09-04T14:24:01+00:00\",\"dateModified\":\"2023-09-11T08:01:07+00:00\",\"description\":\"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desenvolvimento WordPress\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/desenvolvimento-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Criar Modelos de Blocos do WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"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\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Criar Modelos de Blocos do WordPress - Kinsta\u00ae","description":"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado","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\/pt\/blog\/modelos-de-blocos-do-wordpress\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Criar Modelos de Blocos do WordPress","og_description":"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado","og_url":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-09-04T14:24:01+00:00","article_modified_time":"2023-09-11T08:01:07+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","type":"image\/jpeg"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Carlo Daniele","Tempo estimado de leitura":"18 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Como Criar Modelos de Blocos do WordPress","datePublished":"2023-09-04T14:24:01+00:00","dateModified":"2023-09-11T08:01:07+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/"},"wordCount":2702,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","keywords":["Block Editor","Gutenberg","WordPress developers"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/","url":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/","name":"Como Criar Modelos de Blocos do WordPress - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","datePublished":"2023-09-04T14:24:01+00:00","dateModified":"2023-09-11T08:01:07+00:00","description":"Saiba como criar modelos de blocos do WordPress, layouts de blocos pr\u00e9-constru\u00eddos carregados automaticamente no editor de blocos, neste guia detalhado","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/09\/wordpress-block-templates.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/modelos-de-blocos-do-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Desenvolvimento WordPress","item":"https:\/\/kinsta.com\/pt\/topicos\/desenvolvimento-wordpress\/"},{"@type":"ListItem","position":3,"name":"Como Criar Modelos de Blocos do WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","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\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/62773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=62773"}],"version-history":[{"count":13,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/62773\/revisions"}],"predecessor-version":[{"id":66167,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/62773\/revisions\/66167"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/translations\/fr"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/62773\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/62774"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=62773"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=62773"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=62773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}