{"id":3545,"date":"2024-10-21T15:11:01","date_gmt":"2024-10-21T07:11:01","guid":{"rendered":"https:\/\/www.openbyt.com\/?p=3545"},"modified":"2024-10-21T15:14:26","modified_gmt":"2024-10-21T07:14:26","slug":"a-comprehensive-guide-to-wordpress-plugin-development-from-basics-to-advanced-features","status":"publish","type":"post","link":"https:\/\/www.openbyt.com\/pt\/um-guia-completo-para-o-desenvolvimento-de-plugins-para-wordpress-desde-o-basico-ate-as-funcionalidades-avancadas","title":{"rendered":"Um guia completo para o desenvolvimento de plug-ins para WordPress: Do b\u00e1sico aos recursos avan\u00e7ados"},"content":{"rendered":"<p>Os plug-ins do WordPress s\u00e3o uma forma poderosa de ampliar a funcionalidade do seu site WordPress. Os plug-ins s\u00e3o a solu\u00e7\u00e3o ideal se pretender adicionar funcionalidades personalizadas, integrar servi\u00e7os de terceiros ou simplesmente otimizar a experi\u00eancia do utilizador. Neste guia, vamos lev\u00e1-lo atrav\u00e9s dos fundamentos do desenvolvimento de um plug-in WordPress - desde a compreens\u00e3o dos conceitos b\u00e1sicos at\u00e9 \u00e0 implementa\u00e7\u00e3o de funcionalidades mais avan\u00e7adas. Este guia foi concebido para ser de f\u00e1cil utiliza\u00e7\u00e3o para principiantes, com instru\u00e7\u00f5es claras e exemplos pr\u00e1ticos para o ajudar a come\u00e7ar.<\/p><figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"993\" height=\"1024\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-993x1024.png\" alt=\"\" class=\"wp-image-3547\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-993x1024.png 993w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-600x619.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-291x300.png 291w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-768x792.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-1490x1536.png 1490w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-12x12.png 12w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18-150x155.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-18.png 1589w\" sizes=\"(max-width: 993px) 100vw, 993px\" \/><\/figure><h3 class=\"wp-block-heading\"><strong>O que \u00e9 um plug-in do WordPress?<\/strong><\/h3><p>Na sua ess\u00eancia, um plugin WordPress \u00e9 um software que adiciona carater\u00edsticas ou funcionalidades espec\u00edficas a um site WordPress. Os plugins permitem a personaliza\u00e7\u00e3o sem alterar o c\u00f3digo principal, possibilitando a cria\u00e7\u00e3o de s\u00edtios Web \u00fanicos, beneficiando simultaneamente da seguran\u00e7a e das actualiza\u00e7\u00f5es fornecidas pelo WordPress. Os plugins podem variar desde algo simples, como adicionar um formul\u00e1rio de contacto, at\u00e9 sistemas mais complexos, como solu\u00e7\u00f5es de com\u00e9rcio eletr\u00f3nico.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"950\" height=\"560\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny.webp\" alt=\"\" class=\"wp-image-3548\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny.webp 950w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-600x354.webp 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-300x177.webp 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-768x453.webp 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-18x12.webp 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-150x88.webp 150w\" sizes=\"(max-width: 950px) 100vw, 950px\" \/><\/figure><p><strong>Exemplo: Formul\u00e1rio de contacto 7<\/strong><\/p><p>Para compreender melhor o funcionamento dos plug-ins, considere um plug-in popular: <strong>Formul\u00e1rio de contacto 7<\/strong>. Este plugin permite aos utilizadores criar e gerir facilmente v\u00e1rios formul\u00e1rios de contacto, personaliz\u00e1-los com uma marca\u00e7\u00e3o simples e garantir que todas as submiss\u00f5es s\u00e3o enviadas por e-mail diretamente para o propriet\u00e1rio do site. Permite aos utilizadores adicionar um formul\u00e1rio de contacto ao seu site sem necessidade de escrever qualquer c\u00f3digo de raiz, facilitando aos propriet\u00e1rios do site manterem-se ligados ao seu p\u00fablico, assegurando uma experi\u00eancia perfeita.<\/p><p>Plugins como o Contact Form 7 mostram como \u00e9 f\u00e1cil alargar a funcionalidade do WordPress com um esfor\u00e7o m\u00ednimo, fornecendo carater\u00edsticas essenciais que melhoram a intera\u00e7\u00e3o do utilizador.<\/p><p>Um plugin WordPress \u00e9 um software que adiciona carater\u00edsticas ou funcionalidades espec\u00edficas a um s\u00edtio Web WordPress. Os plugins permitem a personaliza\u00e7\u00e3o sem alterar o c\u00f3digo principal, possibilitando a cria\u00e7\u00e3o de s\u00edtios Web \u00fanicos, beneficiando simultaneamente da seguran\u00e7a e das actualiza\u00e7\u00f5es fornecidas pelo WordPress. Os plugins podem variar desde algo simples, como adicionar um formul\u00e1rio de contacto, at\u00e9 sistemas mais complexos, como solu\u00e7\u00f5es de com\u00e9rcio eletr\u00f3nico.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"717\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-1024x717.png\" alt=\"\" class=\"wp-image-3549\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-1024x717.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-600x420.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-300x210.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-768x538.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-1536x1075.png 1536w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/wp-plugin-tny.png 1900w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\"><strong>Como come\u00e7ar: No\u00e7\u00f5es b\u00e1sicas de desenvolvimento de plug-ins<\/strong><\/h3><h4 class=\"wp-block-heading\"><strong>Configurar o seu plug-in<\/strong><\/h4><p>O acesso ao sistema de ficheiros do WordPress pode ser um desafio para os principiantes que n\u00e3o est\u00e3o familiarizados com os diret\u00f3rios do servidor. Aqui est\u00e1 um guia passo a passo para o ajudar a come\u00e7ar:<\/p><ul class=\"wp-block-list\"><li><strong>Aceder ao sistema de ficheiros<\/strong>: Para aceder ao sistema de ficheiros do WordPress, tem de ter acesso ao servidor do seu s\u00edtio Web. Existem duas formas comuns de o fazer:<ul class=\"wp-block-list\"><li><strong>Utilizar o FTP (Protocolo de Transfer\u00eancia de Ficheiros)<\/strong>: Pode utilizar um cliente FTP como o FileZilla para se ligar ao seu servidor. Necessitar\u00e1 das suas credenciais de FTP, que s\u00e3o normalmente fornecidas pelo seu fornecedor de alojamento. Uma vez ligado, navegue para o diret\u00f3rio <code>\/wp-content\/plugins\/<\/code> diret\u00f3rio.<\/li>\n\n<li><strong>Utilizar um gestor de ficheiros de alojamento<\/strong>: Muitos fornecedores de alojamento oferecem um gestor de ficheiros no seu painel de controlo (como o cPanel ou o Plesk). Pode utilizar este gestor de ficheiros para navegar para o ficheiro <code>\/wp-content\/plugins\/<\/code> e crie ou edite ficheiros diretamente.<\/li><\/ul><\/li><\/ul><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"717\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-1024x717.png\" alt=\"\" class=\"wp-image-3553\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-1024x717.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-600x420.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-300x210.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-768x538.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-1536x1075.png 1536w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/outp.png 1900w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Quando tiver acesso ao sistema de ficheiros, pode criar a pasta e os ficheiros do seu plugin, conforme descrito abaixo.<br>Para come\u00e7ar a desenvolver um plugin WordPress, siga estes passos detalhados\uff1a<\/p><ol start=\"1\" class=\"wp-block-list\"><li><strong>Crie a pasta do plug-in<\/strong>:<ul class=\"wp-block-list\"><li>Navegue at\u00e9 ao <code>\/wp-content\/plugins\/<\/code> na sua instala\u00e7\u00e3o do WordPress.<\/li>\n\n<li>Crie uma nova pasta com o nome <code>meu-primeiro-plugin<\/code>. Esta pasta conter\u00e1 todos os ficheiros relacionados com o seu plugin.<\/li><\/ul><\/li>\n\n<li><strong>Crie o ficheiro PHP principal<\/strong>:<ul class=\"wp-block-list\"><li>Dentro da pasta rec\u00e9m-criada, crie um ficheiro com o nome <code>meu-primeiro-plugin.php<\/code>. Isto servir\u00e1 como ponto de entrada principal para o seu plugin.<\/li><\/ul><\/li>\n\n<li><strong>Adicionar informa\u00e7\u00f5es do cabe\u00e7alho do plug-in<\/strong>:<ul class=\"wp-block-list\"><li>Adicione um coment\u00e1rio de cabe\u00e7alho no topo do ficheiro para que o WordPress o reconhe\u00e7a como um plugin:<\/li>\n\n<li>Esta informa\u00e7\u00e3o do cabe\u00e7alho \u00e9 crucial, pois permite ao WordPress apresentar corretamente o plugin no painel de administra\u00e7\u00e3o.<\/li><\/ul><\/li>\n\n<li><strong>Ativar o plug-in<\/strong>:<ul class=\"wp-block-list\"><li>Aceda ao seu painel de controlo do WordPress, navegue at\u00e9 <strong>Plugins<\/strong>e dever\u00e1 ver o seu novo plugin listado a\u00ed. Clique em <strong>Ativar<\/strong> para o ativar.<\/li><\/ul><\/li><\/ol><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"717\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-1024x717.png\" alt=\"\" class=\"wp-image-3554\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-1024x717.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-600x420.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-300x210.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-768x538.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-1536x1075.png 1536w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/out111.png 1900w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Esta configura\u00e7\u00e3o simples forma o esqueleto de um plugin WordPress. A partir daqui, pode adicionar carater\u00edsticas mais complexas para melhorar a funcionalidade.<\/p><h3 class=\"wp-block-heading\"><strong>Compreender os ganchos: Ac\u00e7\u00f5es e filtros<\/strong><\/h3><p>Os hooks s\u00e3o a espinha dorsal do desenvolvimento de plugins para WordPress. Permitem-lhe \"enganchar\" no WordPress, tornando poss\u00edvel modificar o comportamento padr\u00e3o ou adicionar novas funcionalidades sem alterar os ficheiros principais.<\/p><p>Para ajudar a visualizar como os hooks funcionam, imagine o WordPress como um comboio que se move ao longo de uma linha. Os hooks s\u00e3o como esta\u00e7\u00f5es de comboio onde pode parar e adicionar mais passageiros (funcionalidade) ou alterar os passageiros (dados) que j\u00e1 est\u00e3o a bordo. <strong>Ganchos de a\u00e7\u00e3o<\/strong> s\u00e3o como paragens onde pode adicionar ou remover passageiros (executar c\u00f3digo personalizado), enquanto <strong>Ganchos de filtro<\/strong> s\u00e3o como pontos de controlo onde pode inspecionar e modificar os passageiros (dados) antes de continuarem a sua viagem.<\/p><p>Se \u00e9 um aprendiz visual, pense nos hooks de a\u00e7\u00e3o como oportunidades para adicionar novas tarefas em pontos espec\u00edficos do processo do WordPress, enquanto os hooks de filtro lhe permitem ajustar ou transformar dados antes de serem apresentados. Os diagramas visuais, como fluxogramas de como o WordPress processa uma solicita\u00e7\u00e3o, tamb\u00e9m podem ser muito \u00fateis para entender onde os hooks s\u00e3o aplicados.<\/p><p>Os hooks s\u00e3o a espinha dorsal do desenvolvimento de plugins para WordPress. Permitem-lhe \"enganchar\" no WordPress, tornando poss\u00edvel modificar o comportamento padr\u00e3o ou adicionar novas funcionalidades sem alterar os ficheiros principais.<\/p><ul class=\"wp-block-list\"><li><strong>Ganchos de a\u00e7\u00e3o<\/strong> s\u00e3o usados para executar c\u00f3digo personalizado em pontos espec\u00edficos durante a execu\u00e7\u00e3o do WordPress, como quando um post \u00e9 publicado.<\/li>\n\n<li><strong>Ganchos de filtro<\/strong> s\u00e3o utilizadas para modificar dados existentes antes de serem apresentados, como personalizar o conte\u00fado de uma publica\u00e7\u00e3o.<\/li><\/ul><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-1024x642.png\" alt=\"\" class=\"wp-image-3556\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-1024x642.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-600x376.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-300x188.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-768x481.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19-150x94.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-19.png 1434w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h4 class=\"wp-block-heading\"><strong>Exemplo: Adicionando uma mensagem personalizada aos posts<\/strong><\/h4><p>Digamos que pretende adicionar uma mensagem no final de cada publica\u00e7\u00e3o. Pode utilizar a op\u00e7\u00e3o <code>o_conte\u00fado<\/code> filtre assim:<\/p><p>Vamos analisar o que cada parte deste c\u00f3digo faz:<\/p><ol start=\"1\" class=\"wp-block-list\"><li><code><strong>add_filter('the_content', 'add_custom_message');<\/strong><\/code><ul class=\"wp-block-list\"><li>Esta linha regista a fun\u00e7\u00e3o personalizada <code>add_custom_message<\/code> para o <code>o_conte\u00fado<\/code> gancho de filtro. Isto significa que sempre que o WordPress se preparar para apresentar o conte\u00fado de uma publica\u00e7\u00e3o, aplicar\u00e1 a nossa fun\u00e7\u00e3o para o modificar.<\/li><\/ul><\/li>\n\n<li><code><strong>fun\u00e7\u00e3o add_custom_message($content)<\/strong><\/code><ul class=\"wp-block-list\"><li>Aqui, definimos o <code>add_custom_message<\/code> fun\u00e7\u00e3o. A fun\u00e7\u00e3o recebe um par\u00e2metro, <code>$conte\u00fado<\/code>que \u00e9 o conte\u00fado existente da publica\u00e7\u00e3o que o WordPress gerou.<\/li><\/ul><\/li>\n\n<li><code><strong>if (is_single()) { $content .= '<p>Obrigado pela sua leitura! Siga-nos para mais actualiza\u00e7\u00f5es.<\/p>'; }<\/strong><\/code><ul class=\"wp-block-list\"><li>O <code>is_single()<\/code> verifica se a p\u00e1gina atual \u00e9 uma p\u00e1gina de publica\u00e7\u00e3o \u00fanica. Se for, n\u00f3s anexamos (<code>.=<\/code>) a mensagem personalizada para o <code>$conte\u00fado<\/code> vari\u00e1vel. Isto assegura que a mensagem s\u00f3 \u00e9 adicionada a mensagens individuais e n\u00e3o a outros tipos de conte\u00fado, como p\u00e1ginas ou arquivos.<\/li><\/ul><\/li>\n\n<li><code><strong>devolva $content;<\/strong><\/code><ul class=\"wp-block-list\"><li>Por fim, devolvemos o <code>$conte\u00fado<\/code> para que o WordPress possa exibi-lo. Sem esta instru\u00e7\u00e3o de retorno, o conte\u00fado da publica\u00e7\u00e3o ficaria vazio.<\/li><\/ul><\/li><\/ol><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"571\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-1024x571.png\" alt=\"\" class=\"wp-image-3557\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-1024x571.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-600x334.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-300x167.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-768x428.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-1536x856.png 1536w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-18x10.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123-150x84.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output123.png 1613w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Ao utilizar filtros, pode facilmente manipular a sa\u00edda padr\u00e3o do WordPress para incluir mensagens personalizadas, an\u00fancios ou qualquer outro conte\u00fado adicional.<\/p><p>Digamos que pretende adicionar uma mensagem no final de cada publica\u00e7\u00e3o. Pode utilizar a op\u00e7\u00e3o <code>o_conte\u00fado<\/code> filtre assim:<\/p><p>Este c\u00f3digo acrescenta uma mensagem ao conte\u00fado de cada post. Ao utilizar filtros, pode facilmente manipular o resultado predefinido do WordPress.<\/p><h3 class=\"wp-block-heading\"><strong>Adicionar funcionalidades comuns do plug-in<\/strong><\/h3><h4 class=\"wp-block-heading\"><strong>C\u00f3digos curtos<\/strong><\/h4><p>Os c\u00f3digos curtos s\u00e3o uma forma f\u00e1cil de adicionar conte\u00fado din\u00e2mico a posts, p\u00e1ginas ou widgets. S\u00e3o particularmente \u00fateis para incorporar formul\u00e1rios, multim\u00e9dia e outros elementos reutiliz\u00e1veis. Por exemplo, muitos plug-ins de formul\u00e1rios de contacto utilizam c\u00f3digos de acesso para permitir que os utilizadores coloquem facilmente um formul\u00e1rio em qualquer parte do seu site. Da mesma forma, os c\u00f3digos de acesso podem ser utilizados para incorporar v\u00eddeos, galerias de imagens ou mesmo listas de produtos.<\/p><p>Vamos criar um shortcode simples que produz uma mensagem de sauda\u00e7\u00e3o:<\/p><p>Os c\u00f3digos curtos s\u00e3o uma forma f\u00e1cil de adicionar conte\u00fado din\u00e2mico a posts, p\u00e1ginas ou widgets. Vamos criar um shortcode simples que produz uma mensagem de sauda\u00e7\u00e3o:<\/p><p>Agora, pode adicionar <code>[sauda\u00e7\u00e3o]<\/code> em qualquer parte do seu conte\u00fado, e ser\u00e1 apresentada a mensagem de sauda\u00e7\u00e3o.<\/p><p>Os c\u00f3digos curtos s\u00e3o extremamente \u00fateis para criar elementos reutiliz\u00e1veis que podem ser colocados em qualquer parte do seu site.<\/p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-1024x719.png\" alt=\"\" class=\"wp-image-3558\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-1024x719.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-600x421.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-300x211.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-768x539.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/312.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h4 class=\"wp-block-heading\"><strong>Widgets<\/strong><\/h4><p>Os widgets s\u00e3o outra forma poderosa de alargar a funcionalidade do WordPress. Os widgets s\u00e3o pequenos blocos que executam fun\u00e7\u00f5es espec\u00edficas e podem ser adicionados a \u00e1reas de widgets no seu tema, como barras laterais ou rodap\u00e9s. Muitos temas do WordPress t\u00eam \u00e1reas de widgets predefinidas que pode personalizar adicionando widgets, facilitando a melhoria do seu site sem modificar o c\u00f3digo do tema.<\/p><p>Para utilizar os widgets de forma eficaz, tamb\u00e9m precisa de saber como registar as \u00e1reas de widgets no seu tema. Por exemplo, se quiser adicionar uma nova \u00e1rea para widgets no rodap\u00e9 do seu tema, pode faz\u00ea-lo adicionando o seguinte c\u00f3digo ao <code>fun\u00e7\u00f5es.php<\/code> file:<\/p><p>Este c\u00f3digo regista uma nova \u00e1rea de widgets chamada \"Footer Widget Area\" \u00e0 qual pode adicionar widgets a partir do painel de administra\u00e7\u00e3o do WordPress.<\/p><p>Para criar um widget personalizado, estenda o <code>WP_Widget<\/code> classe:<\/p><p>Os widgets s\u00e3o outra forma poderosa de alargar a funcionalidade do WordPress. Para criar um widget personalizado, estenda a propriedade <code>WP_Widget<\/code> classe:<\/p><p>Este widget apresenta uma mensagem simples e pode ser adicionado a qualquer \u00e1rea com widgets no seu tema. Os widgets s\u00e3o ideais para adicionar conte\u00fado a barras laterais ou rodap\u00e9s.<\/p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-1024x719.png\" alt=\"\" class=\"wp-image-3559\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-1024x719.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-600x421.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-300x211.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-768x539.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/111.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\"><strong>Garantir a seguran\u00e7a e o desempenho<\/strong><\/h3><h4 class=\"wp-block-heading\"><strong>Melhores pr\u00e1ticas de seguran\u00e7a<\/strong><\/h4><p>Ao desenvolver um plugin, \u00e9 crucial manter os dados dos seus utilizadores seguros. Aqui est\u00e3o algumas pr\u00e1ticas de seguran\u00e7a importantes:<\/p><ul class=\"wp-block-list\"><li><strong>Higienizar a entrada do utilizador<\/strong>: Utilize fun\u00e7\u00f5es como <code>sanitize_text_field()<\/code>, <code>esc_html()<\/code>, ou <code>esc_url()<\/code> para higienizar os dados antes de os guardar ou apresentar. Isto ajuda a evitar que c\u00f3digo malicioso seja executado no seu site e atenua vulnerabilidades comuns como <strong>XSS (Cross-Site Scripting)<\/strong>.<ul class=\"wp-block-list\"><li>Por exemplo, se estiver a guardar um URL fornecido pelo utilizador, utilize <code>esc_url()<\/code> para garantir que apenas s\u00e3o guardados URLs v\u00e1lidos.<\/li><\/ul><\/li>\n\n<li><strong>Sa\u00edda de escape<\/strong>: Escape sempre os dados antes de os enviar para o browser para evitar ataques XSS. Utilize fun\u00e7\u00f5es como <code>esc_html()<\/code>, <code>esc_attr()<\/code>e <code>esc_url()<\/code> dependendo do contexto em que os dados est\u00e3o a ser emitidos.<\/li>\n\n<li><strong>Nonces<\/strong>: Os nonces s\u00e3o utilizados para verificar se os pedidos s\u00e3o provenientes de uma fonte leg\u00edtima. Utilize <code>wp_create_nonce()<\/code> e <code>verificar_admin_referer()<\/code> para proteger formul\u00e1rios e pedidos AJAX.<ul class=\"wp-block-list\"><li>Por exemplo, para garantir que um formul\u00e1rio \u00e9 seguro, pode adicionar um campo nonce como este:E verific\u00e1-lo aquando da submiss\u00e3o do formul\u00e1rio:<\/li>\n\n<li>Isto protege contra <strong>Falsifica\u00e7\u00e3o de pedidos entre sites (CSRF)<\/strong>, assegurando que o envio do formul\u00e1rio prov\u00e9m de uma fonte v\u00e1lida.<\/li><\/ul><\/li>\n\n<li><strong>Prote\u00e7\u00e3o contra inje\u00e7\u00e3o de SQL<\/strong>: Ao interagir com a base de dados, evite escrever diretamente consultas SQL com a entrada do utilizador. Em vez disso, utilize a fun\u00e7\u00e3o <code>$wpdb<\/code> para tratar as consultas de forma segura.<ul class=\"wp-block-list\"><li>Por exemplo, para obter com seguran\u00e7a dados de uma tabela personalizada:<\/li>\n\n<li>O <code>$wpdb-&gt;prepare()<\/code> garante que a entrada do utilizador \u00e9 corretamente escapada, evitando que <strong>Inje\u00e7\u00e3o de SQL<\/strong> ataques.<\/li><\/ul><\/li><\/ul><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-1024x719.png\" alt=\"\" class=\"wp-image-3560\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-1024x719.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-600x421.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-300x211.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-768x539.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/323.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Ao desenvolver um plugin, \u00e9 crucial manter os dados dos seus utilizadores seguros. Aqui est\u00e3o algumas pr\u00e1ticas de seguran\u00e7a importantes:<\/p><ul class=\"wp-block-list\"><li><strong>Higienizar a entrada do utilizador<\/strong>: Utilize fun\u00e7\u00f5es como <code>sanitize_text_field()<\/code>, <code>esc_html()<\/code>, ou <code>esc_url()<\/code> para higienizar os dados antes de os guardar ou apresentar. Isto ajuda a evitar que c\u00f3digo malicioso seja executado no seu site.<\/li>\n\n<li><strong>Nonces<\/strong>: Os nonces s\u00e3o utilizados para verificar se os pedidos s\u00e3o provenientes de uma fonte leg\u00edtima. Utilize <code>wp_create_nonce()<\/code> e <code>verificar_admin_referer()<\/code> para proteger formul\u00e1rios e pedidos AJAX.<\/li><\/ul><p>Por exemplo, para garantir que um formul\u00e1rio \u00e9 seguro, pode adicionar um campo nonce como este:<\/p><p>E verifique-o aquando da submiss\u00e3o do formul\u00e1rio:<\/p><p>Estas medidas ajudam a proteger o seu plugin de vulnerabilidades comuns como a falsifica\u00e7\u00e3o de pedidos entre s\u00edtios (CSRF).<\/p><h4 class=\"wp-block-heading\"><strong>Otimiza\u00e7\u00e3o do desempenho<\/strong><\/h4><ul class=\"wp-block-list\"><li><strong>Carregue scripts e estilos corretamente<\/strong>: Utilizar <code>wp_enqueue_script()<\/code> e <code>wp_enqueue_style()<\/code> para carregar ficheiros JavaScript e CSS. Isto garante que os seus scripts e estilos s\u00f3 s\u00e3o carregados quando necess\u00e1rio, melhorando o desempenho do site.<ul class=\"wp-block-list\"><li><strong>Utilizar a l\u00f3gica condicional<\/strong>: Para otimizar ainda mais o desempenho, pode utilizar a l\u00f3gica condicional para garantir que os scripts e estilos s\u00f3 s\u00e3o carregados nas p\u00e1ginas relevantes. Por exemplo, se s\u00f3 precisar de um script numa p\u00e1gina de administra\u00e7\u00e3o espec\u00edfica, pode usar:Isto garante que o script s\u00f3 \u00e9 carregado na p\u00e1gina de administra\u00e7\u00e3o relevante, reduzindo a carga geral noutras p\u00e1ginas.<\/li><\/ul><\/li>\n\n<li><strong>Otimiza\u00e7\u00e3o da base de dados<\/strong>: Se o seu plugin interage com a base de dados, certifique-se de que utiliza o <code>$wpdb<\/code> para interagir de forma segura com a base de dados do WordPress e evitar consultas SQL diretas.<\/li>\n\n<li><strong>Carregue scripts e estilos corretamente<\/strong>: Utilizar <code>wp_enqueue_script()<\/code> e <code>wp_enqueue_style()<\/code> para carregar ficheiros JavaScript e CSS. Isto garante que os seus scripts e estilos s\u00f3 s\u00e3o carregados quando necess\u00e1rio, melhorando o desempenho do site.<\/li>\n\n<li><strong>Otimiza\u00e7\u00e3o da base de dados<\/strong>: Se o seu plugin interage com a base de dados, certifique-se de que utiliza o <code>$wpdb<\/code> para interagir de forma segura com a base de dados do WordPress e evitar consultas SQL diretas.<\/li><\/ul><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-1024x719.png\" alt=\"\" class=\"wp-image-3561\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-1024x719.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-600x421.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-300x211.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-768x539.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-18x12.png 18w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20-150x105.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-20.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Por exemplo, para obter com seguran\u00e7a dados de uma tabela personalizada:<\/p><p>Valide e higienize sempre os dados utilizados nas consultas para evitar a inje\u00e7\u00e3o de SQL.<\/p><h3 class=\"wp-block-heading\"><strong>Liberta\u00e7\u00e3o e manuten\u00e7\u00e3o do seu plug-in<\/strong><\/h3><p>Quando o seu plugin estiver funcional, poder\u00e1 querer partilh\u00e1-lo com a comunidade. Aqui est\u00e1 uma lista de verifica\u00e7\u00e3o para preparar o seu plugin para distribui\u00e7\u00e3o:<\/p><ol start=\"1\" class=\"wp-block-list\"><li><strong>Prepare-se para a distribui\u00e7\u00e3o<\/strong>:<ul class=\"wp-block-list\"><li><strong>Controlo de vers\u00f5es<\/strong>: Utilize um sistema de controlo de vers\u00f5es como o Git para acompanhar as altera\u00e7\u00f5es ao c\u00f3digo do seu plug-in. Isto ajuda a gerir as actualiza\u00e7\u00f5es e a colabora\u00e7\u00e3o.<\/li>\n\n<li><strong>Documenta\u00e7\u00e3o<\/strong>: Escreva uma documenta\u00e7\u00e3o completa para o seu plugin. Inclua instru\u00e7\u00f5es de instala\u00e7\u00e3o, guias de utiliza\u00e7\u00e3o e FAQs. Uma boa documenta\u00e7\u00e3o ajuda os utilizadores a compreender como utilizar o seu plugin de forma eficaz.<\/li>\n\n<li><strong>Padr\u00f5es de codifica\u00e7\u00e3o do WordPress<\/strong>: Certifique-se de que o seu c\u00f3digo segue os Padr\u00f5es de Codifica\u00e7\u00e3o do WordPress. Isso garante que o seu c\u00f3digo seja leg\u00edvel e pass\u00edvel de manuten\u00e7\u00e3o.<\/li><\/ul><\/li>\n\n<li><strong>Teste exaustivamente<\/strong>:<ul class=\"wp-block-list\"><li><strong>Instala\u00e7\u00e3o limpa do WordPress<\/strong>: Teste o seu plugin numa instala\u00e7\u00e3o limpa do WordPress para garantir que funciona sem problemas.<\/li>\n\n<li><strong>Teste de compatibilidade<\/strong>: Verifique a compatibilidade com temas populares e outros plug-ins para evitar conflitos.<\/li>\n\n<li><strong>Depura\u00e7\u00e3o<\/strong>: Utilize o bot\u00e3o <code>WP_DEBUG<\/code> para detetar quaisquer erros ou avisos durante o teste.<\/li><\/ul><\/li>\n\n<li><strong>Envie para o reposit\u00f3rio de plug-ins do WordPress<\/strong>:<ul class=\"wp-block-list\"><li>Pode submeter o seu plugin atrav\u00e9s do <a href=\"https:\/\/wordpress.org\/plugins\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Reposit\u00f3rio de plug-ins do WordPress<\/a>. O processo de submiss\u00e3o inclui uma revis\u00e3o pela equipa do WordPress para garantir que o seu plugin cumpre as normas de qualidade e seguran\u00e7a.<\/li><\/ul><\/li>\n\n<li><strong>Manuten\u00e7\u00e3o cont\u00ednua<\/strong>:<ul class=\"wp-block-list\"><li><strong>Mantenha o seu plugin atualizado<\/strong>: Actualize regularmente o seu plugin para corrigir erros, corrigir vulnerabilidades de seguran\u00e7a e garantir a compatibilidade com a vers\u00e3o mais recente do WordPress.<\/li>\n\n<li><strong>Feedback do utilizador<\/strong>: Preste aten\u00e7\u00e3o aos coment\u00e1rios dos utilizadores e aos pedidos de apoio para melhorar o plugin e resolver quaisquer problemas.<\/li><\/ul><\/li><\/ol><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"842\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-1024x842.png\" alt=\"\" class=\"wp-image-3562\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-1024x842.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-600x494.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-300x247.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-768x632.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-15x12.png 15w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21-150x123.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-21.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>A manuten\u00e7\u00e3o do seu plugin \u00e9 t\u00e3o importante como o seu desenvolvimento. Manter o seu plugin atualizado garante que continua a ser \u00fatil, seguro e compat\u00edvel com as futuras vers\u00f5es do WordPress.<\/p><p>Quando o seu plugin estiver funcional, poder\u00e1 querer partilh\u00e1-lo com a comunidade. Aqui est\u00e3o os passos b\u00e1sicos para lan\u00e7ar o seu plugin:<\/p><ol start=\"1\" class=\"wp-block-list\"><li><strong>Prepare-se para a distribui\u00e7\u00e3o<\/strong>: Certifique-se de que o seu c\u00f3digo est\u00e1 bem documentado e que o seu plugin cumpre as Normas de Codifica\u00e7\u00e3o do WordPress.<\/li>\n\n<li><strong>Teste exaustivamente<\/strong>: Teste o seu plugin numa instala\u00e7\u00e3o limpa do WordPress e garanta a compatibilidade com diferentes temas e outros plugins. Os testes ajudam a garantir que o seu plug-in n\u00e3o entra em conflito com outros plug-ins populares.<\/li>\n\n<li><strong>Envie para o reposit\u00f3rio de plug-ins do WordPress<\/strong>: Pode submeter o seu plugin atrav\u00e9s do <a href=\"https:\/\/wordpress.org\/plugins\/\" target=\"_blank\" rel=\"noopener\">Reposit\u00f3rio de plug-ins do WordPress<\/a>. O processo de submiss\u00e3o inclui uma revis\u00e3o pela equipa do WordPress para garantir que o seu plugin cumpre as normas de qualidade e seguran\u00e7a.<\/li><\/ol><p>A manuten\u00e7\u00e3o do seu plugin \u00e9 t\u00e3o importante como o seu desenvolvimento. Mantenha o seu plugin atualizado, corrija as vulnerabilidades de seguran\u00e7a e garanta a compatibilidade com a vers\u00e3o mais recente do WordPress.<\/p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"842\" src=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-1024x842.png\" alt=\"\" class=\"wp-image-3563\" srcset=\"https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-1024x842.png 1024w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-600x494.png 600w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-300x247.png 300w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-768x632.png 768w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-15x12.png 15w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22-150x123.png 150w, https:\/\/www.openbyt.com\/wp-content\/uploads\/2024\/10\/output-22.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\"><strong>Conclus\u00e3o<\/strong><\/h3><p>O desenvolvimento de plug-ins para WordPress oferece uma oportunidade incr\u00edvel de personalizar e ampliar a funcionalidade dos sites WordPress. Compreendendo os conceitos b\u00e1sicos, aproveitando os ganchos e seguindo as melhores pr\u00e1ticas, pode criar plug-ins poderosos que respondem a necessidades espec\u00edficas. As possibilidades s\u00e3o infinitas, quer esteja apenas a come\u00e7ar ou a tentar adicionar funcionalidades avan\u00e7adas.<br>Se for um principiante, comece com pouco - talvez adicionando uma simples mensagem personalizada ou criando um shortcode b\u00e1sico. \u00c0 medida que se sentir mais confort\u00e1vel, pode avan\u00e7ar para funcionalidades mais avan\u00e7adas, como widgets, defini\u00e7\u00f5es de administra\u00e7\u00e3o personalizadas ou integra\u00e7\u00e3o de APIs de terceiros.<\/p><p><\/p>","protected":false},"excerpt":{"rendered":"<p>Os plug-ins do WordPress s\u00e3o uma forma poderosa de ampliar a funcionalidade do seu site WordPress. Os plugins s\u00e3o a solu\u00e7\u00e3o ideal se quiser adicionar funcionalidades personalizadas...<\/p>","protected":false},"author":31,"featured_media":3564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62],"tags":[312,313,225,233],"class_list":["post-3545","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plugin-development","tag-plugin-security-best-practices","tag-wordpress-hooks","tag-wordpress-plugin-development","tag-wordpress-shortcodes",""],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/posts\/3545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/comments?post=3545"}],"version-history":[{"count":5,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/posts\/3545\/revisions"}],"predecessor-version":[{"id":3567,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/posts\/3545\/revisions\/3567"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/media\/3564"}],"wp:attachment":[{"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/media?parent=3545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/categories?post=3545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openbyt.com\/pt\/wp-json\/wp\/v2\/tags?post=3545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}