{"id":231535,"date":"2022-12-23T19:49:00","date_gmt":"2022-12-23T16:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231535"},"modified":"2022-12-07T10:55:04","modified_gmt":"2022-12-07T07:55:04","slug":"padroes-de-design-para-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/padroes-de-design-para-wordpress\/","title":{"rendered":"Padr\u00f5es de design para WordPress"},"content":{"rendered":"\n<p>Quanto mais voc\u00ea trabalha com uma determinada plataforma, mais voc\u00ea come\u00e7a a reconhecer certas maneiras de fazer algo. E \u00e9 muito prov\u00e1vel que voc\u00ea comece a reconhecer duas coisas que essas coisas podem ser feitas:<\/p>\n<ul>\n<li>de uma forma que \u00e9 r\u00e1pido de desenvolver, mas mais dif\u00edcil de manter ou<\/li>\n<li>de uma forma que \u00e9 mais lenta para desenvolver, mas mais f\u00e1cil de manter.<\/li>\n<\/ul>\n<p>\u00c9 claro que, como qualquer projeto, requisitos, restri\u00e7\u00f5es, or\u00e7amentos e tempo v\u00e3o afetar o que voc\u00ea pode implementar. Mas o que quero dizer \u00e9 que, independentemente de como voc\u00ea implementa uma solu\u00e7\u00e3o, voc\u00ea come\u00e7a a se familiarizar com a forma de resolver um determinado problema.<\/p>\n<p>Se um problema precisa ser resolvido rapidamente, ent\u00e3o voc\u00ea conhece as compensa\u00e7\u00f5es, mas provavelmente sabe como faz\u00ea-lo rapidamente. Da mesma forma, se voc\u00ea tiver um pouco mais de tempo (e or\u00e7amento), poder\u00e1 desenvolv\u00ea-lo de outra maneira e saber\u00e1 como faz\u00ea-lo e possivelmente at\u00e9 envolv\u00ea-lo com su\u00edtes de teste, se as restri\u00e7\u00f5es permitirem.<\/p>\n<p>Independentemente de como voc\u00ea precisa implementar uma solu\u00e7\u00e3o, voc\u00ea conhece as maneiras de faz\u00ea-lo.<\/p>\n<p>E isso levanta uma quest\u00e3o:<\/p>\n<p>Existem padr\u00f5es de design espec\u00edficos para uma determinada plataforma? E se sim, quais s\u00e3o alguns dos padr\u00f5es de design que podem estar dispon\u00edveis no WordPress?<\/p>\n<h2>Padr\u00f5es de design para WordPress<\/h2>\n<p>Claro, n\u00e3o estou falando de padr\u00f5es de design que a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns_(book)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gangue dos Quatro<\/a> desenvolveu h\u00e1 muitas d\u00e9cadas. Em vez disso, estou falando sobre maneiras de fazer certas coisas no WordPress.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0325077.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-160471-61e70b0325077.png\" alt=\"Padr\u00f5es de design para WordPress\" ><\/a><\/p>\n<p>Por exemplo:<\/p>\n<ul>\n<li>higienizar adequadamente as informa\u00e7\u00f5es antes de grav\u00e1-las no banco de dados (para postagens, taxonomias, metadados e assim por diante),<\/li>\n<li>lendo dados do banco de dados usando o utilit\u00e1rio de banco de dados do WordPress (ou <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/wpdb\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$wpdb<\/a> ),<\/li>\n<li>validar e retornar informa\u00e7\u00f5es do banco de dados quando solicitado,<\/li>\n<li>verificando a seguran\u00e7a de uma solicita\u00e7\u00e3o Ajax antes de fazer qualquer trabalho,<\/li>\n<li>configurar corretamente uma consulta personalizada e redefini-la para n\u00e3o interferir no loop principal,<\/li>\n<li>adicionando ativos espec\u00edficos da p\u00e1gina na \u00e1rea administrativa do WordPress e no site p\u00fablico do WordPress,<\/li>\n<li>e assim por diante.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b06ec937.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-160471-61e70b06ec937.png\" alt=\"Padr\u00f5es de design para WordPress\" ><\/a><\/p>\n<p>H\u00e1 muitas coisas que poder\u00edamos listar aqui. Mas acho que vale a pena explorar como alguns deles podem ser.<\/p>\n<p>Primeiro, por\u00e9m, o que s\u00e3o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">padr\u00f5es de projeto<\/a> no sentido cl\u00e1ssico?<\/p>\n<blockquote>\n<p>Um padr\u00e3o de projeto \u00e9 a forma reutiliz\u00e1vel de uma solu\u00e7\u00e3o para um problema de projeto. A ideia foi introduzida pelo arquiteto Christopher Alexander e foi adaptada para v\u00e1rias outras disciplinas, principalmente a ci\u00eancia da computa\u00e7\u00e3o.<\/p>\n<\/blockquote>\n<p>Eu trabalhei no WordPress por tempo suficiente e constru\u00ed plugins e ferramentas suficientes usando o aplicativo para reconhecer como fazer certas coisas versus criar algo original para cada projeto.<\/p>\n<p>\u00c9 seguro dizer, ent\u00e3o, que existem coisas reutiliz\u00e1veis \u200b\u200bque podemos empregar no WordPress para problemas comuns? Claro. Eles precisariam ser generalizados, \u00e9 claro.<\/p>\n<p>Ent\u00e3o eu vou tomar um meio-termo sobre isso, pelo menos por causa do blog. Vou come\u00e7ar uma s\u00e9rie que falar\u00e1 sobre os t\u00f3picos acima junto com exemplos de c\u00f3digo.<\/p>\n<p>Ser\u00e3o artigos curtos, e farei o que puder para garantir que seja f\u00e1cil de seguir (com coment\u00e1rios e explica\u00e7\u00f5es de c\u00f3digo) e, quem sabe, talvez isso se transforme em algo mais.<\/p>\n<h2>N\u00e3o estou falando de bibliotecas<\/h2>\n<p>Isso n\u00e3o deve ser confundido com <a href=\"https:\/\/en.wikipedia.org\/wiki\/Library_(computing)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bibliotecas<\/a>. Lembre-se, as bibliotecas s\u00e3o como pequenos softwares que podemos executar independentemente ou podem ser um conjunto de ferramentas ou funcionalidades que podem ser importadas para o seu projeto para adicionar funcionalidades.<\/p>\n<blockquote>\n<p>Em ci\u00eancia da computa\u00e7\u00e3o, uma biblioteca \u00e9 uma cole\u00e7\u00e3o de recursos n\u00e3o vol\u00e1teis usados \u200b\u200bpor programas de computador, geralmente para desenvolvimento de software. Estes podem incluir dados de configura\u00e7\u00e3o, documenta\u00e7\u00e3o, dados de ajuda, modelos de mensagem, c\u00f3digo pr\u00e9-escrito e sub-rotinas, classes, valores ou especifica\u00e7\u00f5es de tipo.<\/p>\n<\/blockquote>\n<p>Talvez certos padr\u00f5es espec\u00edficos do WordPress possam ser incorporados em suas bibliotecas, mas esse n\u00e3o \u00e9 o objetivo do post.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160471-61e70b0a9a64d.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-160471-61e70b0a9a64d.png\" alt=\"Padr\u00f5es de design para WordPress\" ><\/a><\/p>\n<p>Em vez disso, estou simplesmente tentando apresentar padr\u00f5es potenciais e comuns que existem 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=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Talvez existam certos padr\u00f5es de design para WordPress. Neste post e em uma pr\u00f3xima s\u00e9rie, talvez valha a pena explor\u00e1-los.<\/p>\n","protected":false},"author":1,"featured_media":236332,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,846,867],"tags":[1170],"class_list":["post-231535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231535","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=231535"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231535\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236332"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}