{"id":6749,"date":"2018-07-30T15:55:12","date_gmt":"2018-07-30T18:55:12","guid":{"rendered":"https:\/\/blog.hostinger.io\/br-tutoriais\/?p=6749"},"modified":"2025-12-18T11:59:31","modified_gmt":"2025-12-18T14:59:31","slug":"criar-plugin-wordpress","status":"publish","type":"post","link":"\/br\/tutoriais\/criar-plugin-wordpress\/","title":{"rendered":"Como criar um plugin WordPress: tutorial completo"},"content":{"rendered":"<p class=\"wp-block-paragraph\">O WordPress tem um cat&aacute;logo gigantesco de plugins com funcionalidades adicionais para a plataforma. Al&eacute;m disso, os plugins podem agregar novos recursos ao seu site WordPress sem que voc&ecirc; precise mudar o c&oacute;digo principal da p&aacute;gina.<\/p><p class=\"wp-block-paragraph\">Existem milhares de plugins gratuitos e pagos para voc&ecirc; escolher, mas pode haver momentos nos quais voc&ecirc; precisar&aacute; de uma fun&ccedil;&atilde;o espec&iacute;fica que n&atilde;o est&aacute; dispon&iacute;vel. Nesses casos, talvez voc&ecirc; precise criar o seu pr&oacute;prio plugin WordPress.<\/p><p class=\"wp-block-paragraph\">Neste tutorial, voc&ecirc; aprender&aacute; o passo-a-passo para criar um plugin WordPress. N&oacute;s tamb&eacute;m vamos trazer dicas de boas pr&aacute;ticas para escrever o c&oacute;digo e criar os melhores plugins poss&iacute;veis.<\/p><p class=\"wp-block-paragraph\">Adicionalmente, cobriremos a diferen&ccedil;a entre um plugin e um tema, explicando como eles funcionam dentro da plataforma do WordPress.<\/p><h2 class=\"wp-block-heading\" id=\"h-o-que-voce-precisa-para-criar-um-plugin-wordpress\"><strong>O Que Voc&ecirc; Precisa Para Criar um Plugin WordPress<\/strong><\/h2><p class=\"wp-block-paragraph\">Eis a lista do que voc&ecirc; precisar&aacute; para criar um plugin WordPress:<\/p><ul class=\"wp-block-list\">\n<li>Um editor de texto<\/li>\n\n\n\n<li><a href=\"\/br\/tutoriais\/como-configurar-o-cliente-filezilla\/\">Acesso FTP<\/a> ao seu plano de hospedagem<\/li>\n\n\n\n<li>Uma <a href=\"\/br\/tutoriais\/como-instalar-o-wordpress\/\">instala&ccedil;&atilde;o WordPress<\/a> ativa<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Voc&ecirc; precisar&aacute; do editor de texto para escrever o c&oacute;digo do plugin. Alguns <a href=\"\/br\/tutoriais\/melhores-editores-html\/\">editores HTML<\/a> populares incluem o <a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noopener\">Notepad++<\/a> e o <a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noopener\">Atom<\/a>.<\/p><p class=\"wp-block-paragraph\">Ap&oacute;s instalar o editor de texto, conecte-o ao seu servidor FTP para realizar a modifica&ccedil;&atilde;o de c&oacute;digo.<\/p><p class=\"wp-block-paragraph\">Em seguida, configure um cliente FTP para fazer o upload do plugin ao seu site. N&oacute;s recomendamos usar o software FileZilla, pois ele &eacute; bastante simples de ser configurado.<\/p><p class=\"wp-block-paragraph\">Por fim, certifique-se de que voc&ecirc; tem uma instala&ccedil;&atilde;o do WordPress ativa e atualizada. Existem v&aacute;rias maneiras de <a href=\"\/br\/tutoriais\/como-atualizar-o-wordpress\/\">atualizar o WordPress<\/a> caso voc&ecirc; tenha desativado as atualiza&ccedil;&otilde;es autom&aacute;ticas. N&atilde;o se esque&ccedil;a de fazer o <a href=\"\/br\/tutoriais\/como-fazer-backup-do-seu-site-wordpress\/\">backup dos seus arquivos<\/a> antes de realizar o update para evitar a perda de dados.<\/p><p class=\"wp-block-paragraph\">Alternativamente, voc&ecirc; pode <a href=\"\/br\/tutoriais\/localhost-wordpress\/\">instalar o WordPress localmente<\/a>. Este m&eacute;todo n&atilde;o requer um site ativo, tampouco um dom&iacute;nio ou um plano de hospedagem. Dessa forma, voc&ecirc; pode testar o seu plugin sem que seus visitantes vejam as mudan&ccedil;as imediatamente.<\/p><p class=\"wp-block-paragraph\">Ter conhecimentos b&aacute;sicos de PHP ser&aacute; uma vantagem para o processo de desenvolvimento do seu plugin. Isso porque voc&ecirc; precisar&aacute; escrever fun&ccedil;&otilde;es personalizadas e trabalhar com fun&ccedil;&otilde;es pr&oacute;prias do WordPress. Ou seja: voc&ecirc; ao menos precisar&aacute; ter alguma familiaridade com conven&ccedil;&otilde;es de nomes e estruturas de arquivos na linguagem PHP.<\/p><h2 class=\"wp-block-heading\" id=\"h-plugins-wordpress-x-temas-wordpress\"><strong>Plugins WordPress x Temas WordPress<\/strong><\/h2><p class=\"wp-block-paragraph\">A funcionalidade de um site WordPress pode ser alterada por meio de plugins e temas.<\/p><p class=\"wp-block-paragraph\">Temas do WordPress t&ecirc;m um arquivo <strong>functions.php<\/strong> armazenado na pasta <strong>\/wp-includes\/<\/strong>. Ele permite que voc&ecirc; adicione c&oacute;digos personalizados para criar novas fun&ccedil;&otilde;es.<\/p><p class=\"wp-block-paragraph\">Este m&eacute;todo &eacute; eficaz para altera&ccedil;&otilde;es menores, mas n&atilde;o &eacute; pr&aacute;tico para mudan&ccedil;as maiores, que afetem o site como um todo.<\/p><p class=\"wp-block-paragraph\">Isso porque as funcionalidades escritas no arquivo <strong>functions.php<\/strong> dependem se o tema est&aacute; ativo ou n&atilde;o. Se voc&ecirc; trocar ou desativar o tema, o WordPress reverter&aacute; as mudan&ccedil;as feitas no arquivo e exibir&aacute; uma mensagem de erro quando o site tentar chamar as fun&ccedil;&otilde;es perdidas.<\/p><p class=\"wp-block-paragraph\">A n&atilde;o ser que voc&ecirc; use um <em>child theme<\/em>, atualizar o tema tamb&eacute;m substituir&aacute; o arquivo <strong>functions.php<\/strong>, te for&ccedil;ando a restaurar manualmente os c&oacute;digos personalizados.<\/p><p class=\"wp-block-paragraph\">&Eacute; por isso que criar um plugin personalizado &eacute; t&atilde;o &uacute;til. Ao fazer isso, voc&ecirc; facilita a modifica&ccedil;&atilde;o de aspectos padr&atilde;o do WordPress para que a plataforma se adapte &agrave;s suas necessidades.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; pode adicionar plugins a qualquer instala&ccedil;&atilde;o WordPress. Recursos trazidos pelo plugin permanecer&atilde;o funcionais mesmo que voc&ecirc; troque de tema. Al&eacute;m disso, voc&ecirc; poder&aacute; atualizar o WordPress sem perder fun&ccedil;&otilde;es j&aacute; criadas, economizando seu tempo e esfor&ccedil;o.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-o-que-sao-hooks-wordpress\"><strong>O Que S&atilde;o Hooks WordPress?<\/strong><\/h2><p class=\"wp-block-paragraph\">Os plugins WordPress interagem com o c&oacute;digo nuclear da plataforma por meio de hooks (ou ganchos). Existem dois tipos de hooks no WordPress:<\/p><ul class=\"wp-block-list\">\n<li><strong>Hooks de a&ccedil;&atilde;o<\/strong> &ndash; adicionam ou removem fun&ccedil;&otilde;es.<\/li>\n\n\n\n<li><strong>Hooks de filtro<\/strong> &ndash; modificam dados produzidos pelas fun&ccedil;&otilde;es.<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-acoes-e-hooks-de-acao\"><strong>A&ccedil;&otilde;es e Hooks de A&ccedil;&atilde;o<\/strong><\/h3><p class=\"wp-block-paragraph\">Uma a&ccedil;&atilde;o &eacute; uma fun&ccedil;&atilde;o PHP chamada por meio de um hook de a&ccedil;&atilde;o espec&iacute;fico sempre que um usu&aacute;rio visita uma p&aacute;gina WordPress. Desenvolvedores web podem adicionar suas pr&oacute;prias fun&ccedil;&otilde;es &agrave; lista de a&ccedil;&otilde;es (ou remover as que j&aacute; existem) adicionando o script de hook de a&ccedil;&atilde;o <strong>wp_head()<\/strong> antes da tag de fechamento (<strong>&lt;\/head&gt;<\/strong>) de qualquer p&aacute;gina.<\/p><p class=\"wp-block-paragraph\">Os hooks de a&ccedil;&atilde;o s&atilde;o contextuais, o que significa que nem todas as p&aacute;ginas WordPress os chamam. A p&aacute;gina de <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\" target=\"_blank\" rel=\"noopener\">Refer&ecirc;ncia para A&ccedil;&otilde;es de Plugins WordPress<\/a> traz uma lista completa dos hooks de a&ccedil;&atilde;o e os contextos nos quais eles s&atilde;o chamados.<\/p><p class=\"wp-block-paragraph\"><strong>Adicionando Fun&ccedil;&otilde;es a um Hook de A&ccedil;&atilde;o Usando o add_action()<\/strong><\/p><p class=\"wp-block-paragraph\">Adicionar fun&ccedil;&otilde;es a um hook de a&ccedil;&atilde;o num arquivo de plugin requer chamar a fun&ccedil;&atilde;o <strong>add_action()<\/strong> com ao menos dois par&acirc;metros.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook para a a&ccedil;&atilde;o 'init', que &eacute; chamada depois que o WordPress termina de carregar o c&oacute;digo principal\nadd_action( 'init', 'add_Cookie' );\n\/\/ Configura um cookie com o hor&aacute;rio atual do dia\nfunction add_Cookie() {\n setcookie(\"last_visit_time\", date(\"r\"), time()+60*60*24*30, \"\/\");\n}<\/pre><p class=\"wp-block-paragraph\">O primeiro par&acirc;metro &eacute; o nome do <strong>hook de a&ccedil;&atilde;o<\/strong> ao qual voc&ecirc; quer anexar o callback. J&aacute; o segundo par&acirc;metro cont&eacute;m o nome da <strong>fun&ccedil;&atilde;o<\/strong> que voc&ecirc; pretende executar.<\/p><p class=\"wp-block-paragraph\">O terceiro par&acirc;metro, opcional, declara a <strong>prioridade<\/strong> da fun&ccedil;&atilde;o. A prioridade padr&atilde;o &eacute; 10, colocando a fun&ccedil;&atilde;o personalizada depois de qualquer uma das nativas.<\/p><p class=\"wp-block-paragraph\">O quarto par&acirc;metro, tamb&eacute;m opcional, cont&eacute;m o <strong>n&uacute;mero de argumentos<\/strong> ou par&acirc;metros que a fun&ccedil;&atilde;o personalizada pode receber. O valor padr&atilde;o &eacute; 1.<\/p><p class=\"wp-block-paragraph\"><strong>Exemplo: C&oacute;digo de Plugin para Exibir Texto Abaixo do Rodap&eacute; de Cada P&aacute;gina<\/strong><\/p><p class=\"wp-block-paragraph\">Este exemplo de plugin chama o hook de a&ccedil;&atilde;o <strong>wp_footer()<\/strong> antes da tag de fechamento <strong>&lt;\/body&gt;<\/strong> de cada p&aacute;gina e adiciona uma nova fun&ccedil;&atilde;o, chamada <strong>mfp_Add_Text()<\/strong>. Como ela &eacute; parte de um plugin, a fun&ccedil;&atilde;o continuar&aacute; ativa mesmo caso voc&ecirc; troque de tema.<\/p><p class=\"wp-block-paragraph\">Salve o exemplo abaixo como um arquivo PHP e fa&ccedil;a o upload dele para a pasta <strong>plugins<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nNome do Plugin: Adicionar Texto ao Rodap&eacute;\n*\/\n\/\/ Faz o gancho do hook de a&ccedil;&atilde;o 'wp_footer', adiciona a ele a fun&ccedil;&atilde;o 'mfp_Add_Text'\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n \n\/\/ Define 'mfp_Add_Text'\nfunction mfp_Add_Text()\n{\n  echo \"&lt;p style='color: black;'&gt;Ap&oacute;s o rodap&eacute; ser carregado, meu texto &eacute; adicionado!&lt;\/p&gt;\";\n}<\/pre><p class=\"wp-block-paragraph\">A captura de tela a seguir mostra o plugin em a&ccedil;&atilde;o ap&oacute;s ser ativado no painel de administra&ccedil;&atilde;o do WordPress:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"813\" height=\"114\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/plugin-text.png\/public\" alt=\"plugin que adiciona texto ap&oacute;s o rodap&eacute; do site wordpress\" class=\"wp-image-30598\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/plugin-text.png\/w=813,fit=scale-down 813w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/plugin-text.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/plugin-text.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/plugin-text.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 813px) 100vw, 813px\" \/><\/figure>\n<\/div><p>\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante!<\/strong> Na linguagem PHP, seu script inteiro &eacute; analisado antes de ser executado. Escrever uma chamada add_action() no topo do arquivo, na ordem de execu&ccedil;&atilde;o desejada, e depois definir suas fun&ccedil;&otilde;es na mesma ordem tornar&aacute; o arquivo mais f&aacute;cil de ser lido.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><strong>Removendo Fun&ccedil;&otilde;es de um Hook de A&ccedil;&atilde;o Usando o remove_action()<\/strong><\/p><p class=\"wp-block-paragraph\">Para remover uma a&ccedil;&atilde;o de um hook de a&ccedil;&atilde;o, escreva uma nova fun&ccedil;&atilde;o chamada <strong>remove_action()<\/strong> e chame a fun&ccedil;&atilde;o que voc&ecirc; escreveu usando o <strong>add_action()<\/strong>.<\/p><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o <strong>remove_action()<\/strong> tamb&eacute;m deve ter ao menos dois par&acirc;metros.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Faz o gancho da a&ccedil;&atilde;o 'init', que &eacute; chamada ap&oacute;s o WordPress carregar seu c&oacute;digo principal, adiciona a fun&ccedil;&atilde;o 'remove_My_Meta_Tags'\nadd_action( 'init', 'remove_My_Meta_Tags' );\n\/\/ Remove a fun&ccedil;&atilde;o 'add_My_Meta_Tags' do hook de a&ccedil;&atilde;o wp_head \nfunction remove_My_Meta_Tags()\n{\n  remove_action( 'wp_head', 'add_My_Meta_Tags');\n}<\/pre><p class=\"wp-block-paragraph\">O primeiro par&acirc;metro &eacute; o nome do <strong>hook de a&ccedil;&atilde;o<\/strong> ao qual a fun&ccedil;&atilde;o est&aacute; anexada, enquanto o segundo par&acirc;metro cont&eacute;m o nome da <strong>fun&ccedil;&atilde;o<\/strong> que voc&ecirc; quer remover.<\/p><p class=\"wp-block-paragraph\">O terceiro par&acirc;metro, opcional, declara a <strong>prioridade<\/strong> da fun&ccedil;&atilde;o original. Ela deve ser id&ecirc;ntica &agrave; prioridade originalmente definida quando a a&ccedil;&atilde;o foi adicionada ao hook. Se voc&ecirc; n&atilde;o definiu uma prioridade na fun&ccedil;&atilde;o personalizada, n&atilde;o inclua este par&acirc;metro.<\/p><p class=\"wp-block-paragraph\">No pr&oacute;ximo exemplo, n&oacute;s vamos impedir que o texto adicional apare&ccedil;a no rodap&eacute; das postagens de segunda-feira.<\/p><p class=\"wp-block-paragraph\">Uma forma de fazer isso &eacute; usar a fun&ccedil;&atilde;o PHP <strong>date()<\/strong> para obter o dia atual, seguida por tags condicionais para checar se &eacute; segunda-feira. Ap&oacute;s analisar as informa&ccedil;&otilde;es, a p&aacute;gina executar&aacute; a fun&ccedil;&atilde;o <strong>remove_action()<\/strong> em cada postagem publicada nas segundas-feiras.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n \/\/ Faz o gancho da a&ccedil;&atilde;o 'wp_footer', executa a fun&ccedil;&atilde;o 'mfp_Add_Text()'\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n\/\/ Faz o gancho da a&ccedil;&atilde;o 'wp_head', executa a fun&ccedil;&atilde;o 'mfp_Remove_Text()'\nadd_action(\"wp_head\", \"mfp_Remove_Text\");\n\/\/ Define a fun&ccedil;&atilde;o 'mfp_Add_Text('), que simplesmente reproduz texto simples\nfunction mfp_Add_Text()\n{\n  echo \"&lt;p style='color: #FFF;'&gt;After the footer is loaded, my text is added!&lt;\/p&gt;\";\n}\n\/\/ Define a fun&ccedil;&atilde;o 'mfp_Remove_Text()' para remover a fun&ccedil;&atilde;o anterior da a&ccedil;&atilde;o 'wp_footer'\nfunction mfp_Remove_Text()\n{\n  if (date(\"l\") === \"Monday\") {\n    \/\/ Aponta para a a&ccedil;&atilde;o 'wp_footer', remove dela a fun&ccedil;&atilde;o 'mfp_Add_Text'\n    remove_action(\"wp_footer\", \"mfp_Add_Text\");\n  }\n}<\/pre><h3 class=\"wp-block-heading\" id=\"h-filtros-e-hooks-de-filtro\"><strong>Filtros e Hooks de Filtro<\/strong><\/h3><p class=\"wp-block-paragraph\">Um filtro &eacute; uma fun&ccedil;&atilde;o PHP chamada por um hook de filtro que modifica dados gerados por fun&ccedil;&otilde;es existentes. Como os hooks de a&ccedil;&atilde;o, os hooks de filtro tamb&eacute;m s&atilde;o contextuais.<\/p><p class=\"wp-block-paragraph\">A lista completa de hooks de filtro e os contextos nos quais eles s&atilde;o chamados est&atilde;o dispon&iacute;veis na p&aacute;gina de <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\" target=\"_blank\" rel=\"noopener\">Refer&ecirc;ncia para Filtros de Plugins WordPress<\/a>.<\/p><p class=\"wp-block-paragraph\"><strong>Adicionar Filtros Usando o add_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Adicionar uma fun&ccedil;&atilde;o de filtro a um hook de filtro dentro de um arquivo de plugin requer o uso da fun&ccedil;&atilde;o <strong>add_filter()<\/strong> com pelo menos dois par&acirc;metros.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Faz o gancho do hook de a&ccedil;&atilde;o 'the_content' (conte&uacute;do de qualquer postagem), executa a fun&ccedil;&atilde;o 'mfp_Fix_Text_Spacing'\nadd_filter(\"the_content\", \"mfp_Fix_Text_Spacing\");\n\/\/ Corrige automaticamente espa&ccedil;amentos duplos em qualquer postagem\nfunction mfp_Fix_Text_Spacing($the_Post)\n{\n $the_New_Post = str_replace(\"  \", \" \", $the_Post);\n return $the_New_Post;\n}<\/pre><p class=\"wp-block-paragraph\">O primeiro par&acirc;metro &eacute; o nome do <strong>hook de filtro<\/strong> ao qual voc&ecirc; quer adicionar o callback, enquanto o segundo par&acirc;metro cont&eacute;m o nome da <strong>fun&ccedil;&atilde;o<\/strong> que voc&ecirc; quer executar quando o filtro &eacute; aplicado.<\/p><p class=\"wp-block-paragraph\">O terceiro par&acirc;metro, opcional, declara a <strong>prioridade<\/strong> da fun&ccedil;&atilde;o. A prioridade padr&atilde;o &eacute; 10, colocando a fun&ccedil;&atilde;o personalizada atr&aacute;s de todas as nativas.<\/p><p class=\"wp-block-paragraph\">H&aacute; ainda um quarto par&acirc;metro opcional, que indica o <strong>n&uacute;mero de argumentos<\/strong> ou par&acirc;metros que o filtro personalizado pode receber. O valor padr&atilde;o &eacute; 1.<\/p><p class=\"wp-block-paragraph\"><strong>Exemplo: Plugin para Alterar um Trecho de Post<\/strong><\/p><p class=\"wp-block-paragraph\">O WordPress tem uma fun&ccedil;&atilde;o que captura trechos de postagens, chamado <strong>get_the_excerpt()<\/strong>. Ela tamb&eacute;m &eacute; um hook de filtro. Adicionar este filtro ap&oacute;s capturar o trecho alterar&aacute; o texto em quest&atilde;o antes do site WordPress exibi-lo.<\/p><p class=\"wp-block-paragraph\">O plugin de exemplo a seguir define uma fun&ccedil;&atilde;o de filtro que captura o trecho como &uacute;nico par&acirc;metro de entrada, adiciona algum texto antes dele e retorna o novo valor todas &agrave;s vezes que o script chama a fun&ccedil;&atilde;o <strong>get_the_excerpt()<\/strong>.<\/p><p class=\"wp-block-paragraph\">Como o valor de retorno da fun&ccedil;&atilde;o <strong>get_the_excerpt()<\/strong> &eacute; o trecho do texto em si, o plugin automaticamente far&aacute; a entrada do novo valor como o par&acirc;metro <strong>$old_Excerpt<\/strong> da fun&ccedil;&atilde;o quando chamado usando o <strong>add_filter()<\/strong>. A fun&ccedil;&atilde;o definida pelo plugin <strong>deve retornar o novo valor<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nNome do Plugin: Adicionar Trecho \n*\/\n\/\/ Faz o gancho do hook de filtro get_the_excerpt, executa a fun&ccedil;&atilde;o mfp_Add_Text_To_Excerpt\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\/\/ Captura o trecho, adiciona algum texto antes dele e retorna o novo trecho\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n{\n  $new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n  return $new_Excerpt;\n}<\/pre><p class=\"wp-block-paragraph\"><strong>Removendo Filtros Usando o remove_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Remover um filtro &eacute; muito mais simples que remover uma a&ccedil;&atilde;o, uma vez que o WordPress permite que voc&ecirc; chame a fun&ccedil;&atilde;o <strong>remove_filter()<\/strong> sem definir um novo filtro.<\/p><p class=\"wp-block-paragraph\">No exemplo a seguir, n&oacute;s vamos remover o trecho adicional do texto se o dia de hoje &eacute; ter&ccedil;a-feira. N&oacute;s usaremos a fun&ccedil;&atilde;o <strong>remove_filter()<\/strong> com pelo menos dois par&acirc;metros.<\/p><p class=\"wp-block-paragraph\">O primeiro deve conter o hook de filtro ao qual a fun&ccedil;&atilde;o est&aacute; anexada. O segundo par&acirc;metro deve ser o nome do filtro que voc&ecirc; quer remover. Adicione um par&acirc;metro de prioridade caso voc&ecirc; tenha definido um ao criar a fun&ccedil;&atilde;o.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Faz o gancho do hook de filtro get_the_excerpt, executa a fun&ccedil;&atilde;o mfp_Add_Text_To_Excerpt\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\/\/ Se hoje &eacute; ter&ccedil;a-feira, remove o filtro de the_excerpt()\nif (date(\"l\") === \"Thursday\") {\n  remove_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n}\n\/\/ Captura o trecho, adiciona algum texto antes dele e retorna o novo trecho\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n{\n  $new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n  return $new_Excerpt;\n}<\/pre><p class=\"wp-block-paragraph\">Agora que voc&ecirc; tem um conhecimento b&aacute;sico de hooks e filtros, n&oacute;s criaremos um plugin b&aacute;sico para WordPress que adicionar&aacute; uma nova p&aacute;gina com um link no painel de controle para administradores.<\/p><p>\n\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante!<\/strong> Usar um ambiente de testes WordPress para testar novos plugins &eacute; 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&ecirc; pode instalar o WordPress localmente no seu computador.\n            <\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-passo-1-armazenando-o-plugin\"><strong>Passo 1: Armazenando o Plugin<\/strong><\/h2><p class=\"wp-block-paragraph\">O primeiro passo para criar um novo plugin &eacute; fazer uma pasta para armazenar seus arquivos. O nome da pasta deve ser &uacute;nico e descritivo. Cheque outros nomes de pastas no diret&oacute;rio <strong>\/wp-content\/plugins\/<\/strong> para se certificar de que o novo nome j&aacute; n&atilde;o est&aacute; em uso.<\/p><p class=\"wp-block-paragraph\">Use um cliente FTP para se conectar &agrave; sua conta de hospedagem e facilitar o processo de upload de arquivos. V&aacute; at&eacute; a pasta <strong>wp-content -&gt; plugins<\/strong> a partir do diret&oacute;rio principal do WordPress. L&aacute;, crie uma nova pasta chamada <strong>meu-primeiro-plugin<\/strong> na pasta <strong>plugins<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"criando pasta do meu primeiro plugin no FileZilla\" class=\"wp-image-30592\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-1.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-passo-2-criando-o-primeiro-arquivo\"><strong>Passo 2: Criando o Primeiro Arquivo<\/strong><\/h2><p class=\"wp-block-paragraph\">O arquivo principal do plugin cont&eacute;m as informa&ccedil;&otilde;es exigidas pelo WordPress para exibir o plugin na lista do painel de controle, onde voc&ecirc; poder&aacute; ativ&aacute;-lo.<\/p><p class=\"wp-block-paragraph\">Crie um novo arquivo PHP, chamado <strong>meu-primeiro-plugin.php<\/strong>, na pasta criada anteriormente. Este arquivo principal conter&aacute; coment&aacute;rios de cabe&ccedil;alho, com informa&ccedil;&otilde;es adicionais que o WordPress pode ler ou exibir.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=1024,h=1024,fit=scale-down\" alt=\"criando arquivo php principal do meu primeiro plugin no FileZilla\" class=\"wp-image-30593\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-2.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Ap&oacute;s fazer o upload do arquivo, clique nele com o bot&atilde;o direito e selecione a op&ccedil;&atilde;o <strong>&ldquo;Ver\/Editar&rdquo;<\/strong> para adicionar o c&oacute;digo a seguir (isso pode ser feito por meio de um editor HTML):<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nNome do Plugin: Meu Primeiro Plugin\nDescri&ccedil;&atilde;o: Este &eacute; o meu primeiro plugin! Ele cria um novo link no menu de administra&ccedil;&atilde;o!\nAutor: Seu nome\n*\/<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; pode checar este <a href=\"https:\/\/www.php.net\/manual\/pt_BR\/language.basic-syntax.instruction-separation.php\" target=\"_blank\" rel=\"noopener\">manual PHP<\/a> para entender por que a tag de fechamento <strong>?&gt;<\/strong> n&atilde;o &eacute; necess&aacute;ria aqui.<\/p><p class=\"wp-block-paragraph\">Salve o arquivo. Em seguida, navegue &agrave; se&ccedil;&atilde;o <strong>Plugins<\/strong> do seu painel WordPress. Se o WordPress tiver lido o arquivo corretamente, voc&ecirc; ver&aacute; o <strong>Meu Primeiro Plugin<\/strong> na lista:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin.png\/w=1024,h=1024,fit=scale-down\" alt=\"meu primeiro plugin no painel de plugins do wordpress\" class=\"wp-image-30595\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-passo-3-escrevendo-as-funcoes-do-plugin\"><strong>Passo 3: Escrevendo as Fun&ccedil;&otilde;es do Plugin<\/strong><\/h2><p class=\"wp-block-paragraph\">Antes de come&ccedil;ar a escrever as fun&ccedil;&otilde;es para o plugin, &eacute; altamente recomendado que voc&ecirc; d&ecirc; um prefixo &uacute;nico a todos os arquivos, fun&ccedil;&otilde;es e vari&aacute;veis a ele relacionados. Isso &eacute; importante para evitar conflitos com outros plugins. No nosso exemplo, n&oacute;s usaremos o prefixo <strong>mfp<\/strong>, uma sigla para <strong>My First Plugin.<\/strong><\/p><p class=\"wp-block-paragraph\">Crie uma nova pasta, chamada <strong>Includes<\/strong>, na pasta principal do plugin. N&oacute;s usaremos essa pasta para armazenar arquivos de suporte usados pelo arquivo principal. Nessa pasta, crie um arquivo PHP e o nomeie como <strong>mfp-functions.php<\/strong>. Abra o arquivo com a tag de in&iacute;cio <strong>&lt;?php<\/strong> na primeira linha.<\/p><p class=\"wp-block-paragraph\">Este novo arquivo conter&aacute; todas as fun&ccedil;&otilde;es do seu plugin.<\/p><p class=\"wp-block-paragraph\">N&oacute;s precisamos incluir o <strong>mfp.functions.php<\/strong> no arquivo principal do plugin para que outros arquivos do plugin usem as fun&ccedil;&otilde;es definidas por ele. Use o <strong>require_once<\/strong> para se certificar de que o plugin funcionar&aacute; apenas caso o arquivo functions esteja presente.<\/p><p class=\"wp-block-paragraph\">Edite o <strong>my-first-plugin.php<\/strong> conforme exibido abaixo. Em seguida, salve-o e fa&ccedil;a o upload do arquivo novamente, sobrescrevendo a vers&atilde;o anterior quando solicitado.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nNome do Plugin: Meu Primeiro Plugin\nDescri&ccedil;&atilde;o: Este &eacute; o meu primeiro plugin! Ele cria um novo link no menu de administra&ccedil;&atilde;o!\nAutor: Seu nome\n*\/\n\/\/ Inclui o mfp-functions.php, usa o require_once para interromper o script caso o mfp-functions.php n&atilde;o seja encontrado\nrequire_once plugin_dir_path(__FILE__) . 'includes\/mfp-functions.php';<\/pre><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o do WordPress <strong>plugin_dir_path(__FILE__) <\/strong>permite que voc&ecirc; inclua arquivos da pasta de plugins, dando o caminho completo ao diret&oacute;rio que armazena o novo plugin.<\/p><p class=\"wp-block-paragraph\">Agora, retorne ao arquivo <strong>mfp-functions.php<\/strong> na pasta Includes. Como nosso plugin adicionar&aacute; um novo link de topo ao menu de navega&ccedil;&atilde;o do painel de controle do WordPress, n&oacute;s usaremos uma fun&ccedil;&atilde;o personalizada, chamada <strong>mfp_Add_My_Admin_Link()<\/strong>. Adicione o c&oacute;digo abaixo ao arquivo <strong>mfp-functions.php<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\n * Adiciona meu novo menu ao Painel de Controle do Administrador\n *\/\n\/\/ Faz o gancho do hook de a&ccedil;&atilde;o 'admin_menu', executa a fun&ccedil;&atilde;o 'mfp_Add_My_Admin_Link()'\nadd_action( 'admin_menu', 'mfp_Add_My_Admin_Link' );\n\/\/ Adiciona um novo link de topo ao menu do Painel de Controle do Administrador\nfunction mfp_Add_My_Admin_Link()\n{\n      add_menu_page(\n        'Minha Primeira P&aacute;gina', \/\/ T&iacute;tulo da p&aacute;gina\n        'Meu Primeiro Plugin', \/\/ Texto para exibir no link do menu\n        'manage_options', \/\/ Requerimento de capacidade para visualizar o link\n        'includes\/mfp-first-acp-page.php' \/\/ O 'slug' - arquivo a ser exibido ao clicar no link\n    );\n}<\/pre><p>\n\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante!<\/strong> Agrupe fun&ccedil;&otilde;es similares e adicione uma descri&ccedil;&atilde;o no topo de cada uma delas com um coment&aacute;rio de m&uacute;ltiplas linhas. Isso facilitar&aacute; atualiza&ccedil;&otilde;es e corre&ccedil;&otilde;es de bugs no futuro.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o <strong>mfp_Add_My_Admin_Link() <\/strong>usa a fun&ccedil;&atilde;o nativa do WordPress <strong>add_menu_page()<\/strong> com ao menos quatro par&acirc;metros, na seguinte ordem:<\/p><ul class=\"wp-block-list\">\n<li><strong>T&iacute;tulo da p&aacute;gina<\/strong> &ndash; o nome da p&aacute;gina exibido na aba do navegador.<\/li>\n\n\n\n<li><strong>T&iacute;tulo do menu<\/strong> &ndash; o texto usado para o item do menu. Em nosso exemplo, &eacute; o pr&oacute;prio nome do plugin.<\/li>\n\n\n\n<li><strong>Capacidade<\/strong> &ndash; requerimento de capacidade do usu&aacute;rio para visualizar o menu do plugin. No nosso caso, apenas usu&aacute;rios com a capacidade manage_options poder&atilde;o acessar a p&aacute;gina linkada.<\/li>\n\n\n\n<li><strong>Slug do menu<\/strong> &ndash; o arquivo que deve ser usado para exibir a p&aacute;gina em si. N&oacute;s criaremos o arquivo <strong>mfp-first-acp-page.php<\/strong>, que ser&aacute; linkado na se&ccedil;&atilde;o a seguir.<\/li>\n\n\n\n<li><strong>Fun&ccedil;&atilde;o (opcional)<\/strong> &ndash; a fun&ccedil;&atilde;o que gera o conte&uacute;do da p&aacute;gina.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Anexar a fun&ccedil;&atilde;o personalizada com o comando <strong>add_action() <\/strong>permite que o plugin chame o hook de a&ccedil;&atilde;o sob determinadas circunst&acirc;ncias. Adicionar o <strong>admin_menu<\/strong> como primeiro par&acirc;metro chamar&aacute; a fun&ccedil;&atilde;o quando um usu&aacute;rio acessar o menu de administrador. Enquanto isso, o <strong>mfp_Add_My_Admin_Link<\/strong> &eacute; a fun&ccedil;&atilde;o que ser&aacute; executada, por ser especificada como o segundo par&acirc;metro.<\/p><p class=\"wp-block-paragraph\">Por fim, fa&ccedil;a o upload do arquivo <strong>mfp-functions.php<\/strong> &agrave; pasta <strong>Includes<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-passo-4-criando-a-pagina-de-administrador-do-plugin\"><strong>Passo 4: Criando a P&aacute;gina de Administrador do Plugin<\/strong><\/h2><p class=\"wp-block-paragraph\">Ap&oacute;s definir as fun&ccedil;&otilde;es do plugin, &eacute; hora de construir a p&aacute;gina que &agrave; qual o bot&atilde;o de menu nos levar&aacute;. Crie um novo arquivo PHP chamado <strong>mfp-first-acp-page.php<\/strong> na pasta <strong>Includes<\/strong> e adicione o c&oacute;digo a seguir:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;div class=\"wrap\"&gt;\n  &lt;h1&gt;Ol&aacute;!&lt;\/h1&gt;\n  &lt;p&gt;Essa &eacute; a primeira p&aacute;gina do meu plugin&lt;\/p&gt;\n&lt;\/div&gt;<\/pre><p class=\"wp-block-paragraph\">Ao criar p&aacute;ginas de administrador, o WordPress recomenda isolar o c&oacute;digo HTML com uma tag <strong>&lt;div&gt;<\/strong> e dar a ela a classe <strong>&ldquo;wrap&rdquo;<\/strong>, para garantir que todo o seu conte&uacute;do apare&ccedil;a no lugar correto. Fazer isso tamb&eacute;m ajudar&aacute; a deixar o seu c&oacute;digo mais limpo.<\/p><p class=\"wp-block-paragraph\">Por fim, navegue at&eacute; a se&ccedil;&atilde;o <strong>Plugins<\/strong> do seu painel WordPress e ative o novo plugin. Se o processo for bem sucedido, o link para o painel de administra&ccedil;&atilde;o do seu novo plugin aparecer&aacute; na parte de baixo do menu de navega&ccedil;&atilde;o.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"563\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"meu primeiro plugin no menu de administrador do wordpress\" class=\"wp-image-30596\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/meu-primeiro-plugin-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Parab&eacute;ns! Voc&ecirc; criou seu primeiro plugin para WordPress.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; criou o plugin num ambiente de testes, ser&aacute; necess&aacute;rio instalar o plugin no site em si. Os passos a seguir mostram como faz&ecirc;-lo:<\/p><ol class=\"wp-block-list\">\n<li>No FileZilla, clique com o bot&atilde;o direito na pasta <strong>my-first-plugin<\/strong> e selecione <strong>&ldquo;Download&rdquo;<\/strong>. Em seguida, comprima a pasta num arquivo ZIP.<br><img decoding=\"async\" width=\"1024\" height=\"572\" class=\"wp-image-30594\" style=\"width: 760px\" src=\"https:\/\/blog.hostinger.io\/br-tutoriais\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\" alt=\"baixando pasta do meu primeiro plugin no FileZilla\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/filezilla-plugin-3.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/li>\n\n\n\n<li>Navegue at&eacute; o menu <strong>Plugins<\/strong> no painel do WordPress. Clique em <strong>&ldquo;Adicionar novo&rdquo;<\/strong>.<\/li>\n\n\n\n<li>Clique em <strong>&ldquo;Enviar plugin&rdquo;<\/strong> e selecione o arquivo ZIP do seu plugin.<br><img decoding=\"async\" width=\"1024\" height=\"413\" class=\"wp-image-30597\" style=\"width: 760px\" src=\"https:\/\/blog.hostinger.io\/br-tutoriais\/wp-content\/uploads\/sites\/53\/2022\/12\/adicionar-plugin.png\" alt=\"tela para enviar novo plugin no painel de controle do wordpress\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/adicionar-plugin.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/adicionar-plugin.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/adicionar-plugin.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/adicionar-plugin.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/li>\n\n\n\n<li>Selecione <strong>&ldquo;Instalar agora&rdquo;<\/strong> para iniciar o processo de instala&ccedil;&atilde;o.<\/li>\n<\/ol><p>\n\n\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Leituras Sugeridas                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Voc&ecirc; quer saber em que linguagens os plugins do WordPress s&atilde;o escritos? Saiba mais nos guias a seguir: <br>\n\n<a href=\"\/br\/tutoriais\/o-que-e-html-conceitos-basicos\/\" target=\"_blank\" rel=\"noopener\">O Que &eacute; HTML?<\/a> <br>\n<a href=\"\/br\/tutoriais\/o-que-e-css-guia-basico-de-css\/\" target=\"_blank\" rel=\"noopener\">O Que &eacute; CSS?<\/a> <br>\n<a href=\"\/br\/tutoriais\/o-que-e-javascript\/\" target=\"_blank\" rel=\"noopener\">O Que &eacute; JavaScript?<\/a>\n<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-boas-praticas-e-dicas-ao-criar-plugins-personalizados\"><strong>Boas Pr&aacute;ticas e Dicas ao Criar Plugins Personalizados<\/strong><\/h2><p class=\"wp-block-paragraph\">Como seu site precisa evoluir continuamente, voc&ecirc; precisar&aacute; revisitar o c&oacute;digo dos seus plugins para implementar novidades e corrigir falhas de seguran&ccedil;a.<\/p><p class=\"wp-block-paragraph\">Com isso em mente, &eacute; uma boa ideia seguir algumas boas pr&aacute;ticas no desenvolvimento de plugins desde o in&iacute;cio. Com isso, voc&ecirc; facilitar&aacute; todo o processo para voc&ecirc; mesmo e para quaisquer desenvolvedores que venham a trabalhar no seu plugin futuramente.<\/p><p class=\"wp-block-paragraph\">Al&eacute;m disso, voc&ecirc; pode dar uma olhada nos <a href=\"\/br\/tutoriais\/melhores-plugins-wordpress\/\">melhores plugins WordPress<\/a> para ter um pouco de inspira&ccedil;&atilde;o. Analise seus c&oacute;digos-fonte, como eles organizam suas pastas e outras pr&aacute;ticas que voc&ecirc; pode aplicar ao criar os seus pr&oacute;prios plugins.<\/p><p class=\"wp-block-paragraph\">Aqui est&atilde;o algumas dicas de escrita de c&oacute;digo e desenvolvimento de plugins que poder&atilde;o te ajudar na cria&ccedil;&atilde;o do seu primeiro plugin WordPress:<\/p><ul class=\"wp-block-list\">\n<li><strong>Desenvolva e teste seus plugins num ambiente de teste.<\/strong> Desta forma, voc&ecirc; n&atilde;o corre o risco de quebrar o seu site no caso de algum c&oacute;digo problem&aacute;tico.<\/li>\n\n\n\n<li><strong>Crie uma estrutura de pastas l&oacute;gica.<\/strong> Crie subpastas para cada funcionalidade e divida o c&oacute;digo em diferentes arquivos, com base em seu prop&oacute;sito ou na linguagem de programa&ccedil;&atilde;o escolhida, para evitar bagun&ccedil;a.<\/li>\n\n\n\n<li><strong>Nomeie cada arquivo, pasta e elemento com cuidado.<\/strong> Use prefixos &uacute;nicos, para que eles n&atilde;o entrem em conflito com os nomes de arquivos de outros plugins ou do pr&oacute;prio WordPress.<\/li>\n\n\n\n<li><strong>Adicione coment&aacute;rios para explicar cada fun&ccedil;&atilde;o.<\/strong> Isso permite que outros desenvolvedores entendam seu c&oacute;digo ao atualiz&aacute;-lo ou corrigir seus bugs.<\/li>\n\n\n\n<li><strong>Crie uma documenta&ccedil;&atilde;o.<\/strong> Essa pr&aacute;tica &eacute; particularmente vantajosa caso voc&ecirc; crie plugins com funcionalidades complexas para muitos usu&aacute;rios.<\/li>\n\n\n\n<li><strong>Use um software de controle de vers&atilde;o para acompanhar as mudan&ccedil;as feitas no seu c&oacute;digo.<\/strong> Saber quem adicionou ou modificou cada c&oacute;digo ajuda a previnir conflitos entre atualiza&ccedil;&otilde;es e reduzir o n&uacute;mero de bugs.<\/li>\n\n\n\n<li><strong>Use o <\/strong><a href=\"https:\/\/codex.wordpress.org\/P%C3%A1gina_Inicial\" target=\"_blank\" rel=\"noopener\"><strong>Codex do WordPress<\/strong><\/a><strong> como refer&ecirc;ncia para seguir padr&otilde;es de c&oacute;digo espec&iacute;ficos de cada linguagem.<\/strong> Certifique-se de seguir os padr&otilde;es ao colaborar num projeto.<\/li>\n\n\n\n<li><strong>Ative o <\/strong><a href=\"\/br\/tutoriais\/debug-wordpress\/\"><strong>WP_DEBUG<\/strong><\/a><strong> ou use uma ferramenta de debugging ao desenvolver plugins.<\/strong> Isso facilitar&aacute; a detec&ccedil;&atilde;o de bugs, acelerando o desenvolvimento como um todo.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p class=\"wp-block-paragraph\">Desenvolver um plugin personalizado &eacute; uma boa forma de adicionar uma funcionalidade ao site WordPress que n&atilde;o &eacute; oferecida por nenhum plugin atualmente dispon&iacute;vel. Sua cria&ccedil;&atilde;o pode ser um plugin simples, que implementa altera&ccedil;&otilde;es menores, ou um plugin bem complexo, que modifica o site como um todo.<\/p><p class=\"wp-block-paragraph\">Para recapitular, eis os passos para criar o seu plugin WordPress do zero:<\/p><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&oacute;digos a m&uacute;ltiplos arquivos para definir as fun&ccedil;&otilde;es do plugin.<\/li>\n\n\n\n<li>Construa a p&aacute;gina de administrador do plugin.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">Como qualquer outra habilidade, desenvolver plugins para o WordPress com destreza leva tempo. Com pr&aacute;tica suficiente, voc&ecirc; poder&aacute; criar plugins para disponibiliz&aacute;-los no diret&oacute;rio oficial do WordPress &mdash; ou mesmo vend&ecirc;-lo em um marketplace.<\/p><p class=\"wp-block-paragraph\">Esperamos que este artigo tenha te ensinado como fazer um plugin para WordPress. Se voc&ecirc; tiver alguma d&uacute;vida ou coment&aacute;rio, n&atilde;o deixe de escrev&ecirc;-lo logo abaixo.<\/p><h2 class=\"wp-block-heading\" id=\"h-perguntas-frequentes-como-criar-um-plugin-wordpress\"><strong>Perguntas Frequentes: Como Criar um Plugin WordPress<\/strong><\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-694416d361816\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">&Eacute; Poss&iacute;vel Ganhar Dinheiro Fazendo Plugins WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Sim, voc&ecirc; pode vender plugins no seu pr&oacute;prio site ou numa loja especializada.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694416d36181a\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Quem Pode Criar Plugins WordPress?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Qualquer pessoa com conhecimentos de linguagens de programa&ccedil;&atilde;o pode criar um plugin WordPress. Voc&ecirc; pode usar um tema para criar um plugin, caso saiba o b&aacute;sico de PHP.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694416d36181b\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Os Plugins WordPress s&atilde;o Escritos em PHP?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Os plugins WordPress costumam ser escritos em PHP, mas voc&ecirc; tamb&eacute;m precisar&aacute; ter conhecimentos b&aacute;sicos em HTML e CSS para gerenciar o conte&uacute;do do plugin corretamente.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>O WordPress tem um cat&aacute;logo gigantesco de plugins com funcionalidades adicionais para a plataforma. Al&eacute;m disso, os plugins podem agregar novos recursos ao seu site WordPress sem que voc&ecirc; precise mudar o c&oacute;digo principal da p&aacute;gina. Existem milhares de plugins gratuitos e pagos para voc&ecirc; escolher, mas pode haver momentos nos quais voc&ecirc; precisar&aacute; de [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/criar-plugin-wordpress\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Como criar um plugin WordPress: guia completo passo a passo","rank_math_description":"Quer descobrir como criar plugin um plugin para WordPress? Veja nosso tutorial e aprenda como! Inclui modelo de plugin WordPress completo.","rank_math_focus_keyword":"Plugin WordPress","footnotes":""},"categories":[4911],"tags":[5778,5777,5779,4865,5129,5060],"class_list":["post-6749","post","type-post","status-publish","format-standard","hentry","category-wordpress","tag-codigos-php","tag-como-criar-plugin-wordpress","tag-linguagem","tag-php","tag-plugin-worpdress","tag-tutoriais-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-create-wordpress-plugin\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/criar-plugin-wordpress\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/creer-un-plugin-wordpress\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/membuat-plugin-wordpress\/","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/wordpress-plugin-erstellen\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-create-wordpress-plugin\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-plugin-wordpress\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=6749"}],"version-history":[{"count":22,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6749\/revisions"}],"predecessor-version":[{"id":51849,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6749\/revisions\/51849"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=6749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=6749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=6749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}