{"id":230033,"date":"2022-11-17T19:19:00","date_gmt":"2022-11-17T16:19:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230033"},"modified":"2022-11-17T19:23:18","modified_gmt":"2022-11-17T16:23:18","slug":"modelos-do-wordpress-para-iniciantes-o-que-e-modelagem-afinal","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/modelos-do-wordpress-para-iniciantes-o-que-e-modelagem-afinal\/","title":{"rendered":"Modelos do WordPress para iniciantes: o que \u00e9 modelagem, afinal?"},"content":{"rendered":"\n<p>Ao falar sobre templates, em rela\u00e7\u00e3o a templates WordPress, templates JavaScript ou templates em alguma outra linguagem, eu acho que \u00e9 \u00fatil usar um projeto ou exemplo concreto para explicar como funciona ao inv\u00e9s de falar sobre isso em termos mais esot\u00e9ricos.<\/p>\n<p>Se voc\u00ea n\u00e3o est\u00e1 acompanhando esta s\u00e9rie e est\u00e1 apenas come\u00e7ando com os modelos, recomendo a leitura das duas primeiras partes da s\u00e9rie:<\/p>\n<ol>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/modelos-wordpress-para-iniciantes-como-e\/\" title=\"Como \u00e9\">Como \u00e9<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/modelos-wordpress-para-iniciantes-html-chamando-php\/\" title=\"HTML Chamando PHP\">HTML Chamando PHP<\/a><\/li>\n<\/ol>\n<p>A partir da\u00ed, vamos dividir o conceito em duas partes:<\/p>\n<ol>\n<li>entender o que \u00e9 modelagem,<\/li>\n<li>como a modelagem pode funcionar no WordPress.<\/li>\n<\/ol>\n<p>O desafio, \u00e9 claro, \u00e9 que temos &#8220;modelos do WordPress&quot; e, em seguida, estamos falando sobre o uso de um mecanismo de modelagem para alterar os modelos do WordPress, como eles funcionam, como os dados s\u00e3o injetados neles e assim por diante.<\/p>\n<p>Mas farei o meu melhor para tentar esclarecer cada parte.<\/p>\n<h2>Modelos do WordPress (mas n\u00e3o modelos)<\/h2>\n<p>Quando se trata de falar sobre modelagem, \u00e9 \u00fatil ter uma defini\u00e7\u00e3o funcional de modelagem ou mecanismos de modelagem. A verdade \u00e9 que a modelagem \u00e9 feita por um mecanismo de modelagem.<\/p>\n<h3>Uma defini\u00e7\u00e3o de trabalho<\/h3>\n<p>Uma defini\u00e7\u00e3o geral de um mecanismo de modelagem <a href=\"https:\/\/en.wikipedia.org\/wiki\/Template_processor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e9<\/a> :<\/p>\n<blockquote>\n<p>Um processador de modelo (tamb\u00e9m conhecido como mecanismo de modelo ou analisador de modelo) \u00e9 um software projetado para combinar modelos com um modelo de dados para produzir documentos de resultados.<\/p>\n<\/blockquote>\n<p>E embora isso seja preciso, \u00e9 um pouco prolixo ou mais complexo do que o necess\u00e1rio, na minha opini\u00e3o, do que o necess\u00e1rio para explicar o conceito geral. Talvez possamos trabalhar com a seguinte defini\u00e7\u00e3o:<\/p>\n<blockquote>\n<p>Um mecanismo de modelo usa sintaxe para injetar dados em um documento.<\/p>\n<\/blockquote>\n<p>Isso \u00e9 realmente geral, e vamos detalhar o PHP momentaneamente, mas primeiro eu queria dar uma defini\u00e7\u00e3o b\u00e1sica e funcional, e depois partir da\u00ed, porque o modelo pode ser usado em uma variedade de linguagens diferentes.<\/p>\n<p>Al\u00e9m disso, \u00e9 importante reconhecer que um bom mecanismo de modelagem geralmente fornecer\u00e1 um n\u00edvel de seguran\u00e7a, flexibilidade e potencialmente at\u00e9 mesmo um &#8220;modo sandbox&#8221; no qual testamos o c\u00f3digo antes de implant\u00e1-lo em produ\u00e7\u00e3o.<\/p>\n<h3>Como \u00e9 a modelagem?<\/h3>\n<p>Devido \u00e0 natureza da sintaxe diferente, a modelagem vai parecer um pouco diferente, mas um mecanismo de modelagem PHP popular \u00e9 chamado <a href=\"https:\/\/twig.symfony.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Twig<\/a>. Ent\u00e3o, um exemplo concreto de templates baseados em PHP que usam Twig pode ser algo <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2c02b22272f645076f7f735bd61a4034#file-03-twig-example-twig\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">assim:<\/a><\/p>\n<pre><code>{% extends \"base.twig\" %}\n{% block content %}\n    &lt;h1 class=\"big-title\"&gt;{{foo}}&lt;\/h1&gt;\n    &lt;h2&gt;{{post.title}}&lt;\/h2&gt;\n    &lt;img src=\"{{post.thumbnail.src}}\" \/&gt;\n    &lt;div class=\"body\"&gt; {{post.content}} &lt;\/div&gt;\n{% endblock %}<\/code><\/pre>\n<p>Como voc\u00ea pode ver, \u00e9 um pouco diferente do que estamos usando para ver com marca\u00e7\u00e3o, HTML, tags PHP e assim por diante, embora ainda existam tags exclusivas para o mecanismo de modelagem.<\/p>\n<p>Mesmo assim, se voc\u00ea estiver familiarizado com os conceitos de objetos, poder\u00e1 ver como acess\u00e1-los no contexto do modelo usando nota\u00e7\u00e3o de ponto em vez de qualquer nota\u00e7\u00e3o ou chamada de fun\u00e7\u00e3o que voc\u00ea est\u00e1 acostumado a usar em um documento PHP .<\/p>\n<h2>Existem mecanismos de modelagem do WordPress?<\/h2>\n<p>Sim e n\u00e3o. Quero dizer, existem maneiras de usar mecanismos de modelagem dentro do contexto do WordPress, mas n\u00e3o posso dizer que existe uma modelagem definitiva para o WordPress. Alguns dos exemplos de coisas que voc\u00ea pode querer conferir (antes de ler o pr\u00f3ximo post) s\u00e3o:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/viniwrubleski\/jade-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jade-PHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/cjonasw\/wordpress-starter-theme-mustache\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bigode<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/zach-adams\/sprig-foundation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Raminho<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jenssegers\/blade\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">L\u00e2mina<\/a><\/li>\n<\/ul>\n<p>Mas h\u00e1 outras op\u00e7\u00f5es.<\/p>\n<p>Mas provavelmente usarei algo como <a href=\"https:\/\/www.upstatement.com\/timber\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Timber<\/a> para o pr\u00f3ximo post.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Os modelos do WordPress podem ser facilitados ao usar um mecanismo de modelagem. Mas o que \u00e9 um mecanismo de modelagem e qual o papel que ele pode desempenhar no desenvolvimento do WordPress?<\/p>\n","protected":false},"author":1,"featured_media":165473,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[930,722,920,846,867],"tags":[1170],"class_list":["post-230033","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-assuntos","category-desenvolvedor","category-outro","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230033","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=230033"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230033\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/165473"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}