{"id":230415,"date":"2022-11-25T17:38:00","date_gmt":"2022-11-25T14:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230415"},"modified":"2022-11-25T18:00:24","modified_gmt":"2022-11-25T15:00:24","slug":"desenvolvendo-plugins-e-temas-contra-o-wordpress-trunk","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/desenvolvendo-plugins-e-temas-contra-o-wordpress-trunk\/","title":{"rendered":"Desenvolvendo plugins e temas contra o WordPress Trunk"},"content":{"rendered":"\n<p>Ao desenvolver plugins ou temas para WordPress, uma das estrat\u00e9gias que costumo recomendar \u00e9 fazer isso contra o trunk (ou o instant\u00e2neo atual do c\u00f3digo) do WordPress.<\/p>\n<p>Para aqueles que s\u00e3o desenvolvedores mais experientes, voc\u00ea j\u00e1 est\u00e1 atualizado sobre a linguagem e as advert\u00eancias que v\u00eam com isso. Mas se voc\u00ea \u00e9 algu\u00e9m que est\u00e1 procurando maneiras de melhorar suas pr\u00e1ticas de desenvolvimento, talvez isso ajude.<\/p>\n<p>Lembre-se de que, como o WordPress \u00e9 um software de c\u00f3digo aberto, voc\u00ea pode visualizar o c\u00f3digo-fonte na web <strong><a href=\"https:\/\/core.trac.wordpress.org\/browser\/trunk\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a qualquer momento<\/a><\/strong>.<\/p>\n<p>N\u00e3o s\u00f3 isso, mas voc\u00ea pode baix\u00e1-lo para o seu computador local e trabalhar com ele tamb\u00e9m. Isso exigir\u00e1 certos softwares, e entrarei nisso momentaneamente; no entanto, o objetivo final deste post \u00e9 falar sobre:<\/p>\n<ul>\n<li>como trabalhar com o instant\u00e2neo atual de c\u00f3digo com o WordPress,<\/li>\n<li>como e por que pode ser ben\u00e9fico usar essa base de c\u00f3digo ao trabalhar em projetos para outras pessoas.<\/li>\n<\/ul>\n<p>Como dito acima, h\u00e1 ressalvas para fazer isso e, \u00e0s vezes, \u00e9 uma boa ideia usar a vers\u00e3o est\u00e1vel mais recente da base de c\u00f3digo. E vou abordar isso mais tarde no artigo, tamb\u00e9m.<\/p>\n<h2>Desenvolvendo contra o tronco do WordPress<\/h2>\n<p>Antes de come\u00e7ar, \u00e9 importante ter o Subversion ou um cliente Subversion instalado. Se voc\u00ea estiver usando um gerenciador de pacotes como o Homebrew para lidar com software, instalar o cliente de linha de comando \u00e9 t\u00e3o simples quanto digitar isso no seu terminal:<\/p>\n<pre><code>$ brew install subversion<\/code><\/pre>\n<p>Voc\u00ea pode ler mais sobre Homebrew e gerenciadores de pacotes <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/um-ambiente-de-desenvolvimento-wordpress-usando-um-gerenciador-de-pacotes\/\" title=\"em posts anteriores\">em posts anteriores<\/a><\/strong> ; no entanto, voc\u00ea tamb\u00e9m pode querer usar algo como <strong><a href=\"https:\/\/versionsapp.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Versions<\/a><\/strong> ou <strong><a href=\"https:\/\/cornerstone.assembla.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Cornerstone<\/a><\/strong> se quiser usar um front-end.<\/p>\n<h3>1 Baixe o c\u00f3digo mais recente<\/h3>\n<p>Neste ponto, voc\u00ea pode baixar o instant\u00e2neo mais recente da base de c\u00f3digo do WordPress usando este comando:<\/p>\n<pre><code>$ svn co https:\/\/core.svn.wordpress.org\/trunk\/ .<\/code><\/pre>\n<p>Se, por outro lado, voc\u00ea estiver usando um front-end, poder\u00e1 usar a seguinte URL em seu cliente de escolha para navegar no reposit\u00f3rio:<\/p>\n<pre><code>https:\/\/core.svn.wordpress.org\/trunk<\/code><\/pre>\n<p>A partir daqui, baixe o conte\u00fado do\u00a0 diret\u00f3rio <strong>trunk<\/strong> para o seu computador e prepare-se para instal\u00e1-lo em seu computador.<\/p>\n<p>Ou usando o front-end de sua escolha:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164358-61e763df08feb.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-164358-61e763df08feb.png\" alt=\"Desenvolvendo plugins e temas contra o WordPress Trunk\"><\/a><\/p>\n<p>Para fazer isso, certifique-se de ter um banco de dados preparado e siga o procedimento de instala\u00e7\u00e3o padr\u00e3o.<\/p>\n<p>Voc\u00ea pode ler sobre como fazer isso <strong><a href=\"https:\/\/codex.wordpress.org\/Installing_WordPress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">no Codex<\/a><\/strong> ou <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/um-ambiente-de-desenvolvimento-wordpress-usando-um-gerenciador-de-pacotes\/\" title=\"neste post\">neste post<\/a><\/strong>.<\/p>\n<h3>2 Configura\u00e7\u00e3o do modo de depura\u00e7\u00e3o<\/h3>\n<p>Depois de instalado, recomendo configurar o WordPress no modo de depura\u00e7\u00e3o para que voc\u00ea possa ver as informa\u00e7\u00f5es nos logs de depura\u00e7\u00e3o e no navegador.<\/p>\n<p>Para fazer isso, abra <strong>wp-config.php<\/strong> e altere a linha que diz:<\/p>\n<pre><code>define( 'WP_DEBUG', false );<\/code><\/pre>\n<p>Ler:<\/p>\n<pre><code>define( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );\n@ini_set( 'display_errors', 0 );\ndefine( 'SCRIPT_DEBUG', true );<\/code><\/pre>\n<p>A partir deste ponto, sempre que voc\u00ea estiver trabalhando com c\u00f3digo, ver\u00e1 informa\u00e7\u00f5es impressas na tela e ter\u00e1 informa\u00e7\u00f5es gravadas em <strong>debug.log<\/strong>, que poder\u00e1 visualizar em seu editor de texto ou console preferido.<\/p>\n<p>Isso n\u00e3o significa que voc\u00ea n\u00e3o deva ter uma ferramenta como o Xdebug instalada, mas isso \u00e9 conte\u00fado para <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-xdebug-com-valet-e-wordpress\/\" title=\"outro post\">outro post<\/a><\/strong>.<\/p>\n<h3>3 Trabalhe com os diret\u00f3rios adequados<\/h3>\n<p>Agora que o WordPress est\u00e1 instalado e voc\u00ea est\u00e1 pronto para trabalhar em seu projeto, observe se est\u00e1 ou n\u00e3o trabalhando com plugins ou temas. Naturalmente, voc\u00ea encontrar\u00e1 cada um em <strong>wp-content\/plugins<\/strong> ou <strong>wp-content\/themes<\/strong>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164358-61e763e2b5e39.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-164358-61e763e2b5e39.png\" alt=\"Desenvolvendo plugins e temas contra o WordPress Trunk\"><\/a><\/p>\n<p>Digamos, por exemplo, que voc\u00ea est\u00e1 trabalhando em um plugin, ent\u00e3o voc\u00ea vai manter seu plugin no diret\u00f3rio de plugins. No meu caso, como voc\u00ea v\u00ea na imagem acima, eu trabalho com <strong><a href=\"https:\/\/tommcfarlin.com\/scheduled-post-shortcut-1-5-0\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o Scheduled Post Shortcut<\/a><\/strong> no trunk.<\/p>\n<h2>Uma palavra sobre vers\u00f5es est\u00e1veis<\/h2>\n<p>Sempre que voc\u00ea estiver trabalhando com um plugin ou tema e tentar trabalhar com eles em uma vers\u00e3o est\u00e1vel do WordPress, voc\u00ea ter\u00e1 uma escolha a fazer:<\/p>\n<ul>\n<li>trabalhe com a vers\u00e3o est\u00e1vel do c\u00f3digo dispon\u00edvel em WordPress.org,<\/li>\n<li>trabalhar contra o instant\u00e2neo do c\u00f3digo no tronco.<\/li>\n<\/ul>\n<p>Se voc\u00ea usa o primeiro, sabe que seu c\u00f3digo funcionar\u00e1 com a vers\u00e3o est\u00e1vel mais recente. Mas se voc\u00ea optar por trabalhar com o \u00faltimo, saber\u00e1 que seu c\u00f3digo funcionar\u00e1 com a pr\u00f3xima vers\u00e3o do WordPress.<\/p>\n<p>Mas aqui est\u00e1 a ressalva: as coisas podem mudar entre o que est\u00e1 no porta-malas e o que \u00e9 finalmente lan\u00e7ado. Portanto, se voc\u00ea for trabalhar com trunk, lembre-se de que precisar\u00e1 continuar testando seu trabalho em rela\u00e7\u00e3o ao c\u00f3digo at\u00e9 que a equipe principal marque o trunk como uma vers\u00e3o est\u00e1vel.<\/p>\n<p>No lado positivo, assim que o fizerem, voc\u00ea ter\u00e1 uma vers\u00e3o funcional do seu projeto pronta para ser lan\u00e7ada quando eles enviarem o 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>Um guia de como desenvolver contra o tronco do WordPress que pode ser uma boa ideia para plugins ou temas. Em \u00faltima an\u00e1lise, isso pode ajudar na compatibilidade com seus projetos.<\/p>\n","protected":false},"author":1,"featured_media":164359,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,846,867],"tags":[1170],"class_list":["post-230415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","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\/230415","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=230415"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230415\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/164359"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}