Guia Completo para o Desenvolvimento de Plugins para WordPress: Do Início à Prática Avançada

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

Por que aprender o desenvolvimento de plugins para o WordPress?

O WordPress, como o sistema de gerenciamento de conteúdo mais popular no mundo, deve sua forte capacidade de expansão principalmente ao seu mecanismo de plugins. Aprender a desenvolver plugins significa que você não estará mais limitado às funcionalidades dos plugins existentes e poderá criar soluções personalizadas de acordo com as necessidades do seu projeto. Isso pode incluir oferecer funcionalidades únicas para seus clientes ou transformar ideias inovadoras em produtos concretos para compartilhar com a comunidade. Dominar essa habilidade pode melhorar significativamente sua eficiência de desenvolvimento e sua competitividade no mercado.

Um plugin padrão para o WordPress é um arquivo PHP independente ou um diretório que contém vários arquivos, e ele interage com o núcleo do WordPress através de uma série de interfaces pré-definidas. O processo de desenvolvimento gira principalmente em torno da compreensão dos princípios e da estrutura do WordPress.Hooks(O sistema segue seus padrões de codificação e práticas de segurança.)

Construa o seu primeiro plugin.

Antes de começar a escrever o código, você precisa de um ambiente de desenvolvimento local. Recomendamos o uso de XAMPP, MAMP ou Local by Flywheel. Uma vez que o ambiente estiver pronto, você poderá começar a trabalhar.wp-content/pluginsVocê criou seu primeiro plugin no diretório correspondente.

Leitura recomendada Dominando o Desenvolvimento de Plugins para WordPress do Zero: Um Guia Completo com Exercícios Práticos

Criar o arquivo do plugin principal

Cada plugin deve ter um arquivo PHP principal, que deve conter as informações padrão do plugin no início do arquivo, em forma de comentários. Este arquivo é a entrada para o plugin, e seu nome geralmente é o mesmo que o nome do diretório do plugin. Por exemplo, para criar um plugin chamado…my-first-pluginO diretório e, nele, crie um arquivo com o mesmo nome.my-first-plugin.phpDocumentos.

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).

As notas no início do arquivo são de extrema importância, pois o WordPress utiliza essas informações para reconhecer os dados básicos do plugin.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的简单示例插件。
 * 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ê verá que o novo plugin apareceu na lista de plugins e poderá ativá-lo. No momento, ele ainda não possui nenhuma funcionalidade.

Adicionar a primeira funcionalidade

Agora, vamos adicionar uma função simples a este plugin: adicionar automaticamente um texto personalizado no final do conteúdo do artigo. Isso exigirá o uso dos recursos do WordPress.the_contentFilter hook.

No arquivo principal do plugin, adicione o seguinte código abaixo das informações de comentário:

Leitura recomendada Guia Completo para Desenvolvimento de Plugins para WordPress: Construa o Seu Primeiro Plugin Funcional do Zero

// 在文章内容后添加自定义文本
function myfp_add_footer_text($content) {
    // 确保只在主循环的单篇文章中显示
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $custom_text = '<p><em>Obrigado pela leitura! Este artigo foi desenvolvido com o apoio do “Meu Primeiro Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器
add_filter('the_content', 'myfp_add_footer_text');

Este código define uma função.myfp_add_footer_textEle recebe o conteúdo do artigo.$contentComo parâmetro, dentro da função é realizada uma verificação condicional para garantir que a ação seja efetivada apenas na página de um artigo específico e dentro do ciclo principal da consulta principal. Em seguida, um trecho de texto HTML personalizado é concatenado ao conteúdo original. Por fim, o resultado é utilizado…add_filter()A função monta essa função personalizada no WordPress.the_contentNo filtro. Após ativar o plugin, ao visualizar qualquer artigo, você verá o texto adicionado na parte inferior do conteúdo.

Aprofundando-se no assunto: Ganchos (Hooks) e APIs

O núcleo do desenvolvimento de plugins para o WordPress reside no entendimento e no uso avançado do seu sistema de ganchos (Hooks) e da sua rica API. Esses recursos servem como a ponte para uma comunicação segura e padronizada entre os plugins e o próprio sistema do WordPress.

Compreender os ganchos (hooks) de ações e filtros

Os ganchos (hooks) são divididos em dois tipos principais: Ações (Action) e Filtros (Filter). Os ganchos de ação permitem que você “execute” código personalizado em momentos específicos. Por exemplo,wp_footerA ação é acionada antes dos tags no fundo da página; você pode fazer isso através de…add_action('wp_footer', 'your_function')Insira o código de rastreamento ou o HTML personalizado.

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 permitem que você “modifique” os dados. Eles recebem os dados, os processam através da sua função e, em seguida, os retornam. O exemplo de adição de texto no rodapé mencionado acima é um típico caso de aplicação de um filtro. Outro exemplo comum é…excerpt_lengthFiltro usado para modificar o comprimento do resumo de um artigo.

// 修改摘要长度为20个单词
function myfp_custom_excerpt_length($length) {
    return 20;
}
add_filter('excerpt_length', 'myfp_custom_excerpt_length');

Usar a API do banco de dados do WordPress

Os plugins frequentemente precisam armazenar e ler dados. O WordPress fornece ferramentas para isso.wpdbUse classes para interagir de forma segura com o banco de dados. Para dados simples em formato de pares de chave-valor, é fortemente recomendado o uso da API de Opções (Options).

Por exemplo, para permitir que os usuários personalizem o texto do rodapé que adicionamos anteriormente, podemos criar uma opção.

Leitura recomendada Guia Completo para Desenvolvimento de Plugins para WordPress: Desde o Início até a Construção de Extensões de Nível Profissional

// 1. 创建可配置的页脚文本
function myfp_add_footer_text_v2($content) {
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        // 从数据库获取选项值,如果不存在则使用默认值
        $footer_text = get_option('myfp_footer_text', '感谢阅读!本文由“我的第一个插件”提供支持。');
        $custom_text = '<p><em>'. esc_html($footer_text) '.'</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'myfp_add_footer_text_v2');

Agora, o conteúdo pode ser transmitido (ou compartilhado) através de…get_option()A função lê os dados do banco de dados. Em seguida, precisamos de uma página de gerenciamento que permita que os usuários modifiquem esse valor.

Criar a página de gerenciamento de plugins.

Para tornar o plugin mais profissional e fácil de usar, é necessário adicionar uma página de configurações. Isso geralmente é realizado através da API do menu de administração do WordPress.

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.

Adicionar menu de gerenciamento e páginas subordinadas

Podemos adicionar um menu principal independente para o plugin, ou incluí-lo como um submenu dentro do menu “Configurações” ou “Ferramentas”. Neste caso, vamos adicioná-lo ao menu “Configurações”.

Primeiro, useadd_action()Montar uma função em…admin_menuHook: Adicione um item de menu dentro desta função.

// 添加管理菜单
function myfp_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'myfp_options_page_html' // 用于渲染页面的回调函数
    );
}
add_action('admin_menu', 'myfp_add_admin_menu');

add_options_page()A função criará uma subpágina no menu “Configurações”. Quando o usuário clicar neste menu, o WordPress chamará a função de retorno (callback) que especificamos.myfp_options_page_htmlExiba o conteúdo da página.

Construir um formulário para a página de configurações

Em seguida, defina uma função de callback para renderizar um formulário de configuração simples. Esse formulário será enviado para…options.phpEste é o método padrão usado pelo WordPress para lidar com as configurações.

// 渲染设置页面
function myfp_options_page_html() {
    // 检查用户权限
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form action="/pt/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出必要的安全字段
            settings_fields('myfp_settings');
            // 输出设置章节和字段
            do_settings_sections('my-first-plugin');
            // 提交按钮
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Configurações de registro, seções e campos

Apenas formulários não são suficientes; precisamos usá-los de forma adequada.register_setting(), add_settings_section()eadd_settings_field()Funções como essas são usadas para informar ao WordPress quais opções de configuração estão disponíveis.

// 初始化插件设置
function myfp_settings_init() {
    // 注册一个设置项‘myfp_settings’,它包含一个字段‘myfp_footer_text’
    register_setting('myfp_settings', 'myfp_footer_text');

// 在页面‘my-first-plugin’上添加一个设置章节
    add_settings_section(
        'myfp_section',
        '页脚文本设置',
        null, // 章节描述回调函数,这里不需要
        'my-first-plugin'
    );

// 在上述章节中添加一个字段
    add_settings_field(
        'myfp_field_footer_text',
        '自定义页脚文本',
        'myfp_field_footer_text_html', // 渲染字段HTML的回调函数
        'my-first-plugin',
        'myfp_section',
        ['label_for' =&gt; 'myfp_footer_text']
    );
}
add_action('admin_init', 'myfp_settings_init');

// 渲染文本输入字段
function myfp_field_footer_text_html() {
    // 获取数据库中保存的值
    $value = get_option('myfp_footer_text');
    ?&gt;
    <input type="text" id="myfp_footer_text" name="myfp_footer_text" value="<?php echo esc_attr($value); ?>" class="regular-text">
    <p class="description">Este texto será exibido no final de cada artigo.</p>
    &lt;?php
}

Agora, atualize o painel administrativo do WordPress. Você verá a opção “Minhas Configurações de Plugins” no menu “Configurações”. Ao acessar essa página, você poderá modificar e salvar o texto do rodapé personalizado, e o conteúdo dos artigos exibidos no site será atualizado automaticamente.

resumos

Este guia te acompanhou ao longo do caminho essencial para o desenvolvimento de plugins para o WordPress: desde a criação de um arquivo de plugin básico que contém as informações de cabeçalho padrão, até o uso de ganchos de ações (actions) e filtros (filters) para adicionar funcionalidades ao WordPress, passando pelo armazenamento de dados com a API de opções (options API), até a criação de uma interface de administração completa no painel de controle do site. Todo o processo reflete a filosofia de desenvolvimento modular e baseada em ganchos do WordPress. Ao dominar esses conceitos básicos, você poderá explorar temas mais avançados, como a personalização de tipos de artigos, o uso de códigos curtos (shortcodes), a integração com APIs REST, o processamento de dados via AJAX e a internacionalização de plugins. Lembre-se: uma boa estrutura de código, um tratamento seguro dos dados e uma interface de usuário clara são a chave para criar plugins de alta qualidade.

Perguntas frequentes Perguntas frequentes

Quais são os conhecimentos prévios necessários para desenvolver plugins?

Você precisa ter conhecimentos básicos da linguagem de programação PHP, incluindo conceitos como variáveis, funções, condições de avaliação e ciclos. Além disso, é necessário ter um entendimento básico de HTML e CSS para lidar com a exibição de conteúdo no lado cliente (front-end) e a definição de estilos visuais. Conhecer as operações básicas do MySQL também é útil para compreender o armazenamento de dados, embora a API do WordPress tenha encapsulado a maior parte das interações com o banco de dados.

Como depurar um plugin que está em desenvolvimento?

O método mais eficaz é ativar o modo de depuração do WordPress.wp-config.phpNo arquivo, será…WP_DEBUGUma constante é definida comotrueIsso exibirá todos os erros, avisos e notificações do PHP na tela. Além disso, é possível usá-los para...error_log()A função grava as informações de depuração no log de erros do servidor, ou utiliza os painéis Console e Network dos ferramentas de desenvolvimento do navegador para a depuração do lado front-end.

Como um plugin pode implementar suporte a múltiplas línguas?

O WordPress utiliza os processos de “internacionalização (i18n)” e “localização (l10n)” para suportar vários idiomas. No código dos plugins, todas as strings de texto que precisam ser traduzidas devem ser marcadas de forma adequada.__()ou_e()Em seguida, use funções de tradução para encapsular essas strings. Depois, utilize ferramentas como o Poedit para extrair essas strings do código-fonte e gerar o resultado final da tradução..potArquivos de modelo, e com base neles, criar diferentes idiomas (por exemplo:zh_CN.poFinalmente, declare o seu domínio de texto no campo “Text Domain” no início do arquivo principal do plugin, e use-o durante a inicialização.load_plugin_textdomain()Tradução de “Function loading”.

Como publicar um plugin desenvolvido no diretório oficial?

Primeiramente, você precisa garantir que o seu plugin segue completamente os padrões de codificação oficiais do WordPress, a política de privacidade e os requisitos de compatibilidade com a licença GPL. Em seguida, solicite um repositório SVN no site WordPress.org. Envie o código do seu plugin (incluindo os arquivos principais, arquivos de recursos e arquivos de tradução) para esse repositório SVN./trunkO novo código é lançado através de etiquetas (tags) do SVN. O diretório oficial sincroniza automaticamente o código do seu repositório SVN e, após revisão manual, o código é exibido.