{"id":230981,"date":"2022-12-10T12:02:00","date_gmt":"2022-12-10T09:02:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230981"},"modified":"2022-12-10T12:04:15","modified_gmt":"2022-12-10T09:04:15","slug":"desenvolvimento-do-wordpress-percorrendo-o-codigo","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/desenvolvimento-do-wordpress-percorrendo-o-codigo\/","title":{"rendered":"Desenvolvimento do WordPress: percorrendo o c\u00f3digo"},"content":{"rendered":"\n<p>Se voc\u00ea acompanhou <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a s\u00e9rie<\/a><\/strong> at\u00e9 agora, provavelmente est\u00e1 vendo o qu\u00e3o \u00fatil a depura\u00e7\u00e3o adequada pode ser, especialmente ao trabalhar no WordPress.<\/p>\n<p>Isso quer dizer que voc\u00ea n\u00e3o apenas pode obter informa\u00e7\u00f5es valiosas sobre seus pr\u00f3prios projetos, mas tamb\u00e9m pode ver como o n\u00facleo do WordPress funciona.<\/p>\n<p>Neste ponto, por\u00e9m, n\u00e3o fizemos muito. Como voc\u00ea deve se lembrar do <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/uma-introducao-a-depuracao\/\" title=\"post anterior\">post anterior<\/a><\/strong> (ou se voc\u00ea n\u00e3o assistiu ao screencast, agora \u00e9 um bom momento para faz\u00ea-lo), voc\u00ea pode ver o quanto a depura\u00e7\u00e3o oferece.<\/p>\n<p>A verdade \u00e9 que mal arranhamos a superf\u00edcie. Como mencionei da \u00faltima vez, este post e este screencast v\u00e3o se concentrar especificamente no seguinte:<\/p>\n<blockquote>\n<p>Na pr\u00f3xima postagem, veremos coisas mais avan\u00e7adas que podemos fazer, como entrar em fun\u00e7\u00f5es, sair de fun\u00e7\u00f5es e passar por cima de fun\u00e7\u00f5es.<\/p>\n<\/blockquote>\n<p>Ainda n\u00e3o estamos em um ponto em que vamos nos preocupar em alterar os valores das vari\u00e1veis \u200b\u200bem tempo real, mas definitivamente veremos como podemos usar estrategicamente o depurador para entrar em certas fun\u00e7\u00f5es, passar por cima de certas fun\u00e7\u00f5es, e saia de certas fun\u00e7\u00f5es.<\/p>\n<h2>Passando pelo c\u00f3digo<\/h2>\n<p>Antes de compartilhar o screencast, quero definir o que significa contornar o c\u00f3digo em um projeto. Parece algo que fazemos sempre que estamos navegando na base de c\u00f3digo.<\/p>\n<p>Mas isso n\u00e3o \u00e9 verdade no contexto de depura\u00e7\u00e3o.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162177-61e737490b82c.png\"><\/a><\/p>\n<p>Lembre-se que para os prop\u00f3sitos desta s\u00e9rie em particular, estou usando a vers\u00e3o mais recente do WordPress do Subversion. Voc\u00ea pode revisar como configurar isso lendo <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/desenvolvendo-plugins-e-temas-contra-o-wordpress-trunk\/\" title=\"este post\">este post<\/a><\/strong>.<\/p>\n<h3>Uma palavra sobre etapas<\/h3>\n<p>Antes de definir os pr\u00f3ximos termos, observe que a ideia de uma &#8220;etapa&quot; na depura\u00e7\u00e3o \u00e9 an\u00e1loga a percorrer linha por linha pela base de c\u00f3digo.<\/p>\n<p>Como vimos no post anterior, a execu\u00e7\u00e3o do programa ser\u00e1 interrompida assim que um ponto de interrup\u00e7\u00e3o for atingido. A partir da\u00ed, o resultado de como o programa prossegue \u00e9 deixado para n\u00f3s. E com isso como pano de fundo, vamos definir alguns termos.<\/p>\n<ul>\n<li><strong>Entrar em uma fun\u00e7\u00e3o<\/strong> \u00e9 uma a\u00e7\u00e3o que, quando voc\u00ea atinge uma chamada de fun\u00e7\u00e3o, o levar\u00e1 para a fun\u00e7\u00e3o. \u00c0s vezes isso \u00e9 \u00fatil, como se voc\u00ea quiser ver o que a fun\u00e7\u00e3o est\u00e1 fazendo ou ver como os valores est\u00e3o sendo definidos; outras vezes, \u00e9 desnecess\u00e1rio se voc\u00ea se importa apenas com a execu\u00e7\u00e3o da fun\u00e7\u00e3o ou apenas com o que ela retorna.<\/li>\n<li><strong>Passar por cima de uma chamada de fun\u00e7\u00e3o<\/strong> permitir\u00e1 que voc\u00ea ignore a execu\u00e7\u00e3o de uma fun\u00e7\u00e3o no sentido de que ela ainda \u00e9 executada, apenas n\u00e3o vemos como ela realmente funciona. Em vez disso, o controle ir\u00e1 para a pr\u00f3xima linha ap\u00f3s a execu\u00e7\u00e3o da fun\u00e7\u00e3o.<\/li>\n<li><strong>Sair de uma fun\u00e7\u00e3o<\/strong> \u00e9 usado quando voc\u00ea entra em uma fun\u00e7\u00e3o, atinge um ponto em que termina de avaliar o c\u00f3digo e, em seguida, est\u00e1 pronto para voltar para o que a base de c\u00f3digo far\u00e1 a seguir. Isso \u00e9 \u00fatil se voc\u00ea deseja descobrir onde um bug pode estar e suspeitar que est\u00e1 em uma parte do c\u00f3digo (onde pode ou n\u00e3o estar).<\/li>\n<\/ul>\n<p>E \u00e9 isso. Se isso for novo, pode soar estranho ou pode ser dif\u00edcil entender isso. Se for esse o caso, tudo bem. \u00c9 assim que acontece com qualquer coisa nova, certo?<\/p>\n<p>Por outro lado, se voc\u00ea conhece esses termos ou groca as defini\u00e7\u00f5es deles com facilidade, considere os pontos anteriores como uma atualiza\u00e7\u00e3o.<\/p>\n<h3>E agora um screencast<\/h3>\n<p>Neste screencast, vou realizar todas as a\u00e7\u00f5es acima usando um dos meus pr\u00f3prios plugins \u2013 <strong><a href=\"https:\/\/wordpress.org\/plugins\/easier-excerpts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Easier Excerpts<\/a><\/strong>. Isso n\u00e3o significa ser qualquer tipo de autopromo\u00e7\u00e3o, no entanto. Em vez disso, conhe\u00e7o a base de c\u00f3digo e n\u00e3o preciso me preocupar em mostrar o trabalho que est\u00e1 sendo feito para outra pessoa.<\/p>\n<div class=\"sds-iframe-wrapper fitvidsignore\" style=\"position:relative;padding-top:56.25%;max-width:100%;\"><iframe allowfullscreen style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" src=\"\/\/www.youtube.com\/embed\/DZFBcEzEIVw\" frameborder=\"0\"><\/iframe><\/div>\n<p>Agora que voc\u00ea viu o screencast e sabe que \u00e9 estritamente minha base de c\u00f3digo, voc\u00ea pode <strong><a href=\"https:\/\/wordpress.org\/plugins\/easier-excerpts\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">baixar o c\u00f3digo<\/a><\/strong> e executar todas as mesmas a\u00e7\u00f5es voc\u00ea mesmo para entender como executar as a\u00e7\u00f5es descritas neste post.<\/p>\n<p>Isso fornecer\u00e1 ainda mais pr\u00e1tica para suas habilidades de depura\u00e7\u00e3o e deve facilitar o aprimoramento de nossas habilidades de depura\u00e7\u00e3o \u00e0 medida que avan\u00e7amos na pr\u00f3xima postagem.<\/p>\n<h2>A seguir<\/h2>\n<p>Este \u00e9 um post um pouco longo e eu tentei ter certeza de que todas as explica\u00e7\u00f5es foram feitas antes de ver o screencast. Afinal, \u00e9 muito mais f\u00e1cil ler par\u00e1grafos de texto sobre o conte\u00fado e depois v\u00ea-lo em um v\u00eddeo curto do que em um v\u00eddeo de 15 minutos, n\u00e3o \u00e9?<\/p>\n<p>Por mais \u00fatil que isso possa ser, ainda h\u00e1 mais do que isso. E \u00e9 isso que vamos analisar no pr\u00f3ximo post. Especificamente, veremos como inspecionar valores de vari\u00e1veis, revisar o que um array cont\u00e9m e como podemos modificar vari\u00e1veis \u200b\u200bem tempo real.<\/p>\n<p>\u00c9 um material poderoso, mas certifique-se de revisar <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/uma-introducao-a-depuracao\/\" title=\"o primeiro conte\u00fado\">o primeiro conte\u00fado<\/a><\/strong>, revisar cuidadosamente esta postagem e praticar um pouco antes de seguir em frente.<\/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>Antes de compartilhar o screencast, quero definir o que significa percorrer o c\u00f3digo em um projeto. Ent\u00e3o eu vou te mostrar como.<\/p>\n","protected":false},"author":1,"featured_media":236179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,846],"tags":[1170],"class_list":["post-230981","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230981","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=230981"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236179"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}