Guia de Iniciação para Desenvolvimento de Plugins para WordPress: Construa o Seu Primeiro Plugin Personalizado do Zero

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

Os plugins do WordPress são essenciais para expandir as funcionalidades de um site, permitindo que novas características sejam adicionadas de forma modular, sem a necessidade de modificar o código central do WordPress. Ao desenvolver seus próprios plugins, você pode criar funcionalidades totalmente personalizadas para atender a necessidades específicas e garantir a compatibilidade com outros temas e plugins. Este guia irá orientá-lo passo a passo no processo de criação de um plugin do WordPress completo e bem estruturado.

Estrutura e normas básicas de plugins para WordPress

Um plugin padrão para o WordPress precisa seguir uma estrutura e especificações de arquivos específicas para garantir que seja corretamente reconhecido pelo sistema WordPress, funcione de forma segura e seja fácil de manter.

Criar o arquivo principal do plugin

Cada plugin deve ter um arquivo PHP principal, cujo nome geralmente é o mesmo que o nome do diretório do plugin. No início desse arquivo, deve haver um comentário de cabeçalho que contém informações específicas sobre o plugin; é através desse comentário que o WordPress reconhece o plugin.

Leitura recomendada Análise aprofundada do desenvolvimento de plugins do WordPress: do início ao zero até uma personalização eficiente

Crie uma pasta chamada plugins no diretório do seu projeto. my-first-plugin.php O arquivo, e adicione as seguintes informações de cabeçalho:

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).
<?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
 * Domain Path:       /languages
 */

Seguir as melhores práticas de segurança

Todo o código dos plugins deve ser incluído nos procedimentos de verificação de segurança, a fim de impedir que seja acessado diretamente. Além disso, deve-se usar um prefixo único para nomear todas as funções, classes e constantes, a fim de evitar conflitos com o tema ou com outros plugins.

No arquivo principal do plugin, o código de proteção de segurança deve ser adicionado imediatamente após as notas de cabeça, e deve ser utilizado um prefixo único (por exemplo, mfp_Use isso para nomear sua função:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// 使用唯一前缀定义一个函数
function mfp_display_greeting() {
    echo '<p>Olá, bem-vindo(a) ao uso do meu primeiro plugin!</p>';
}

Implementar as funcionalidades principais: ações e filtros.

O mecanismo de extensões do WordPress depende de “ganchos” (Hooks), que são divididos em “Ações” (Actions) e “Filtros” (Filters). Compreender e usar esses recursos corretamente é fundamental para o desenvolvimento de plugins.

Usar ganchos de ação para adicionar funcionalidades

Os ganchos de ação (action hooks) permitem que você execute o seu próprio código em momentos específicos ou quando determinados eventos ocorrem. Por exemplo, para adicionar um texto no fundo da página, você pode utilizar esses ganchos. wp_footer Ação.

Leitura recomendada Desenvolvimento de plugins para WordPress: Construindo plugins com funcionalidades personalizadas do zero

Monte a função definida anteriormente em… wp_footer No gancho:

// 将函数挂载到 wp_footer 动作钩子
add_action( 'wp_footer', 'mfp_display_greeting' );

Dessa forma, quando o WordPress chegar à parte inferior da página (footer), o código correspondente será executado. mfp_display_greeting Função para exibir uma saudação.

Usar os ganchos dos filtros para modificar o conteúdo

Os ganchos (hooks) dos filtros são usados para modificar dados. Eles recebem um valor, o processam e, em seguida, o retornam. Por exemplo, para alterar o sufixo padrão dos títulos dos artigos, isso pode ser feito utilizando esses ganchos. the_title Filtro.

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%

Crie uma função para modificar o título de um artigo e adicione-a a um filtro:

// 定义一个函数来修改文章标题
function mfp_modify_title( $title, $id = null ) {
    // 仅在前端修改非管理员页面的标题
    if ( ! is_admin() && in_the_loop() ) {
        $title .= ' - 来自我的插件';
    }
    return $title;
}
// 将函数挂载到 the_title 过滤器钩子,参数3是优先级,参数4是接受的参数个数
add_filter( 'the_title', 'mfp_modify_title', 10, 2 );

Construir uma interface de gerenciamento de plugins

A maioria dos plugins requer uma página de configurações no backend, que permite que o administrador do site defina as opções do plugin. O WordPress disponibiliza uma API abrangente para criar menus de gerenciamento e formulários padrão.

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

fazer uso de add_menu_page() ou add_options_page() A função pode adicionar uma página de gerenciamento para o seu plugin. Geralmente, essa página está localizada no menu “Configurações”.

Leitura recomendada Dominando o desenvolvimento de plugins para o WordPress do zero: princípios, prática e técnicas avançadas

Crie uma função para registrar e gerenciar o menu, e monte-o (ou instale-o) no sistema. admin_menu Ação:

// 添加插件设置页面到后台菜单
function mfp_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 权限要求
        'my-first-plugin',    // 菜单slug
        'mfp_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

// 渲染设置页面的回调函数
function mfp_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>As configurações do meu primeiro plugin</h1>
        <form action="/pt/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'mfp_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Opções de registro e configuração de processamento

O API de configurações do WordPress permite lidar de forma segura com o registro, verificação e armazenamento de opções. Você precisa definir os campos de configuração e as seções relevantes, e utilizar uma função de processamento para salvar os dados.

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.

Continue adicionando o seguinte código no arquivo principal do plugin para registrar as configurações:

// 初始化插件设置
function mfp_settings_init() {
    // 注册一个新的设置组和选项
    register_setting( 'mfp_settings_group', 'mfp_settings', 'mfp_sanitize_settings' );

// 在插件设置页面添加一个节
    add_settings_section(
        'mfp_section_basic',
        '基本设置',
        null,
        'my-first-plugin'
    );

// 向节中添加一个字段
    add_settings_field(
        'mfp_greeting_text',
        '问候语文本',
        'mfp_greeting_text_render',
        'my-first-plugin',
        'mfp_section_basic'
    );
}
add_action( 'admin_init', 'mfp_settings_init' );

// 渲染问候语文本输入字段
function mfp_greeting_text_render() {
    $options = get_option( 'mfp_settings' );
    $value = isset( $options['greeting_text'] ) ? $options['greeting_text'] : '你好,世界!';
    echo '<input type="text" name="mfp_settings[greeting_text]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

// 清理和验证设置输入
function mfp_sanitize_settings( $input ) {
    $sanitized = [];
    if ( isset( $input['greeting_text'] ) ) {
        $sanitized['greeting_text'] = sanitize_text_field( $input['greeting_text'] );
    }
    return $sanitized;
}

Internacionalização de plugins e preparação para a implantação

Para que o plugin possa ser usado por usuários em todo o mundo e, eventualmente, seja lançado oficialmente, é necessário realizar o processo de internacionalização e a otimização do código.

Implementar a internacionalização de texto

Usando o WordPress __()_e() Use funções como essas para encapsular todas as strings de texto que precisam ser traduzidas e carregar corretamente os campos de texto.

Modifique sua função de saída para que ela suporte a tradução.

function mfp_display_greeting() {
    $options = get_option( ‘mfp_settings’ );
    $greeting = isset( $options[‘greeting_text’] ) ? $options[‘greeting_text’] : __( ‘你好,世界!’, ‘my-first-plugin’ );
    echo ‘<p>’ . esc_html( $greeting ) . ‘</p>’;
}

// 在插件加载时加载翻译文件
function mfp_load_textdomain() {
    load_plugin_textdomain( ‘my-first-plugin’, false, dirname( plugin_basename( __FILE__ ) ) . ‘/languages/’ );
}
add_action( ‘plugins_loaded’, ‘mfp_load_textdomain’ );

Otimizar o código e criar pacotes de lançamento

Após concluir o desenvolvimento, você precisa remover o código de depuração e garantir que todas as funções tenham um prefixo único. Em seguida, compacte todo o diretório do plugin em um arquivo ZIP. Esse arquivo poderá ser carregado e instalado através do painel administrativo do WordPress.

Assegure-se de que o arquivo principal contém um procedimento de desinstalação padrão, usado para limpar as opções do banco de dados quando o usuário remove o plugin. Isso é realizado ao registrar um “gancho de desinstalação” (uninstallation hook).

// 插件卸载时的清理操作
register_uninstall_hook( __FILE__, ‘mfp_uninstall’ );
function mfp_uninstall() {
    delete_option( ‘mfp_settings’ );
}

resumos

Este artigo descreve em detalhes o processo completo para criar um plugin personalizado para o WordPress do zero. Começamos com a compreensão da estrutura básica dos plugins e das normas de segurança, avançamos para o sistema de ganchos (actions e filters) do núcleo do WordPress, e aprendemos como criar uma interface de gerenciamento de backend com páginas de configuração. Por fim, também abordamos o tema da internacionalização dos plugins, a otimização do código e os passos necessários para a sua implantação final.

Lembre-se de que o desenvolvimento de plugins de alta qualidade não se trata apenas da implementação de funcionalidades, mas também da segurança do código, da sua manutenibilidade e da adesão aos padrões do WordPress. Eu sugiro que você estude a fundo o manual oficial de plugins do WordPress, siga as normas de codificação e pratique constantemente em projetos reais.

Perguntas frequentes Perguntas frequentes

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

É muito útil que você tenha conhecimentos básicos de programação em PHP, incluindo o entendimento de variáveis, funções, arrays e condições de avaliação. Além disso, um conhecimento básico de HTML e CSS, bem como um entendimento das operações básicas do WordPress e da sua estrutura de backend, será de grande ajuda. Ter conhecimentos em programação orientada a objetos (OOP) é um plus para o desenvolvimento avançado.

我必须使用类(Class)来编写插件吗?

Não necessariamente. Para plugins simples, o uso da programação procedural (um conjunto de funções) é totalmente viável, e é exatamente o método adotado nos exemplos deste artigo. No entanto, para plugins maiores e mais complexos, com mais funcionalidades, o uso da programação orientada a objetos (POO) e a organização do código em classes é a melhor escolha. Isso permite uma organização mais eficaz do código, evita conflitos de nomes e melhora a manutenibilidade.

Como depurar o código do meu plugin para o WordPress?

Ativar o modo de depuração do WordPress é o primeiro passo importante. No site… wp-config.php No arquivo, será… WP_DEBUG A constante foi definida como… trueIsso exibirá erros PHP, notificações e avisos na página. Além disso, você pode usar… error_log() A função grava as informações de depuração no log de erros do servidor, ou utiliza plugins de depuração especializados (como o Query Monitor) para verificar problemas com consultas ao banco de dados, execução de funções de interrupção (hooks) e desempenho.

Como garantir a segurança no desenvolvimento de plugins?

As medidas-chave para garantir a segurança incluem: sempre verificar e limpar as entradas do usuário (usando…) sanitize_text_field(), esc_html(), wp_kses_post() (Para funções como essas); para todas as consultas ao banco de dados $wpdb Métodos da classe, e utilize sua instrução `prepare` para prevenir injeções SQL; escape todo o conteúdo dinâmico exibido no navegador; use os campos não verificados (nonce) e as verificações de permissões integrados ao WordPress.current_user_can()) para proteger formulários e solicitações AJAX.