{"id":232207,"date":"2023-01-09T19:55:00","date_gmt":"2023-01-09T16:55:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232207"},"modified":"2022-11-10T08:05:20","modified_gmt":"2022-11-10T05:05:20","slug":"passando-variaveis-para-um-template-wordpress-de-forma-eficiente","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/passando-variaveis-para-um-template-wordpress-de-forma-eficiente\/","title":{"rendered":"Passando vari\u00e1veis \u200b\u200bpara um template WordPress de forma eficiente"},"content":{"rendered":"<p>Um desafio enfrentado pelos desenvolvedores de temas ou plugins <code>get_template_part<\/code>\u00e9 a incapacidade de passar vari\u00e1veis \u200b\u200bpara o template WordPress carregado. Existe, no entanto, uma alternativa usando <code>locate_template<\/code>.<\/p>\n<h3>Vis\u00e3o geral<\/h3>\n<p>Neste exemplo, vamos exibir tr\u00eas entradas <a href=\"https:\/\/easydigitaldownloads.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">do Easy Digital Download .<\/a> Estou usando o EDD h\u00e1 algum tempo e, embora tenha muitos recursos, ainda \u00e9 surpreendentemente leve.<\/p>\n<p>Estaremos buscando as entradas e salvando-as na vari\u00e1vel <code>$edd_download<\/code>. Em seguida, carregaremos o template <a href=\"https:\/\/startfunction.com\/category\/wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress<\/a> passando a vari\u00e1vel. Na verdade, passar a vari\u00e1vel \u00e9 dizer muito: estaremos simplesmente carregando o template de forma que a <code>$edd_download<\/code>vari\u00e1vel tenha o escopo adequado para ser usada no template carregado.<\/p>\n<h3>Carregando um modelo do WordPress<\/h3>\n<p>Este c\u00f3digo pode ser colocado em uma fun\u00e7\u00e3o. Voc\u00ea pode ent\u00e3o conectar essa fun\u00e7\u00e3o a uma \u00e1rea do seu tema usando um gancho de a\u00e7\u00e3o ou simplesmente chamar a fun\u00e7\u00e3o como uma tag de modelo. Nos meus temas, uso ganchos para que os usu\u00e1rios possam adicionar ou remover conte\u00fado posteriormente. Isso \u00e9 tudo que precisamos para o c\u00f3digo:<\/p>\n<pre><code> 'download',\n    'posts_per_page' =&gt; 3,) );\n\nif ($edd_download) {\n\n    $part = locate_template( 'parts\/download-home.php' );\n    if ('' != $part) {\n\n        require $part;\n    }\n}<\/code><\/pre>\n<h3>C\u00f3digo do modelo<\/h3>\n<p>Agora precisamos do arquivo de modelo do WordPress. Se voc\u00ea notar a chamada acima, <code>locate_template<\/code>espera encontrar o arquivo <code>download-home.php<\/code>no diret\u00f3rio <code>parts<\/code>dentro da pasta do tema.<\/p>\n<p>Devemos sempre lembrar de chamar <code>wp_reset_postdata()<\/code>ap\u00f3s um loop foreach se chamamos <code>setup_postdata()<\/code>.<\/p>\n<h3>Palavras de encerramento<\/h3>\n<p>Ent\u00e3o, depois de tudo isso, por que isso \u00e9 \u00fatil? porque os usu\u00e1rios podem criar um modelo em um tema filho e substituir facilmente o modelo original. Trata-se de tornar a vida mais f\u00e1cil para seus usu\u00e1rios. Claro, isso tamb\u00e9m pode ser alcan\u00e7ado atrav\u00e9s de filtros ou criando fun\u00e7\u00f5es conect\u00e1veis, mas alguns usu\u00e1rios podem considerar a edi\u00e7\u00e3o de um modelo focado em uma tarefa uma abordagem mais limpa do que lidar com um arquivo com muitas fun\u00e7\u00f5es para v\u00e1rias tarefas diferentes e n\u00e3o relacionadas.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda a passar vari\u00e1veis \u200b\u200b\u200b\u200bcom efici\u00eancia para um modelo do WordPress e us\u00e1-las nele<\/p>\n","protected":false},"author":1,"featured_media":157983,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,837,920,1021,846,867],"tags":[1170],"class_list":["post-232207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","category-outro","category-sites-uteis","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232207","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=232207"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/157983"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=232207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=232207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=232207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}