{"id":5332,"date":"2025-01-23T13:06:48","date_gmt":"2025-01-23T13:06:48","guid":{"rendered":"https:\/\/www.deuzebranaweb.com.br\/?p=5332"},"modified":"2025-01-23T13:06:48","modified_gmt":"2025-01-23T13:06:48","slug":"como-criar-um-plugin-wordpress-tutorial-completo","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2025\/01\/23\/como-criar-um-plugin-wordpress-tutorial-completo\/","title":{"rendered":"Como Criar um Plugin WordPress: Tutorial Completo"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">O WordPress tem um cat\u00e1logo gigantesco de plugins com funcionalidades adicionais para a plataforma. Al\u00e9m disso, os plugins podem agregar novos recursos ao seu site WordPress sem que voc\u00ea precise mudar o c\u00f3digo principal da p\u00e1gina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existem milhares de plugins gratuitos e pagos para voc\u00ea escolher, mas pode haver momentos nos quais voc\u00ea precisar\u00e1 de uma fun\u00e7\u00e3o espec\u00edfica que n\u00e3o est\u00e1 dispon\u00edvel. Nesses casos, talvez voc\u00ea precise criar o seu pr\u00f3prio plugin WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste tutorial, voc\u00ea aprender\u00e1 o passo-a-passo para criar um plugin WordPress. N\u00f3s tamb\u00e9m vamos trazer dicas de boas pr\u00e1ticas para escrever o c\u00f3digo e criar os melhores plugins poss\u00edveis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionalmente, cobriremos a diferen\u00e7a entre um plugin e um tema, explicando como eles funcionam dentro da plataforma do WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conte\u00fado<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#O_Que_Voce_Precisa_Para_Criar_um_Plugin_WordPress\">O Que Voc\u00ea Precisa Para Criar um Plugin WordPress<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Plugins_WordPress_x_Temas_WordPress\">Plugins WordPress x Temas WordPress<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#O_Que_Sao_Hooks_WordPress\">O Que S\u00e3o Hooks WordPress?<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Acoes_e_Hooks_de_Acao\">A\u00e7\u00f5es e Hooks de A\u00e7\u00e3o<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Filtros_e_Hooks_de_Filtro\">Filtros e Hooks de Filtro<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Passo_1_Armazenando_o_Plugin\">Passo 1 Armazenando o Plugin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Passo_2_Criando_o_Primeiro_Arquivo\">Passo 2 Criando o Primeiro Arquivo<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Passo_3_Escrevendo_as_Funcoes_do_Plugin\">Passo 3 Escrevendo as Fun\u00e7\u00f5es do Plugin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Passo_4_Criando_a_Pagina_de_Administrador_do_Plugin\">Passo 4 Criando a P\u00e1gina de Administrador do Plugin<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Boas_Praticas_e_Dicas_ao_Criar_Plugins_Personalizados\">Boas Pr\u00e1ticas e Dicas ao Criar Plugins Personalizados<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Perguntas_Frequentes_Como_Criar_um_Plugin_WordPress\">Perguntas Frequentes Como Criar um Plugin WordPress<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#E_Possivel_Ganhar_Dinheiro_Fazendo_Plugins_WordPress\">\u00c9 Poss\u00edvel Ganhar Dinheiro Fazendo Plugins WordPress?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Quem_Pode_Criar_Plugins_WordPress\">Quem Pode Criar Plugins WordPress?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB#Os_Plugins_WordPress_sao_Escritos_em_PHP\">Os Plugins WordPress s\u00e3o Escritos em PHP?<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-o-que-voce-precisa-para-criar-um-plugin-wordpress\"><strong>O Que Voc\u00ea Precisa Para Criar um Plugin WordPress<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eis a lista do que voc\u00ea precisar\u00e1 para criar um plugin WordPress:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Um editor de texto<\/li>\n\n\n\n<li><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/como-configurar-o-cliente-filezilla\">Acesso FTP<\/a>\u00a0ao seu plano de hospedagem<\/li>\n\n\n\n<li>Uma\u00a0<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/como-instalar-o-wordpress\">instala\u00e7\u00e3o WordPress<\/a>\u00a0ativa<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea precisar\u00e1 do editor de texto para escrever o c\u00f3digo do plugin. Alguns&nbsp;<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/melhores-editores-html\/\">editores HTML<\/a>&nbsp;populares incluem o&nbsp;<a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Notepad++<\/a>&nbsp;e o&nbsp;<a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Atom<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s instalar o editor de texto, conecte-o ao seu servidor FTP para realizar a modifica\u00e7\u00e3o de c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, configure um cliente FTP para fazer o upload do plugin ao seu site. N\u00f3s recomendamos usar o software FileZilla, pois ele \u00e9 bastante simples de ser configurado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, certifique-se de que voc\u00ea tem uma instala\u00e7\u00e3o do WordPress ativa e atualizada. Existem v\u00e1rias maneiras de&nbsp;<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/como-atualizar-o-wordpress\/\">atualizar o WordPress<\/a>&nbsp;caso voc\u00ea tenha desativado as atualiza\u00e7\u00f5es autom\u00e1ticas. N\u00e3o se esque\u00e7a de fazer o&nbsp;<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/como-fazer-backup-do-seu-site-wordpress\">backup dos seus arquivos<\/a>&nbsp;antes de realizar o update para evitar a perda de dados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alternativamente, voc\u00ea pode&nbsp;<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/localhost-wordpress\">instalar o WordPress localmente<\/a>. Este m\u00e9todo n\u00e3o requer um site ativo, tampouco um dom\u00ednio ou um plano de hospedagem. Dessa forma, voc\u00ea pode testar o seu plugin sem que seus visitantes vejam as mudan\u00e7as imediatamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ter conhecimentos b\u00e1sicos de PHP ser\u00e1 uma vantagem para o processo de desenvolvimento do seu plugin. Isso porque voc\u00ea precisar\u00e1 escrever fun\u00e7\u00f5es personalizadas e trabalhar com fun\u00e7\u00f5es pr\u00f3prias do WordPress. Ou seja: voc\u00ea ao menos precisar\u00e1 ter alguma familiaridade com conven\u00e7\u00f5es de nomes e estruturas de arquivos na linguagem PHP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-plugins-wordpress-x-temas-wordpress\"><strong>Plugins WordPress x Temas WordPress<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A funcionalidade de um site WordPress pode ser alterada por meio de plugins e temas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Temas do WordPress t\u00eam um arquivo&nbsp;<strong>functions.php<\/strong>&nbsp;armazenado na pasta&nbsp;<strong>\/wp-includes\/<\/strong>. Ele permite que voc\u00ea adicione c\u00f3digos personalizados para criar novas fun\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este m\u00e9todo \u00e9 eficaz para altera\u00e7\u00f5es menores, mas n\u00e3o \u00e9 pr\u00e1tico para mudan\u00e7as maiores, que afetem o site como um todo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso porque as funcionalidades escritas no arquivo&nbsp;<strong>functions.php<\/strong>&nbsp;dependem se o tema est\u00e1 ativo ou n\u00e3o. Se voc\u00ea trocar ou desativar o tema, o WordPress reverter\u00e1 as mudan\u00e7as feitas no arquivo e exibir\u00e1 uma mensagem de erro quando o site tentar chamar as fun\u00e7\u00f5es perdidas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A n\u00e3o ser que voc\u00ea use um&nbsp;<em>child theme<\/em>, atualizar o tema tamb\u00e9m substituir\u00e1 o arquivo&nbsp;<strong>functions.php<\/strong>, te for\u00e7ando a restaurar manualmente os c\u00f3digos personalizados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 por isso que criar um plugin personalizado \u00e9 t\u00e3o \u00fatil. Ao fazer isso, voc\u00ea facilita a modifica\u00e7\u00e3o de aspectos padr\u00e3o do WordPress para que a plataforma se adapte \u00e0s suas necessidades.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode adicionar plugins a qualquer instala\u00e7\u00e3o WordPress. Recursos trazidos pelo plugin permanecer\u00e3o funcionais mesmo que voc\u00ea troque de tema. Al\u00e9m disso, voc\u00ea poder\u00e1 atualizar o WordPress sem perder fun\u00e7\u00f5es j\u00e1 criadas, economizando seu tempo e esfor\u00e7o.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.hostinger.com.br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2024\/06\/BR-New-WP_in-text-banner.webp\" alt=\"\" class=\"wp-image-44638\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-o-que-sao-hooks-wordpress\"><strong>O Que S\u00e3o Hooks WordPress?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Os plugins WordPress interagem com o c\u00f3digo nuclear da plataforma por meio de hooks (ou ganchos). Existem dois tipos de hooks no WordPress:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hooks de a\u00e7\u00e3o<\/strong>\u00a0\u2013 adicionam ou removem fun\u00e7\u00f5es.<\/li>\n\n\n\n<li><strong>Hooks de filtro<\/strong>\u00a0\u2013 modificam dados produzidos pelas fun\u00e7\u00f5es.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-acoes-e-hooks-de-acao\"><strong>A\u00e7\u00f5es e Hooks de A\u00e7\u00e3o<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Uma a\u00e7\u00e3o \u00e9 uma fun\u00e7\u00e3o PHP chamada por meio de um hook de a\u00e7\u00e3o espec\u00edfico sempre que um usu\u00e1rio visita uma p\u00e1gina WordPress. Desenvolvedores web podem adicionar suas pr\u00f3prias fun\u00e7\u00f5es \u00e0 lista de a\u00e7\u00f5es (ou remover as que j\u00e1 existem) adicionando o script de hook de a\u00e7\u00e3o&nbsp;<strong>wp_head()<\/strong>&nbsp;antes da tag de fechamento (<strong>&lt;\/head&gt;<\/strong>) de qualquer p\u00e1gina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os hooks de a\u00e7\u00e3o s\u00e3o contextuais, o que significa que nem todas as p\u00e1ginas WordPress os chamam. A p\u00e1gina de&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\" target=\"_blank\" rel=\"noreferrer noopener\">Refer\u00eancia para A\u00e7\u00f5es de Plugins WordPress<\/a>&nbsp;traz uma lista completa dos hooks de a\u00e7\u00e3o e os contextos nos quais eles s\u00e3o chamados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adicionando Fun\u00e7\u00f5es a um Hook de A\u00e7\u00e3o Usando o add_action()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionar fun\u00e7\u00f5es a um hook de a\u00e7\u00e3o num arquivo de plugin requer chamar a fun\u00e7\u00e3o&nbsp;<strong>add_action()<\/strong>&nbsp;com ao menos dois par\u00e2metros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Hook para a a\u00e7\u00e3o &#8216;init&#8217;, que \u00e9 chamada depois que o WordPress termina de carregar o c\u00f3digo principal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action( &#8216;init&#8217;, &#8216;add_Cookie&#8217; );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Configura um cookie com o hor\u00e1rio atual do dia<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> add_Cookie() {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">setcookie(&#8220;last_visit_time&#8221;, date(&#8220;r&#8221;), time()+60*60*24*30, &#8220;\/&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro par\u00e2metro \u00e9 o nome do&nbsp;<strong>hook de a\u00e7\u00e3o<\/strong>&nbsp;ao qual voc\u00ea quer anexar o callback. J\u00e1 o segundo par\u00e2metro cont\u00e9m o nome da&nbsp;<strong>fun\u00e7\u00e3o<\/strong>&nbsp;que voc\u00ea pretende executar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O terceiro par\u00e2metro, opcional, declara a&nbsp;<strong>prioridade<\/strong>&nbsp;da fun\u00e7\u00e3o. A prioridade padr\u00e3o \u00e9 10, colocando a fun\u00e7\u00e3o personalizada depois de qualquer uma das nativas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O quarto par\u00e2metro, tamb\u00e9m opcional, cont\u00e9m o&nbsp;<strong>n\u00famero de argumentos<\/strong>&nbsp;ou par\u00e2metros que a fun\u00e7\u00e3o personalizada pode receber. O valor padr\u00e3o \u00e9 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Exemplo: C\u00f3digo de Plugin para Exibir Texto Abaixo do Rodap\u00e9 de Cada P\u00e1gina<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este exemplo de plugin chama o hook de a\u00e7\u00e3o&nbsp;<strong>wp_footer()<\/strong>&nbsp;antes da tag de fechamento&nbsp;<strong>&lt;\/body&gt;<\/strong>&nbsp;de cada p\u00e1gina e adiciona uma nova fun\u00e7\u00e3o, chamada&nbsp;<strong>mfp_Add_Text()<\/strong>. Como ela \u00e9 parte de um plugin, a fun\u00e7\u00e3o continuar\u00e1 ativa mesmo caso voc\u00ea troque de tema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salve o exemplo abaixo como um arquivo PHP e fa\u00e7a o upload dele para a pasta&nbsp;<strong>plugins<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nome do Plugin: Adicionar Texto ao Rodap\u00e9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho do hook de a\u00e7\u00e3o &#8216;wp_footer&#8217;, adiciona a ele a fun\u00e7\u00e3o &#8216;mfp_Add_Text&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action(&#8220;wp_footer&#8221;, &#8220;mfp_Add_Text&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Define &#8216;mfp_Add_Text&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Add_Text()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">echo &#8220;&lt;p style=&#8217;color: black;&#8217;&gt;Ap\u00f3s o rodap\u00e9 ser carregado, meu texto \u00e9 adicionado!&lt;\/p&gt;&#8221;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A captura de tela a seguir mostra o plugin em a\u00e7\u00e3o ap\u00f3s ser ativado no painel de administra\u00e7\u00e3o do WordPress:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/plugin-text.webp\" alt=\"plugin que adiciona texto ap\u00f3s o rodap\u00e9 do site wordpress\" class=\"wp-image-30598\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Importante!<\/strong>&nbsp;Na linguagem PHP, seu script inteiro \u00e9 analisado antes de ser executado. Escrever uma chamada add_action() no topo do arquivo, na ordem de execu\u00e7\u00e3o desejada, e depois definir suas fun\u00e7\u00f5es na mesma ordem tornar\u00e1 o arquivo mais f\u00e1cil de ser lido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Removendo Fun\u00e7\u00f5es de um Hook de A\u00e7\u00e3o Usando o remove_action()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para remover uma a\u00e7\u00e3o de um hook de a\u00e7\u00e3o, escreva uma nova fun\u00e7\u00e3o chamada&nbsp;<strong>remove_action()<\/strong>&nbsp;e chame a fun\u00e7\u00e3o que voc\u00ea escreveu usando o&nbsp;<strong>add_action()<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fun\u00e7\u00e3o&nbsp;<strong>remove_action()<\/strong>&nbsp;tamb\u00e9m deve ter ao menos dois par\u00e2metros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho da a\u00e7\u00e3o &#8216;init&#8217;, que \u00e9 chamada ap\u00f3s o WordPress carregar seu c\u00f3digo principal, adiciona a fun\u00e7\u00e3o &#8216;remove_My_Meta_Tags&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action( &#8216;init&#8217;, &#8216;remove_My_Meta_Tags&#8217; );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Remove a fun\u00e7\u00e3o &#8216;add_My_Meta_Tags&#8217; do hook de a\u00e7\u00e3o wp_head<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> remove_My_Meta_Tags()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">remove_action( &#8216;wp_head&#8217;, &#8216;add_My_Meta_Tags&#8217;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro par\u00e2metro \u00e9 o nome do&nbsp;<strong>hook de a\u00e7\u00e3o<\/strong>&nbsp;ao qual a fun\u00e7\u00e3o est\u00e1 anexada, enquanto o segundo par\u00e2metro cont\u00e9m o nome da&nbsp;<strong>fun\u00e7\u00e3o<\/strong>&nbsp;que voc\u00ea quer remover.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O terceiro par\u00e2metro, opcional, declara a&nbsp;<strong>prioridade<\/strong>&nbsp;da fun\u00e7\u00e3o original. Ela deve ser id\u00eantica \u00e0 prioridade originalmente definida quando a a\u00e7\u00e3o foi adicionada ao hook. Se voc\u00ea n\u00e3o definiu uma prioridade na fun\u00e7\u00e3o personalizada, n\u00e3o inclua este par\u00e2metro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No pr\u00f3ximo exemplo, n\u00f3s vamos impedir que o texto adicional apare\u00e7a no rodap\u00e9 das postagens de segunda-feira.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma forma de fazer isso \u00e9 usar a fun\u00e7\u00e3o PHP&nbsp;<strong>date()<\/strong>&nbsp;para obter o dia atual, seguida por tags condicionais para checar se \u00e9 segunda-feira. Ap\u00f3s analisar as informa\u00e7\u00f5es, a p\u00e1gina executar\u00e1 a fun\u00e7\u00e3o&nbsp;<strong>remove_action()<\/strong>&nbsp;em cada postagem publicada nas segundas-feiras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho da a\u00e7\u00e3o &#8216;wp_footer&#8217;, executa a fun\u00e7\u00e3o &#8216;mfp_Add_Text()&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action(&#8220;wp_footer&#8221;, &#8220;mfp_Add_Text&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho da a\u00e7\u00e3o &#8216;wp_head&#8217;, executa a fun\u00e7\u00e3o &#8216;mfp_Remove_Text()&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action(&#8220;wp_head&#8221;, &#8220;mfp_Remove_Text&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Define a fun\u00e7\u00e3o &#8216;mfp_Add_Text(&#8216;), que simplesmente reproduz texto simples<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Add_Text()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">echo &#8220;&lt;p style=&#8217;color: #FFF;&#8217;&gt;After the footer is loaded, my text is added!&lt;\/p&gt;&#8221;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Define a fun\u00e7\u00e3o &#8216;mfp_Remove_Text()&#8217; para remover a fun\u00e7\u00e3o anterior da a\u00e7\u00e3o &#8216;wp_footer&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Remove_Text()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>if<\/strong> (date(&#8220;l&#8221;) === &#8220;Monday&#8221;) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Aponta para a a\u00e7\u00e3o &#8216;wp_footer&#8217;, remove dela a fun\u00e7\u00e3o &#8216;mfp_Add_Text&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">remove_action(&#8220;wp_footer&#8221;, &#8220;mfp_Add_Text&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-filtros-e-hooks-de-filtro\"><strong>Filtros e Hooks de Filtro<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um filtro \u00e9 uma fun\u00e7\u00e3o PHP chamada por um hook de filtro que modifica dados gerados por fun\u00e7\u00f5es existentes. Como os hooks de a\u00e7\u00e3o, os hooks de filtro tamb\u00e9m s\u00e3o contextuais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A lista completa de hooks de filtro e os contextos nos quais eles s\u00e3o chamados est\u00e3o dispon\u00edveis na p\u00e1gina de&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\" target=\"_blank\" rel=\"noreferrer noopener\">Refer\u00eancia para Filtros de Plugins WordPress<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adicionar Filtros Usando o add_filter()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionar uma fun\u00e7\u00e3o de filtro a um hook de filtro dentro de um arquivo de plugin requer o uso da fun\u00e7\u00e3o&nbsp;<strong>add_filter()<\/strong>&nbsp;com pelo menos dois par\u00e2metros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho do hook de a\u00e7\u00e3o &#8216;the_content&#8217; (conte\u00fado de qualquer postagem), executa a fun\u00e7\u00e3o &#8216;mfp_Fix_Text_Spacing&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_filter(&#8220;the_content&#8221;, &#8220;mfp_Fix_Text_Spacing&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Corrige automaticamente espa\u00e7amentos duplos em qualquer postagem<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Fix_Text_Spacing($the_Post)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$the_New_Post = str_replace(&#8221; &#8220;, &#8221; &#8220;, $the_Post);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>return<\/strong> $the_New_Post;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro par\u00e2metro \u00e9 o nome do&nbsp;<strong>hook de filtro<\/strong>&nbsp;ao qual voc\u00ea quer adicionar o callback, enquanto o segundo par\u00e2metro cont\u00e9m o nome da&nbsp;<strong>fun\u00e7\u00e3o<\/strong>&nbsp;que voc\u00ea quer executar quando o filtro \u00e9 aplicado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O terceiro par\u00e2metro, opcional, declara a&nbsp;<strong>prioridade<\/strong>&nbsp;da fun\u00e7\u00e3o. A prioridade padr\u00e3o \u00e9 10, colocando a fun\u00e7\u00e3o personalizada atr\u00e1s de todas as nativas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 ainda um quarto par\u00e2metro opcional, que indica o&nbsp;<strong>n\u00famero de argumentos<\/strong>&nbsp;ou par\u00e2metros que o filtro personalizado pode receber. O valor padr\u00e3o \u00e9 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Exemplo: Plugin para Alterar um Trecho de Post<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O WordPress tem uma fun\u00e7\u00e3o que captura trechos de postagens, chamado&nbsp;<strong>get_the_excerpt()<\/strong>. Ela tamb\u00e9m \u00e9 um hook de filtro. Adicionar este filtro ap\u00f3s capturar o trecho alterar\u00e1 o texto em quest\u00e3o antes do site WordPress exibi-lo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O plugin de exemplo a seguir define uma fun\u00e7\u00e3o de filtro que captura o trecho como \u00fanico par\u00e2metro de entrada, adiciona algum texto antes dele e retorna o novo valor todas \u00e0s vezes que o script chama a fun\u00e7\u00e3o&nbsp;<strong>get_the_excerpt()<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como o valor de retorno da fun\u00e7\u00e3o&nbsp;<strong>get_the_excerpt()<\/strong>&nbsp;\u00e9 o trecho do texto em si, o plugin automaticamente far\u00e1 a entrada do novo valor como o par\u00e2metro&nbsp;<strong>$old_Excerpt<\/strong>&nbsp;da fun\u00e7\u00e3o quando chamado usando o&nbsp;<strong>add_filter()<\/strong>. A fun\u00e7\u00e3o definida pelo plugin&nbsp;<strong>deve retornar o novo valor<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nome do Plugin: Adicionar Trecho<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho do hook de filtro get_the_excerpt, executa a fun\u00e7\u00e3o mfp_Add_Text_To_Excerpt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_filter(&#8220;get_the_excerpt&#8221;, &#8220;mfp_Add_Text_To_Excerpt&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Captura o trecho, adiciona algum texto antes dele e retorna o novo trecho<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Add_Text_To_Excerpt($old_Excerpt)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$new_Excerpt = &#8220;&lt;b&gt;Excerpt: &lt;\/b&gt;&#8221; . $old_Excerpt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>return<\/strong> $new_Excerpt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Removendo Filtros Usando o remove_filter()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Remover um filtro \u00e9 muito mais simples que remover uma a\u00e7\u00e3o, uma vez que o WordPress permite que voc\u00ea chame a fun\u00e7\u00e3o&nbsp;<strong>remove_filter()<\/strong>&nbsp;sem definir um novo filtro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No exemplo a seguir, n\u00f3s vamos remover o trecho adicional do texto se o dia de hoje \u00e9 ter\u00e7a-feira. N\u00f3s usaremos a fun\u00e7\u00e3o&nbsp;<strong>remove_filter()<\/strong>&nbsp;com pelo menos dois par\u00e2metros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro deve conter o hook de filtro ao qual a fun\u00e7\u00e3o est\u00e1 anexada. O segundo par\u00e2metro deve ser o nome do filtro que voc\u00ea quer remover. Adicione um par\u00e2metro de prioridade caso voc\u00ea tenha definido um ao criar a fun\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho do hook de filtro get_the_excerpt, executa a fun\u00e7\u00e3o mfp_Add_Text_To_Excerpt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_filter(&#8220;get_the_excerpt&#8221;, &#8220;mfp_Add_Text_To_Excerpt&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Se hoje \u00e9 ter\u00e7a-feira, remove o filtro de the_excerpt()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>if<\/strong> (date(&#8220;l&#8221;) === &#8220;Thursday&#8221;) {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">remove_filter(&#8220;get_the_excerpt&#8221;, &#8220;mfp_Add_Text_To_Excerpt&#8221;);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Captura o trecho, adiciona algum texto antes dele e retorna o novo trecho<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Add_Text_To_Excerpt($old_Excerpt)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$new_Excerpt = &#8220;&lt;b&gt;Excerpt: &lt;\/b&gt;&#8221; . $old_Excerpt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>return<\/strong> $new_Excerpt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora que voc\u00ea tem um conhecimento b\u00e1sico de hooks e filtros, n\u00f3s criaremos um plugin b\u00e1sico para WordPress que adicionar\u00e1 uma nova p\u00e1gina com um link no painel de controle para administradores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Importante!<\/strong>&nbsp;Usar um ambiente de testes WordPress para testar novos plugins \u00e9 importante para evitar erros que podem causar quedas e falhas. Existem duas formas de criar um ambiente de testes: manualmente ou com um plugin como o WP Staging. Alternativamente, voc\u00ea pode instalar o WordPress localmente no seu computador.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-passo-1-armazenando-o-plugin\"><strong>Passo 1: Armazenando o Plugin<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro passo para criar um novo plugin \u00e9 fazer uma pasta para armazenar seus arquivos. O nome da pasta deve ser \u00fanico e descritivo. Cheque outros nomes de pastas no diret\u00f3rio&nbsp;<strong>\/wp-content\/plugins\/<\/strong>&nbsp;para se certificar de que o novo nome j\u00e1 n\u00e3o est\u00e1 em uso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use um cliente FTP para se conectar \u00e0 sua conta de hospedagem e facilitar o processo de upload de arquivos. V\u00e1 at\u00e9 a pasta&nbsp;<strong>wp-content -&gt; plugins<\/strong>&nbsp;a partir do diret\u00f3rio principal do WordPress. L\u00e1, crie uma nova pasta chamada&nbsp;<strong>meu-primeiro-plugin<\/strong>&nbsp;na pasta&nbsp;<strong>plugins<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-1-1024x429.png\" alt=\"criando pasta do meu primeiro plugin no FileZilla\" class=\"wp-image-30592\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-passo-2-criando-o-primeiro-arquivo\"><strong>Passo 2: Criando o Primeiro Arquivo<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O arquivo principal do plugin cont\u00e9m as informa\u00e7\u00f5es exigidas pelo WordPress para exibir o plugin na lista do painel de controle, onde voc\u00ea poder\u00e1 ativ\u00e1-lo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crie um novo arquivo PHP, chamado&nbsp;<strong>meu-primeiro-plugin.php<\/strong>, na pasta criada anteriormente. Este arquivo principal conter\u00e1 coment\u00e1rios de cabe\u00e7alho, com informa\u00e7\u00f5es adicionais que o WordPress pode ler ou exibir.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-2-1024x524.png\" alt=\"criando arquivo php principal do meu primeiro plugin no FileZilla\" class=\"wp-image-30593\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s fazer o upload do arquivo, clique nele com o bot\u00e3o direito e selecione a op\u00e7\u00e3o&nbsp;<strong>\u201cVer\/Editar\u201d<\/strong>&nbsp;para adicionar o c\u00f3digo a seguir (isso pode ser feito por meio de um editor HTML):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nome do Plugin: Meu Primeiro Plugin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Descri\u00e7\u00e3o: Este \u00e9 o meu primeiro plugin! Ele cria um novo link no menu de administra\u00e7\u00e3o!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Autor: Seu nome<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode checar este&nbsp;<a href=\"https:\/\/www.php.net\/manual\/pt_BR\/language.basic-syntax.instruction-separation.php\" target=\"_blank\" rel=\"noreferrer noopener\">manual PHP<\/a>&nbsp;para entender por que a tag de fechamento&nbsp;<strong>?&gt;<\/strong>&nbsp;n\u00e3o \u00e9 necess\u00e1ria aqui.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Salve o arquivo. Em seguida, navegue \u00e0 se\u00e7\u00e3o&nbsp;<strong>Plugins<\/strong>&nbsp;do seu painel WordPress. Se o WordPress tiver lido o arquivo corretamente, voc\u00ea ver\u00e1 o&nbsp;<strong>Meu Primeiro Plugin<\/strong>&nbsp;na lista:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/meu-primeiro-plugin-1024x578.png\" alt=\"meu primeiro plugin no painel de plugins do wordpress\" class=\"wp-image-30595\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-passo-3-escrevendo-as-funcoes-do-plugin\"><strong>Passo 3: Escrevendo as Fun\u00e7\u00f5es do Plugin<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de come\u00e7ar a escrever as fun\u00e7\u00f5es para o plugin, \u00e9 altamente recomendado que voc\u00ea d\u00ea um prefixo \u00fanico a todos os arquivos, fun\u00e7\u00f5es e vari\u00e1veis a ele relacionados. Isso \u00e9 importante para evitar conflitos com outros plugins. No nosso exemplo, n\u00f3s usaremos o prefixo&nbsp;<strong>mfp<\/strong>, uma sigla para&nbsp;<strong>My First Plugin.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crie uma nova pasta, chamada&nbsp;<strong>Includes<\/strong>, na pasta principal do plugin. N\u00f3s usaremos essa pasta para armazenar arquivos de suporte usados pelo arquivo principal. Nessa pasta, crie um arquivo PHP e o nomeie como&nbsp;<strong>mfp-functions.php<\/strong>. Abra o arquivo com a tag de in\u00edcio&nbsp;<strong>&lt;?php<\/strong>&nbsp;na primeira linha.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este novo arquivo conter\u00e1 todas as fun\u00e7\u00f5es do seu plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3s precisamos incluir o&nbsp;<strong>mfp.functions.php<\/strong>&nbsp;no arquivo principal do plugin para que outros arquivos do plugin usem as fun\u00e7\u00f5es definidas por ele. Use o&nbsp;<strong>require_once<\/strong>&nbsp;para se certificar de que o plugin funcionar\u00e1 apenas caso o arquivo functions esteja presente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edite o&nbsp;<strong>my-first-plugin.php<\/strong>&nbsp;conforme exibido abaixo. Em seguida, salve-o e fa\u00e7a o upload do arquivo novamente, sobrescrevendo a vers\u00e3o anterior quando solicitado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nome do Plugin: Meu Primeiro Plugin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Descri\u00e7\u00e3o: Este \u00e9 o meu primeiro plugin! Ele cria um novo link no menu de administra\u00e7\u00e3o!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Autor: Seu nome<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Inclui o mfp-functions.php, usa o require_once para interromper o script caso o mfp-functions.php n\u00e3o seja encontrado<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">require_once plugin_dir_path(__FILE__) . &#8216;includes\/mfp-functions.php&#8217;;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fun\u00e7\u00e3o do WordPress&nbsp;<strong>plugin_dir_path(__FILE__)&nbsp;<\/strong>permite que voc\u00ea inclua arquivos da pasta de plugins, dando o caminho completo ao diret\u00f3rio que armazena o novo plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, retorne ao arquivo&nbsp;<strong>mfp-functions.php<\/strong>&nbsp;na pasta Includes. Como nosso plugin adicionar\u00e1 um novo link de topo ao menu de navega\u00e7\u00e3o do painel de controle do WordPress, n\u00f3s usaremos uma fun\u00e7\u00e3o personalizada, chamada&nbsp;<strong>mfp_Add_My_Admin_Link()<\/strong>. Adicione o c\u00f3digo abaixo ao arquivo&nbsp;<strong>mfp-functions.php<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">* Adiciona meu novo menu ao Painel de Controle do Administrador<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">*\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Faz o gancho do hook de a\u00e7\u00e3o &#8216;admin_menu&#8217;, executa a fun\u00e7\u00e3o &#8216;mfp_Add_My_Admin_Link()&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_action( &#8216;admin_menu&#8217;, &#8216;mfp_Add_My_Admin_Link&#8217; );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/\/ Adiciona um novo link de topo ao menu do Painel de Controle do Administrador<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>function<\/strong> mfp_Add_My_Admin_Link()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">add_menu_page(<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8216;Minha Primeira P\u00e1gina&#8217;, \/\/ T\u00edtulo da p\u00e1gina<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8216;Meu Primeiro Plugin&#8217;, \/\/ Texto para exibir no link do menu<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8216;manage_options&#8217;, \/\/ Requerimento de capacidade para visualizar o link<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8216;includes\/mfp-first-acp-page.php&#8217; \/\/ O &#8216;slug&#8217; &#8211; arquivo a ser exibido ao clicar no link<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Importante!<\/strong>&nbsp;Agrupe fun\u00e7\u00f5es similares e adicione uma descri\u00e7\u00e3o no topo de cada uma delas com um coment\u00e1rio de m\u00faltiplas linhas. Isso facilitar\u00e1 atualiza\u00e7\u00f5es e corre\u00e7\u00f5es de bugs no futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fun\u00e7\u00e3o&nbsp;<strong>mfp_Add_My_Admin_Link()&nbsp;<\/strong>usa a fun\u00e7\u00e3o nativa do WordPress&nbsp;<strong>add_menu_page()<\/strong>&nbsp;com ao menos quatro par\u00e2metros, na seguinte ordem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>T\u00edtulo da p\u00e1gina<\/strong>\u00a0\u2013 o nome da p\u00e1gina exibido na aba do navegador.<\/li>\n\n\n\n<li><strong>T\u00edtulo do menu<\/strong>\u00a0\u2013 o texto usado para o item do menu. Em nosso exemplo, \u00e9 o pr\u00f3prio nome do plugin.<\/li>\n\n\n\n<li><strong>Capacidade<\/strong>\u00a0\u2013 requerimento de capacidade do usu\u00e1rio para visualizar o menu do plugin. No nosso caso, apenas usu\u00e1rios com a capacidade manage_options poder\u00e3o acessar a p\u00e1gina linkada.<\/li>\n\n\n\n<li><strong>Slug do menu<\/strong>\u00a0\u2013 o arquivo que deve ser usado para exibir a p\u00e1gina em si. N\u00f3s criaremos o arquivo\u00a0<strong>mfp-first-acp-page.php<\/strong>, que ser\u00e1 linkado na se\u00e7\u00e3o a seguir.<\/li>\n\n\n\n<li><strong>Fun\u00e7\u00e3o (opcional)<\/strong>\u00a0\u2013 a fun\u00e7\u00e3o que gera o conte\u00fado da p\u00e1gina.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Anexar a fun\u00e7\u00e3o personalizada com o comando&nbsp;<strong>add_action()&nbsp;<\/strong>permite que o plugin chame o hook de a\u00e7\u00e3o sob determinadas circunst\u00e2ncias. Adicionar o&nbsp;<strong>admin_menu<\/strong>&nbsp;como primeiro par\u00e2metro chamar\u00e1 a fun\u00e7\u00e3o quando um usu\u00e1rio acessar o menu de administrador. Enquanto isso, o&nbsp;<strong>mfp_Add_My_Admin_Link<\/strong>&nbsp;\u00e9 a fun\u00e7\u00e3o que ser\u00e1 executada, por ser especificada como o segundo par\u00e2metro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, fa\u00e7a o upload do arquivo&nbsp;<strong>mfp-functions.php<\/strong>&nbsp;\u00e0 pasta&nbsp;<strong>Includes<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-passo-4-criando-a-pagina-de-administrador-do-plugin\"><strong>Passo 4: Criando a P\u00e1gina de Administrador do Plugin<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s definir as fun\u00e7\u00f5es do plugin, \u00e9 hora de construir a p\u00e1gina que \u00e0 qual o bot\u00e3o de menu nos levar\u00e1. Crie um novo arquivo PHP chamado&nbsp;<strong>mfp-first-acp-page.php<\/strong>&nbsp;na pasta&nbsp;<strong>Includes<\/strong>&nbsp;e adicione o c\u00f3digo a seguir:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;div <strong>class<\/strong>=&#8221;wrap&#8221;&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;h1&gt;Ol\u00e1!&lt;\/h1&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;p&gt;Essa \u00e9 a primeira p\u00e1gina <strong>do<\/strong> meu plugin&lt;\/p&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;\/div&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao criar p\u00e1ginas de administrador, o WordPress recomenda isolar o c\u00f3digo HTML com uma tag&nbsp;<strong>&lt;div&gt;<\/strong>&nbsp;e dar a ela a classe&nbsp;<strong>\u201cwrap\u201d<\/strong>, para garantir que todo o seu conte\u00fado apare\u00e7a no lugar correto. Fazer isso tamb\u00e9m ajudar\u00e1 a deixar o seu c\u00f3digo mais limpo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, navegue at\u00e9 a se\u00e7\u00e3o&nbsp;<strong>Plugins<\/strong>&nbsp;do seu painel WordPress e ative o novo plugin. Se o processo for bem sucedido, o link para o painel de administra\u00e7\u00e3o do seu novo plugin aparecer\u00e1 na parte de baixo do menu de navega\u00e7\u00e3o.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/meu-primeiro-plugin-1-1024x563.png\" alt=\"meu primeiro plugin no menu de administrador do wordpress\" class=\"wp-image-30596\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Parab\u00e9ns! Voc\u00ea criou seu primeiro plugin para WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea criou o plugin num ambiente de testes, ser\u00e1 necess\u00e1rio instalar o plugin no site em si. Os passos a seguir mostram como faz\u00ea-lo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>No FileZilla, clique com o bot\u00e3o direito na pasta\u00a0<strong>my-first-plugin<\/strong>\u00a0e selecione\u00a0<strong>\u201cDownload\u201d<\/strong>. Em seguida, comprima a pasta num arquivo ZIP.<br \/><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"572\" srcset=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3.webp 1024w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3-300x167.png 300w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3-150x84.png 150w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3-768x429.png 768w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3-1536x857.png 1536w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3-2048x1143.png 2048w\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/filezilla-plugin-3.webp\" alt=\"baixando pasta do meu primeiro plugin no FileZilla\"\/><\/li>\n\n\n\n<li>Navegue at\u00e9 o menu\u00a0<strong>Plugins<\/strong>\u00a0no painel do WordPress. Clique em\u00a0<strong>\u201cAdicionar novo\u201d<\/strong>.<\/li>\n\n\n\n<li>Clique em\u00a0<strong>\u201cEnviar plugin\u201d<\/strong>\u00a0e selecione o arquivo ZIP do seu plugin.<br \/><img decoding=\"async\" width=\"1024\" height=\"413\" srcset=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/adicionar-plugin.webp 1024w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/adicionar-plugin-300x121.png 300w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/adicionar-plugin-150x60.png 150w,https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/adicionar-plugin-768x310.png 768w\" src=\"https:\/\/www.hostinger.com.br\/tutoriais\/wp-content\/uploads\/sites\/12\/2022\/12\/adicionar-plugin.webp\" alt=\"tela para enviar novo plugin no painel de controle do wordpress\"\/><\/li>\n\n\n\n<li>Selecione\u00a0<strong>\u201cInstalar agora\u201d<\/strong>\u00a0para iniciar o processo de instala\u00e7\u00e3o.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Leituras Sugeridas<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea quer saber em que linguagens os plugins do WordPress s\u00e3o escritos? Saiba mais nos guias a seguir:<br \/><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/o-que-e-html-conceitos-basicos\" target=\"_blank\" rel=\"noreferrer noopener\">O Que \u00e9 HTML?<\/a><br \/><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/o-que-e-css-guia-basico-de-css\" target=\"_blank\" rel=\"noreferrer noopener\">O Que \u00e9 CSS?<\/a><br \/><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/o-que-e-javascript\" target=\"_blank\" rel=\"noreferrer noopener\">O Que \u00e9 JavaScript?<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-boas-praticas-e-dicas-ao-criar-plugins-personalizados\"><strong>Boas Pr\u00e1ticas e Dicas ao Criar Plugins Personalizados<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como seu site precisa evoluir continuamente, voc\u00ea precisar\u00e1 revisitar o c\u00f3digo dos seus plugins para implementar novidades e corrigir falhas de seguran\u00e7a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com isso em mente, \u00e9 uma boa ideia seguir algumas boas pr\u00e1ticas no desenvolvimento de plugins desde o in\u00edcio. Com isso, voc\u00ea facilitar\u00e1 todo o processo para voc\u00ea mesmo e para quaisquer desenvolvedores que venham a trabalhar no seu plugin futuramente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, voc\u00ea pode dar uma olhada nos&nbsp;<a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/melhores-plugins-wordpress\">melhores plugins WordPress<\/a>&nbsp;para ter um pouco de inspira\u00e7\u00e3o. Analise seus c\u00f3digos-fonte, como eles organizam suas pastas e outras pr\u00e1ticas que voc\u00ea pode aplicar ao criar os seus pr\u00f3prios plugins.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui est\u00e3o algumas dicas de escrita de c\u00f3digo e desenvolvimento de plugins que poder\u00e3o te ajudar na cria\u00e7\u00e3o do seu primeiro plugin WordPress:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Desenvolva e teste seus plugins num ambiente de teste.<\/strong>\u00a0Desta forma, voc\u00ea n\u00e3o corre o risco de quebrar o seu site no caso de algum c\u00f3digo problem\u00e1tico.<\/li>\n\n\n\n<li><strong>Crie uma estrutura de pastas l\u00f3gica.<\/strong>\u00a0Crie subpastas para cada funcionalidade e divida o c\u00f3digo em diferentes arquivos, com base em seu prop\u00f3sito ou na linguagem de programa\u00e7\u00e3o escolhida, para evitar bagun\u00e7a.<\/li>\n\n\n\n<li><strong>Nomeie cada arquivo, pasta e elemento com cuidado.<\/strong>\u00a0Use prefixos \u00fanicos, para que eles n\u00e3o entrem em conflito com os nomes de arquivos de outros plugins ou do pr\u00f3prio WordPress.<\/li>\n\n\n\n<li><strong>Adicione coment\u00e1rios para explicar cada fun\u00e7\u00e3o.<\/strong>\u00a0Isso permite que outros desenvolvedores entendam seu c\u00f3digo ao atualiz\u00e1-lo ou corrigir seus bugs.<\/li>\n\n\n\n<li><strong>Crie uma documenta\u00e7\u00e3o.<\/strong>\u00a0Essa pr\u00e1tica \u00e9 particularmente vantajosa caso voc\u00ea crie plugins com funcionalidades complexas para muitos usu\u00e1rios.<\/li>\n\n\n\n<li><strong>Use um software de controle de vers\u00e3o para acompanhar as mudan\u00e7as feitas no seu c\u00f3digo.<\/strong>\u00a0Saber quem adicionou ou modificou cada c\u00f3digo ajuda a previnir conflitos entre atualiza\u00e7\u00f5es e reduzir o n\u00famero de bugs.<\/li>\n\n\n\n<li><strong>Use o\u00a0<\/strong><a href=\"https:\/\/codex.wordpress.org\/P%C3%A1gina_Inicial\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Codex do WordPress<\/strong><\/a><strong>\u00a0como refer\u00eancia para seguir padr\u00f5es de c\u00f3digo espec\u00edficos de cada linguagem.<\/strong>\u00a0Certifique-se de seguir os padr\u00f5es ao colaborar num projeto.<\/li>\n\n\n\n<li><strong>Ative o\u00a0<\/strong><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/debug-wordpress\"><strong>WP_DEBUG<\/strong><\/a><strong>\u00a0ou use uma ferramenta de debugging ao desenvolver plugins.<\/strong>\u00a0Isso facilitar\u00e1 a detec\u00e7\u00e3o de bugs, acelerando o desenvolvimento como um todo.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus\u00e3o<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Desenvolver um plugin personalizado \u00e9 uma boa forma de adicionar uma funcionalidade ao site WordPress que n\u00e3o \u00e9 oferecida por nenhum plugin atualmente dispon\u00edvel. Sua cria\u00e7\u00e3o pode ser um plugin simples, que implementa altera\u00e7\u00f5es menores, ou um plugin bem complexo, que modifica o site como um todo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para recapitular, eis os passos para criar o seu plugin WordPress do zero:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Crie uma pasta para armazenar os arquivos do plugin.<\/li>\n\n\n\n<li>Crie o arquivo principal do seu plugin.<\/li>\n\n\n\n<li>Adicione os c\u00f3digos a m\u00faltiplos arquivos para definir as fun\u00e7\u00f5es do plugin.<\/li>\n\n\n\n<li>Construa a p\u00e1gina de administrador do plugin.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Como qualquer outra habilidade, desenvolver plugins para o WordPress com destreza leva tempo. Com pr\u00e1tica suficiente, voc\u00ea poder\u00e1 criar plugins para disponibiliz\u00e1-los no diret\u00f3rio oficial do WordPress \u2014 ou mesmo vend\u00ea-lo em um marketplace.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esperamos que este artigo tenha te ensinado como fazer um plugin para WordPress. Se voc\u00ea tiver alguma d\u00favida ou coment\u00e1rio, n\u00e3o deixe de escrev\u00ea-lo logo abaixo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-perguntas-frequentes-como-criar-um-plugin-wordpress\"><strong>Perguntas Frequentes: Como Criar um Plugin WordPress<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9 Poss\u00edvel Ganhar Dinheiro Fazendo Plugins WordPress?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sim, voc\u00ea pode vender plugins no seu pr\u00f3prio site ou numa loja especializada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quem Pode Criar Plugins WordPress?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Qualquer pessoa com conhecimentos de linguagens de programa\u00e7\u00e3o pode criar um plugin WordPress. Voc\u00ea pode usar um tema para criar um plugin, caso saiba o b\u00e1sico de PHP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Os Plugins WordPress s\u00e3o Escritos em PHP?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Os plugins WordPress costumam ser escritos em PHP, mas voc\u00ea tamb\u00e9m precisar\u00e1 ter conhecimentos b\u00e1sicos em HTML e CSS para gerenciar o conte\u00fado do plugin corretamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.hostinger.com.br\/tutoriais\/criar-plugin-wordpress?utm_campaign=Generic-Tutorials-DSA%7CNT:Se%7CLO:BR-t1&amp;utm_medium=ppc&amp;gad_source=1&amp;gbraid=0AAAAADMy-hbdjoDIwiHtlDy38UgmlCKpe&amp;gclid=Cj0KCQiAyoi8BhDvARIsAO_CDsAgwLm3e0OQf_J_OSiDJ3wq0dmMBcoQKdNXuascGOCobaCGA-LNfxAaAoVwEALw_wcB\">Como criar um plugin WordPress: guia completo passo a passo<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O WordPress tem um cat\u00e1logo gigantesco de plugins com funcionalidades adicionais para a plataforma. Al\u00e9m disso, os plugins podem agregar novos recursos ao seu site WordPress sem que voc\u00ea precise mudar o c\u00f3digo principal da p\u00e1gina. Existem milhares de plugins gratuitos e pagos para voc\u00ea&#8230;<\/p>\n","protected":false},"author":2,"featured_media":5336,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[26,7],"tags":[],"class_list":["post-5332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacao","category-wordpress"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/5332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=5332"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/5332\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media\/5336"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=5332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=5332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=5332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}