De zero a um: um guia completo para o desenvolvimento de plug-ins do WordPress e tutoriais práticos

Leitura de 3 minutos
2026-03-11
2026-06-04
2,258
Eu recebo uma comissão quando você faz compras através dos links abaixo, sem custo adicional para você.

Por que é necessário desenvolver o seu próprio plugin WordPress?

As funcionalidades principais do WordPress são poderosas, mas, diante das constantes mudanças nas necessidades dos negócios, as funcionalidades pré-definidas muitas vezes não são suficientes para atender a todas as exigências. O desenvolvimento de plugins personalizados permite adicionar funcionalidades únicas ao seu site sem a necessidade de modificar os arquivos principais do WordPress, o que garante a estabilidade e a capacidade de atualização do site. Seja para criar um simples formulário de contato, um sistema avançado de exibição de produtos ou uma ferramenta integrada a APIs de terceiros, os plugins representam a forma mais flexível e padronizada de implementação.

Ao desenvolver plugins, você pode modularizar as funções, facilitando seu reuso e distribuição em diferentes sites. Isso não só melhora a eficiência do desenvolvimento, mas também é uma ótima maneira de entender mais profundamente a arquitetura do WordPress e a programação em PHP. Dominar as habilidades de desenvolvimento de plugins significa que você pode transformar qualquer ideia em uma funcionalidade real em um site.

Construa o seu primeiro plugin para o WordPress

Para criar um plugin para o WordPress, comece com uma pasta simples e um arquivo principal. Todos os componentes do plugin devem ser armazenados nessa pasta./wp-content/plugins/No diretório.

Leitura recomendada Guia para iniciantes no desenvolvimento de temas para WordPress: Criando temas personalizados do zero

Criar o arquivo principal do plugin

O arquivo principal do plugin é o “coração” do mesmo, pois contém as suas informações metadadas. Primeiramente,/wp-content/plugins/Crie uma nova pasta na pasta principal, por exemplo:my-first-pluginEm seguida, crie o arquivo PHP principal dentro dessa pasta; geralmente, o nome do arquivo é o mesmo que o nome da pasta.my-first-plugin.php

Hospedagem para sites WordPress da UltraHost
Garantia de reembolso em 30 dias, largura de banda ilimitada e banco de dados, proteção contra DDoS gratuita; desconto de 50% na compra de 3 anos (planos de 4 TB a 10 TB).

No início deste arquivo principal, você precisa adicionar uma nota de comentário padrão para o plugin, a qual descreve o seu plugin para o WordPress. Isso é essencial para que o plugin seja reconhecido pelo WordPress e exibido na interface de administração do sistema.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Após salvar o arquivo, faça login no painel administrativo do seu WordPress e vá para a página “Plugins”. Você deve ver “Meu Primeiro Plugin” na lista de plugins. Ative-o; embora ele ainda não tenha nenhuma funcionalidade, o framework do seu primeiro plugin já está configurado.

Adicionar funcionalidades básicas ao plug-in.

Um plugin sem funcionalidades não tem sentido. Vamos adicionar uma funcionalidade simples a ele: inserir uma linha de texto personalizado no rodapé do site. Isso exigirá o uso do mecanismo de “ganchos” (Hooks) do WordPress.

Nós podemos usar.wp_footerEste gancho de ação está localizado no arquivo principal do plugin.my-first-plugin.phpAbaixo dos comentários de cabeça, adicione o seguinte código:

Leitura recomendada Como escolher e desenvolver plugins WordPress de alta qualidade: um guia do iniciante ao especialista.

// 在网站页脚输出自定义文本
function my_first_plugin_add_footer_text() {
    echo '<p style="text-align: center; color: #666;">Obrigado por usar o meu primeiro plugin para WordPress!</p>';
}
add_action( 'wp_footer', 'my_first_plugin_add_footer_text' );

Após salvar o arquivo, atualize a página da sua web e desloque-se até o final da tela. Você deve conseguir ver o texto que foi adicionado. Com este exemplo simples, você praticou o padrão central do desenvolvimento de plugins: definir funções e, em seguida, utilizá-las para realizar as ações desejadas.add_action()ouadd_filter()Monte-o em um hook específico do WordPress.

Compreender o mecanismo central dos plugins do WordPress: ganchos (hooks) e filtros (filters)

A flexibilidade e a capacidade de expansão do WordPress devem-se, em grande parte, ao seu sistema de “ganchos” (Hooks). Os ganchos permitem que os desenvolvedores insiram o próprio código em momentos específicos da execução do código core do WordPress. Os ganchos são divididos principalmente em dois tipos: Ações (Actions) e Filtros (Filters).

Os ganchos de ação (action hooks) executam o seu código quando um evento específico ocorre, como a publicação de um artigo ou o carregamento do rodapé da página. Eles não esperam um valor de retorno e são principalmente usados para realizar alguma ação. Os que usamos acima…wp_footerÉ apenas um gancho de ação (action hook).

hospedagem compartilhada da hosting.com
Alto desempenho com CPUs AMD EPYC, armazenamento SSD NVMe e LiteSpeed, suporte interno especializado 24 horas por dia, 7 dias por semana, medidas de segurança avançadas, incluindo SSL, força bruta, malware e proteção contra DDoS, economia de até 73%

Os ganchos (hooks) dos filtros são usados para modificar os dados. Eles permitem que você altere os dados antes que sejam utilizados (por exemplo, armazenados em um banco de dados ou exibidos em um navegador). A função do filtro recebe um valor e deve retornar o valor modificado.

Use os ganchos de ação para adicionar um menu de gerenciamento.

Um plugin completo geralmente precisa adicionar sua própria página de menu na barra lateral do painel de administração do WordPress. Isso pode ser feito através de…admin_menuEste action hook é usado para implementar essa funcionalidade.

// 在后台管理菜单中添加一个新页面
function my_first_plugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单slug
        'my_first_plugin_settings_page', // 显示页面内容的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80                      // 菜单位置
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' );

// 定义设置页面的内容
function my_first_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>As configurações do meu primeiro plugin</h1>
        <p>Bem-vindo à página de configurações do plugin. No futuro, várias opções de configuração poderão ser adicionadas aqui.</p>
        <form method="post" action="/pt/options.php/" data-trp-original-action="options.php">
            <!-- 未来可以在这里添加设置字段 -->
            <?php submit_button(); ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Usar filtros para modificar o conteúdo de um artigo

Suponhamos que queremos adicionar automaticamente uma declaração de direitos autorais no final de cada artigo, usando um gancho (hook) de filtro.the_contentE então foi útil.

Leitura recomendada Como escolher e desenvolver plugins WordPress de alta qualidade: do início ao fim.

// 在文章内容末尾自动添加版权声明
function my_first_plugin_add_copyright( $content ) {
    // 确保只在主循环的单篇文章页面执行
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = '<div class="plugin-copyright"><p><em>Os direitos de autor deste artigo pertencem a este site. Por favor, indique a fonte ao republicá-lo.</em></p></div>';
        $content .= $copyright_text;
    }
    return $content; // 必须返回修改后的内容
}
add_filter( 'the_content', 'my_first_plugin_add_copyright' );

Segurança de plugins e melhores práticas

Ao desenvolver plugins, a segurança é o fator mais importante a ser considerado. Um plugin inseguro pode se tornar uma vulnerabilidade em todo o site.

Validação de dados, limpeza e escape

Nunca confie em dados inseridos pelo usuário ou em informações externas. Todos os dados provenientes de fontes externas devem ser verificados e analisados cuidadosamente antes de serem utilizados.$_GET$_POST$_COOKIEOs dados do banco de dados também precisam ser verificados e limpos antes de serem utilizados.

Hospedagem Compartilhada InterServer
Hospedagem compartilhada $2.50 USD por mês, primeiro mês $0.1 USD código promocional tryinterserver, 461 scripts de aplicativos em nuvem, instalação com um clique.
  • Validação: Verifica se os dados seguem o formato esperado (por exemplo, se são um endereço de e-mail, um número, etc.). Pode ser utilizada para garantir a qualidade e a precisão das informações inseridas.filter_var()Função ousanitize_*()Uma série de funções.
  • Limpeza (Sanitização): Remove caracteres ilegais ou inseguros dos dados. Por exemplo, para a entrada de texto, usesanitize_text_field()
  • Escapar: Ao exportar dados para HTML, JavaScript ou URL, certifique-se de que os caracteres especiais estão correctamente codificados, de forma a evitar ataques XSS. Utilizeesc_html()esc_js()esc_url()Funções como essas.
// 不安全的做法
echo $_GET['user_input'];

// 安全的做法:先清理,再转义
$safe_input = sanitize_text_field( $_GET['user_input'] );
echo esc_html( $safe_input );

Usar o WordPress para verificações de não autenticação (non-CE) e de permissões

Ao lidar com o envio de formulários (especialmente quando envolve a modificação ou exclusão de dados), é necessário utilizar métodos seguros e confiáveis.wp_nonce(Um número único) é usado para verificar a legitimidade da solicitação e evitar ataques de tipo CSRF (Cross-Site Request Forgery). Além disso, é necessário verificar se o usuário atual tem permissão para realizar essa operação.

// 在处理表单提交时检查权限和nonce
function my_first_plugin_handle_form_submit() {
    // 1. 检查nonce
    if ( ! isset( $_POST['my_plugin_nonce'] ) || ! wp_verify_nonce( $_POST['my_plugin_nonce'], 'my_plugin_action' ) ) {
        wp_die( '安全校验失败!' );
    }

// 2. 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_die( '权限不足!' );
    }

// 3. 清理和保存数据(此处省略)
    // ...
}

Pronto para lançar o seu plugin?

Quando o plugin estiver totalmente funcional e passar pelos testes, você pode considerar compartilhá-lo com outros usuários do WordPress.

Preparação para Internacionalização e Localização

Para que usuários de todo o mundo possam usar o seu plugin, você precisa estar preparado para a internacionalização (i18n). Isso significa que todas as strings direcionadas aos usuários devem ser encapsuladas usando as funções de tradução do WordPress. Já especificamos isso nos comentários no início do plugin.Text Domain: my-first-plugin

No código, use…__()Função para traduzir uma string e retornar o resultado._e()Função para traduzir e exibir o resultado diretamente.

// 将之前页脚输出的文本改为可翻译
function my_first_plugin_add_footer_text_i18n() {
    $text = __( '感谢使用我的第一个WordPress插件!', 'my-first-plugin' );
    echo '<p style="text-align: center; color: #666;">'`. esc_html($text)`.'</p>';
}
add_action( 'wp_footer', 'my_first_plugin_add_footer_text_i18n' );

Depois, você pode usar ferramentas como o Poedit para criar..potArquivos de modelo: os tradutores podem usar esses arquivos para criar traduções em diferentes idiomas..poe.moDocumentos.

Aperfeiçoar os metadados do plugin e o arquivo de instruções (readme).

Se você planeja enviar o plugin para o diretório oficial de plugins do WordPress, você precisará criar um arquivo que atenda aos padrões estabelecidos pela comunidade.readme.txtArquivo. Este arquivo utiliza um formato Markdown específico para exibir, no WordPress.org, a descrição do seu plugin, os passos de instalação, capturas de tela, registros de atualizações e outras informações.

Ao mesmo tempo, assegure-se de que as metadados no topo do arquivo principal do seu plugin estejam completos e precisos, especialmente o número da versão. Segue o controle de versão semântico (por exemplo, usando sistemas como Git).MAJOR.MINOR.PATCHÉ um bom hábito.

resumos

O desenvolvimento de plugins para o WordPress é um processo que transforma ideias em funcionalidades poderosas para websites. Começamos criando um arquivo de plugin básico e, ao longo do caminho, aprendemos como utilizar o poderoso sistema de ganchos (ações e filtros) do WordPress para inserir código, adicionar menus no painel administrativo e modificar o conteúdo. O que é ainda mais importante é que discutimos em profundidade as práticas de segurança essenciais no desenvolvimento de plugins, incluindo a validação de dados, a limpeza dos dados inseridos, o processo de escape de caracteres e as verificações de permissões. Tudo isso é fundamental para garantir que o seu plugin seja confiável e não seja utilizado de forma indevida.

Por fim, analisamos os próximos passos no desenvolvimento de plugins: a preparação para a internacionalização e o processo de lançamento. Ao dominar esses conceitos e habilidades fundamentais, você estará em condições de criar soluções personalizadas para qualquer projeto WordPress. Lembre-se de que a melhor maneira de aprender é praticar. Comece com uma necessidade simples e, gradualmente, expanda as funcionalidades do seu plugin.

Perguntas frequentes Perguntas frequentes

Quais são as noções básicas necessárias para desenvolver plugins para o WordPress?

Para desenvolver plugins para o WordPress, é necessário ter conhecimentos básicos da linguagem de programação PHP, pois o código dos plugins é principalmente escrito em PHP. Além disso, é essencial ter um entendimento básico de HTML, CSS e JavaScript para criar a interface e as interações do lado cliente (front-end). O mais importante é compreender a arquitetura básica do WordPress, especialmente o seu sistema de “ganchos” (Hooks), que é a principal forma pela qual os plugins interagem com o núcleo do sistema.

Qual é a diferença entre os arquivos de funções (functions.php) dos plugins e dos temas?

Subject:functions.phpOs arquivos são usados para adicionar código relacionado à aparência e aos recursos de um tema específico; esse código perde a validade ao trocar de tema. Por outro lado, os plugins são módulos de funcionalidade independentes dos temas. Não importa qual tema seja ativado, as funcionalidades dos plugins permanecem ativas desde que eles estejam ativados. É uma melhor prática colocar funcionalidades gerais em plugins, pois isso garante a independência e a portabilidade dessas funcionalidades.

Como depurar meu plugin para WordPress?

Primeiro, certifique-se de que…wp-config.phpO ficheiro foi aberto.WP_DEBUGEste modo exibirá os erros e avisos do PHP na tela. Use-o.error_log()A função grava informações de depuração no log de erros do servidor. Além disso, é possível utilizar as ferramentas de desenvolvimento do navegador, como o “Console” e o “Network”, para depurar solicitações JavaScript e AJAX. Para lógicas mais complexas, é recomendado…var_dump()ouprint_r()Você deve exibir o valor da variável, mas lembre-se de remover esses códigos de depuração antes de publicar o produto final.

Como meu plugin interage com o banco de dados?

O WordPress oferece…$wpdbUm objeto global é utilizado para realizar operações seguras no banco de dados; ele encapsula as consultas SQL e disponibiliza funções de limpeza de dados. Para criar, atualizar e excluir tabelas de dados personalizadas, é recomendado usá-lo quando o plugin estiver ativado.dbDelta()Para a maioria dos casos de configuração de dados, uma maneira mais simples e segura é usar a API Options do WordPress.add_option(), update_option(), get_option()É usado para armazenar pares de chaves e valores.

Como criar uma página de configurações configurável para o meu plugin?

Criar uma página de configurações geralmente envolve vários passos:add_menu_page()ouadd_submenu_page()Adicione itens de menu e páginas, e então use o API Settings para registrar configurações, seções e campos. O API Settings lida automaticamente com a verificação de autenticidade (CE – Common Encryption) e as verificações de permissões, além de fornecer um método padronizado para a renderização dos campos. É o método recomendado para construir páginas de configurações de backend seguras e padronizadas.