Eu vou te ensinar, passo a passo, como dominar o desenvolvimento de plugins para o WordPress, começando do zero.

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

Preparação do ambiente de desenvolvimento de plugins para o WordPress

Antes de começar a escrever o código, um ambiente de desenvolvimento estável e isolado é de extrema importância. Isso não só protege o seu site de produção, mas também lhe permite testar e depurar o código com total liberdade. A maneira mais recomendada é usar um ambiente de desenvolvimento local, como o Local by Flywheel, XAMPP ou MAMP. Esses ferramentas permitem instalar, de forma prática, o PHP, o MySQL e o servidor web necessários para o WordPress no seu computador.

Em seguida, você precisa ativar o modo de depuração na instalação local do WordPress. Isso ajuda a encontrar erros rapidamente durante o processo de desenvolvimento. Abra o diretório raiz do WordPress. wp-config.php Arquivo: Encontre ou adicione as seguintes definições de constantes:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Após essa configuração, todas as informações de erro e aviso serão registradas. /wp-content/debug.log O arquivo está armazenado em algum local, mas não é exibido diretamente na página, o que não afeta o usuário que interage com o site (o “frontend”).

Leitura recomendada Guia de Início para Desenvolvimento de Plugins para WordPress: Crie o Seu Primeiro Plugin Personalizado do Zero

Por fim, você precisa de um editor de código. O Visual Studio Code, o PhpStorm ou o Sublime Text são todas ótimas opções, pois oferecem suporte excelente para a destacação da sintaxe e dicas de código no desenvolvimento em PHP e WordPress. Certifique-se de que o seu editor permita acesso fácil aos arquivos do projeto no servidor local.

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

Crie o seu primeiro plugin.

Um plugin para WordPress é, essencialmente, um ou mais arquivos que se encontram dentro da estrutura do site. wp-content/plugins Os arquivos PHP localizados no diretório. Cada plugin deve ter um arquivo principal, e o início desse arquivo deve conter as anotações de informações padrão do plugin, para que o WordPress consiga reconhecê-lo.

Escrever as informações de cabeçalho do plugin

No seu wp-content/plugins No diretório, crie uma nova pasta, por exemplo… my-first-pluginNesse diretório, crie o arquivo principal. my-first-plugin.phpNo início do arquivo, deve-se incluir uma nota no seguinte formato:

<?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
 */

O “Nome do Plugin” é um campo obrigatório nessa nota de rodapé; todos os outros campos são opcionais. O WordPress lerá essas informações e as exibirá na página de gerenciamento de plugins no backend.

Implementar uma função simples

Agora, vamos adicionar a primeira funcionalidade real para este plugin: a adição automática de um texto personalizado no final do conteúdo do artigo. Vamos usar… the_content Este gancho de filtro (Filter Hook).

Leitura recomendada Introdução ao Desenvolvimento de Plugins para WordPress: Da Iniciação à Expertise – Partilha de Experiências Práticas e Técnicas Essenciais

Abaixo das notas de cabeça, adicione o seguinte código:

function myfp_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Obrigado por ler este artigo, apresentado por “Meu Primeiro Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_text_to_content' );

Após salvar o arquivo, acesse a página de “Plugins” no painel administrativo do WordPress. Você deve ver o “Meu Primeiro Plugin”. Ative-o e, em seguida, visite um artigo no site; notará que o texto que definimos foi adicionado no final do artigo. Neste código…myfp_add_text_to_content É uma função que definimos nós.add_filter() Monte-o em… the_content No gancho… As condições de avaliação dentro da função garantem que este texto seja exibido apenas no ciclo principal da página principal de um artigo, no lado front-end.

Compreender o mecanismo central dos plugins do WordPress

A base da poderosa e flexível estrutura dos plugins do WordPress é o seu mecanismo de “ganchos” (Hooks). Os ganchos permitem que você insira o seu próprio código em pontos específicos da execução do código core do WordPress, alterando ou aprimorando assim o seu comportamento padrão. Existem principalmente dois tipos de ganchos: os Ganchos de Ação (Action Hooks) e os Ganchos de Filtro (Filter Hooks).

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 de ação (Action Hooks) permitem que você execute código personalizado quando um evento específico ocorre, como após a publicação de um artigo ou ao carregar uma página de gerenciamento. Eles não exigem o retorno de um valor. add_action() Uma função é usada para realizar a montagem (ou instalação) de algo. Por exemplo, executar uma ação quando um plugin é ativado:

function myfp_plugin_activation_task() {
    // 创建数据库表、初始化选项等
    update_option( 'myfp_plugin_installed', '2026-01-01' );
}
register_activation_hook( __FILE__, 'myfp_plugin_activation_task' );

Aqui foi utilizado… register_activation_hookÉ um gancho de ação especial, destinado exclusivamente à ativação de plugins.

O gancho do filtro (Filter) permite que você modifique os dados passados a ele. Ele exige que a função receba um valor e deve retornar um valor modificado. O exemplo anterior de modificação do conteúdo de um artigo é um típico caso de uso de um filtro. Outro exemplo é a alteração do comprimento do resumo de um artigo:

Leitura recomendada Dominando o desenvolvimento de plugins para o WordPress: Um guia prático completo do zero ao ponto.

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

Use códigos curtos para adicionar conteúdo dinâmico.

Além dos “ganchos” (hooks), os códigos encurtados (shortcodes) são outra ferramenta poderosa para a interação entre plugins e o conteúdo. Eles permitem que os usuários insiram um simples marcador em um artigo ou página para… [my_shortcode]) para chamar o conteúdo complexo gerado pelo plugin.

Criar um código curto é muito simples; basta usar… add_shortcode() Funções. Por exemplo, crie um código curto para exibir a hora atual:

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.
function myfp_current_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'format' => 'Y-m-d H:i:s',
    ), $atts, 'current_time' );

return date( $atts['format'] );
}
add_shortcode( 'current_time', 'myfp_current_time_shortcode' );

Os utilizadores podem introduzir informações no editor. [current_time format="H:i"] Apenas mostre as horas e os minutos.

Adicionar uma página de gerenciamento para o plugin.

Muitos plugins precisam oferecer opções de configuração, o que geralmente é feito através das páginas do menu de administração do WordPress. O WordPress disponibiliza uma série de funções para adicionar itens de menu principais ou submenus.

Criar a página de configurações do plugin

Vamos adicionar uma página de configurações simples para o plugin, destinada a gerenciar o texto que foi adicionado no final dos artigos anteriormente. Primeiro, use… add_menu_page() ou add_options_page() Existem funções para registrar páginas. Geralmente, plugins simples adicionam essas páginas ao submenu “Configurações”.

Adicione o seguinte código ao arquivo principal do plugin:

function myfp_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'myfp-settings',      // 菜单slug
        'myfp_settings_page_html' // 用于输出页面内容的回调函数
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Este código informa ao WordPress que, ao criar o menu de administração do site,admin_menu (Ação), execução myfp_add_admin_menu Função para adicionar uma página.

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

Em seguida, precisamos definir… myfp_settings_page_html A função é responsável por gerar o conteúdo HTML da página e por processar o salvamento dos formulários. Para armazenar as configurações de forma segura, utilizamos o WordPress. options API (Application Programming Interface).

function myfp_settings_page_html() {
    // 检查用户权限
    if ( !current_user_can( 'manage_options' ) ) {
        return;
    }

// 处理表单提交
    if ( isset( $_POST['myfp_footer_text'] ) ) {
        update_option( 'myfp_footer_text', sanitize_textarea_field( $_POST['myfp_footer_text'] ) );
        echo '<div class="notice notice-success"><p>A configuração foi salva!</p></div>';
    }

// 获取现有值
    $current_text = get_option( 'myfp_footer_text', '感谢阅读本文,由“我的第一个插件”为您呈现。' );
    ?&gt;
    <div class="wrap">
        <h1>As configurações do meu primeiro plugin</h1>
        <form method="post" action="">
            <?php wp_nonce_field( 'myfp_settings_action', 'myfp_settings_nonce' ); ?>
            <table class="form-table">
                <tr>
                    <th scope="row"><label for="footer_text">Texto no rodapé da página do artigo</label></th>
                    <td>
                        <textarea name="myfp_footer_text" id="footer_text" rows="4" cols="50" class="large-text"><?php echo esc_textarea( $current_text ); ?></textarea>
                        <p class="description">Este texto será exibido no final de cada artigo.</p>
                    </td>
                </tr>
            </table>
            <?php submit_button(); ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Por fim, lembre-se de modificar a função que filtrava o conteúdo dos artigos anteriormente, para que ela funcione com as opções disponíveis. myfp_footer_text A leitura do texto é realizada a partir de um arquivo, em vez de usar strings (cadeias de caracteres) hardcoded (predefinidas no código). Com isso, uma página de configurações do backend com funcionalidades básicas de gerenciamento está pronta.

resumos

Seguindo os passos deste artigo, você criou um plugin para o WordPress completamente funcional, partindo do zero. Você aprendeu como configurar um ambiente de desenvolvimento, criar a estrutura básica de um plugin, utilizar os mecanismos de ganchos (actions e filters) do WordPress para expandir suas funcionalidades, implementar códigos encurtados (shortcodes) e desenvolver uma interface de administração no backend. O essencial no desenvolvimento de plugins é entender o conceito de ganchos e a programação orientada a eventos, o que lhe permite personalizar profundamente o comportamento do WordPress sem alterar o código-fonte. Lembre-se de que uma boa estrutura de código, um processamento seguro de dados de entrada/saída e suporte à internacionalização são fundamentais para o desenvolvimento de plugins de alta qualidade. Em seguida, você pode tentar adicionar mais funcionalidades ao seu plugin, como tipos de artigos personalizados, ferramentas úteis (widgets) ou pontos de extremidade (endpoints) para APIs REST, explorando assim as infinitas possibilidades da ecossistema do WordPress.

Perguntas frequentes Perguntas frequentes

Um plugin deve ter apenas um arquivo PHP?

Não necessariamente. Um plugin pode ser composto por um único arquivo PHP, mas para plugins mais complexos, é recomendada uma estrutura modular. Você pode dividir as diferentes funções em classes ou arquivos separados, e o arquivo principal é responsável apenas por incluir esses arquivos e inicializar o plugin. Isso facilita a manutenção e a organização do código. Por exemplo, é possível criar… includes/ O diretório armazena as classes de funcionalidades.admin/ O diretório contém o código relacionado ao backend.public/ O diretório contém a lógica do lado front-end.

Como lidar de forma segura com as entradas dos usuários em plugins?

Ao processar dados fornecidos pelos usuários (como dados de formulários ou parâmetros de URL), é essencial realizar validações, limpezas (sanitização) e ações de escape (escaping). No que diz respeito aos dados armazenados no banco de dados, é necessário utilizar métodos apropriados para garantir a segurança e a integridade das informações. sanitize_text_field()sanitize_textarea_field()intval() Use funções como essas para realizar a limpeza dos dados. Ao exibir os dados em uma página HTML, utilize-as adequadamente. esc_html()esc_attr()esc_url() ou wp_kses() Fazer a escape para evitar ataques de Cross-Site Scripting (XSS).

Como depurar código no desenvolvimento de plugins?

Além de ativar… WP_DEBUG Além disso, você também pode usar… error_log() A função registra informações personalizadas no log de depuração. Isso é útil para verificar os valores das variáveis.var_dump() ou print_r() Combinação de die() É um método rápido, mas rudimentar. Recomendamos bastante o uso das funcionalidades nativas do WordPress. wp_die() e wp_send_json()(Usado para depuração AJAX). Além disso, o uso de plugins de depuração profissionais, como o Query Monitor, permite visualizar de forma mais intuitiva informações em tempo real sobre consultas ao banco de dados, ganchos (hooks), scripts e outros elementos em execução.

Como fazer meu plugin suportar múltiplas línguas?

Para que um plugin suporte a internacionalização (i18n), é necessário utilizar as funções de tradução do WordPress. Primeiramente, configure-as corretamente nos comentários no início do código do plugin. Text Domain(Como ‘my-first-plugin’). No código, use esse padrão para todas as strings direcionadas aos usuários. () ou _e() As funções são encapsuladas, por exemplo… ( ‘Hello World’, ‘my-first-plugin’ )Em seguida, use ferramentas como o Poedit para gerar o conteúdo desejado. .pot Os ficheiros de modelo, a partir dos quais os tradutores podem criar versões em diferentes idiomas. .po e .mo O arquivo é salvo e armazenado no plugin. languages/ Na pasta.