Do Zero: Os Passos Fundamentais e as Melhores Práticas para Desenvolver Plugins para o WordPress

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

Do Zero: Os Passos Fundamentais e as Melhores Práticas para Desenvolver Plugins para o WordPress

O desenvolvimento de plugins para o WordPress é uma maneira poderosa de expandir as funcionalidades de um site WordPress. Ao criar plugins personalizados, os desenvolvedores podem adicionar funcionalidades únicas ao site sem a necessidade de modificar o código principal. Isso não só aumenta a flexibilidade do site, mas também garante que as funcionalidades personalizadas funcionem de forma segura e estável após as atualizações do núcleo do WordPress. Um plugin WordPress bem estruturado segue uma determinada estrutura de diretórios, padrões de codificação e a API do WordPress.

Este artigo guiará você através de todo o processo, desde a criação do primeiro arquivo do plugin até sua publicação segura, abrangendo os conceitos fundamentais, ferramentas e melhores práticas que são essenciais para entender durante o desenvolvimento.

Leitura recomendada Guia Completo para Desenvolvimento de Plugins para WordPress: Construindo Funcionalidades de Extensão de Alta Qualidade do Zero

Ambiente de desenvolvimento e estrutura básica

Antes de escrever qualquer código, é essencial criar um ambiente de desenvolvimento adequado. Recomenda-se o uso de ferramentas de desenvolvimento locais, como Local by Flywheel, XAMPP ou MAMP, que permitem configurar rapidamente um ambiente com PHP, MySQL e um servidor web. Além disso, um editor de código (como VS Code ou PhpStorm) e ferramentas de depuração (como Query Monitor ou Debug Bar) também são indispensáveis.

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 arquivo de plugin.

A forma mais básica de um plugin para WordPress é um arquivo que está localizado em uma determinada pasta do WordPress. Geralmente, esse arquivo tem a extensão `.php` e contém o código que realiza a funcionalidade desejada pelo plugin. /wp-content/plugins/ Os arquivos PHP localizados no diretório devem conter, no início do seu código, as anotações de informações padrão do plugin. Essas anotações são essenciais para que o WordPress reconheça e gerencie o plugin corretamente.

Crie algo chamado… my-first-plugin.php Abra o ficheiro e introduza o seguinte conteúdo:

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

Salve este arquivo em: /wp-content/plugins/my-first-plugin/ Dentro da pasta, depois de fazer login no painel de administrador do WordPress e ir para a página “Plugins”, você poderá ver e ativar esse plugin. Embora ele não tenha nenhuma funcionalidade no momento, sua estrutura já está pronta.

Diretório de plugins e organização dos arquivos

À medida que as funcionalidades aumentam, um único arquivo torna-se mais difícil de manter. Um diretório de plugins bem estruturado geralmente inclui as seguintes partes:
* 主插件文件:plugin-name.php
* includes/ 目录:存放核心功能类或函数文件。
* admin/ Diretório: Contém o código relacionado ao backend, bem como os arquivos CSS e JavaScript.
* public/ Diretório: Contém o código relacionado à interface do usuário (front-end), bem como os arquivos CSS e JavaScript.
* assets/ Diretório: Local onde são armazenadas imagens, arquivos de estilo (CSS) e scripts.
* languages/ Diretório: Local onde são armazenados os arquivos de tradução internacionalizados (.pot, .po, .mo).
* uninstall.php Arquivo: Opções utilizadas para limpar o banco de dados quando um plugin é removido.

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

Conceitos e Tecnologias Centrais de Desenvolvimento

O núcleo do desenvolvimento de plugins para o WordPress reside no entendimento e no uso avançado da API (Interface de Aplicação) fornecida pelo sistema. Esta API inclui, principalmente, os Ganchos de Ação (Action Hooks), os Ganchos de Filtro (Filter Hooks) e os Códigos Curtos (Shortcodes).

Dominar o uso dos ganchos de ação (action hooks).

Os ganchos de ação (action hooks) permitem que você “insira” o seu próprio código em momentos específicos da execução do WordPress. Utilize-os para realizar tarefas personalizadas ou integrar funcionalidades adicionais no sistema. add_action() Uma função pode ser usada para montar (ou “acoplar”) sua função personalizada em um determinado “gancho” (hook).

Por exemplo, o código abaixo adiciona uma linha de meta-tag personalizada no cabeçalho de todas as páginas:

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%
function myplugin_add_custom_meta() {
    echo '<meta name="my-custom-meta" content="value">';
}
add_action( 'wp_head', 'myplugin_add_custom_meta' );

Outro exemplo comum é executar algumas operações de inicialização quando um plugin é ativado, como criar tabelas em um banco de dados. Isso requer que a função seja montada (ou seja, que seja associada ao sistema) de forma a ser executada automaticamente no momento da ativação do plugin. register_activation_hook No gancho.

Utilizar filtros para modificar o conteúdo.

Os “filter hooks” são utilizados para modificar os dados processados pelo WordPress. Você pode usá-los para realizar ajustes ou alterações no conteúdo antes que ele seja exibido aos usuários. add_filter() Funções são usadas para alterar o conteúdo de texto, valores de opções, etc. As funções de filtro devem ter um valor de retorno.

O exemplo a seguir adicionará automaticamente um trecho de texto personalizado no final do conteúdo do artigo:

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

function myplugin_modify_post_content( $content ) {
    if ( is_single() ) {
        $custom_text = '<p><em>Obrigado por ler este artigo!</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_modify_post_content' );

Criar e gerenciar códigos curtos

Códigos curtos permitem que os usuários insiram facilmente conteúdo dinâmico gerado por plugins em artigos, páginas ou ferramentas pequenas. add_shortcode() Uma função pode registrar um novo código abreviado.

Registre um nome chamado… [greeting] É um código curto que pode exibir diferentes saudações de acordo com a hora:

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 myplugin_greeting_shortcode( $atts ) {
    $hour = date( 'G' );
    $greeting = ( $hour ? 'Bom dia!' : ( ($hour) &lt; 18 ) ? &#039;下午好!&#039; : &#039;晚上好!&#039; );
    return &#039;<div class="greeting">'`. esc_html($greeting).`'</div>'echo '<p><strong>Olá, mundo!</strong></p>';  
add_shortcode( 'greeting', 'myplugin_greeting_shortcode' );

Segurança de plugins e gestão de dados

Desenvolver um plugin seguro é o primeiro passo para proteger o site e os dados dos usuários. Isso envolve a validação de dados inseridos, a codificação adequada dos dados exibidos, a verificação de permissões e o tratamento seguro dos dados em si.

Implementar validação de dados e escape

Nunca confie em qualquer entrada fornecida pelo usuário. Antes de salvar os dados no banco de dados ou exibi-los no navegador, é necessário realizar a validação e a escapamento dos caracteres.

  • Verificação: Usar sanitize_text_field(), sanitize_email(), intval() Funções como essas são usadas para limpar a entrada fornecida pelo usuário.
  • Escalação: Ao exibir dados em HTML, JavaScript ou URLs, use as funções de escalação apropriadas. esc_html(), esc_js(), esc_url()

Por exemplo, como processar e exibir de forma segura o nome de usuário enviado por um formulário:

$user_input = $_POST['username'] ?? ''; // 使用空合并运算符提供默认值
$clean_username = sanitize_text_field( $user_input );
echo '你好,' . esc_html( $clean_username );

Usar a API de opções do WordPress

Para configurações simples que precisam ser armazenadas (como botões de ativação/desativação, texto, etc.), deve-se utilizar a API de opções do WordPress. Ela oferece a funcionalidade necessária para gerenciar esses dados de forma eficiente. add_option(), get_option(), update_option() e delete_option() Funções como essas permitem armazenar dados de forma segura. wp_options Na tabela.

Crie uma configuração para um plugin e a obtenha:

// 保存一个选项
update_option( 'myplugin_setting_color', '#336699' );

// 获取一个选项,如果不存在则使用默认值
$color = get_option( 'myplugin_setting_color', '#000000' );

Criação de tabelas de banco de dados personalizadas

Quando um plugin precisa armazenar dados relacionais complexos, pode ser necessário criar tabelas de banco de dados personalizadas. Isso geralmente deve ser feito ao ativar o plugin, seguindo as convenções do padrão de banco de dados do WordPress.

Nos my-first-plugin.php Neste caso, adicione uma função para criar a tabela ao gancho de ativação do plugin:

function myplugin_create_custom_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'myplugin_items'; // 使用 $wpdb->prefix 确保表前缀正确
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'myplugin_create_custom_table' );

Construir a interface de gestão de back-end do plugin.

Criar uma página de configurações de backend intuitiva para o seu plugin é essencial para oferecer uma boa experiência de uso ao usuário. O WordPress disponibiliza várias APIs para simplificar o processo de criação de menus de gerenciamento, páginas de configurações e formulários.

Adicionar menu de gerenciamento e submenus

fazer uso de add_menu_page() e add_submenu_page() As funções podem adicionar itens de menu para o seu plugin na barra lateral do painel administrativo do WordPress.

Adicione um menu principal chamado “Meus Plugins” e um submenu chamado “Configurações” ao código abaixo:

function myplugin_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'myplugin-dashboard',   // 菜单 Slug
        'myplugin_dashboard_page', // 回调函数,用于输出页面内容
        'dashicons-admin-generic', // 图标
        30                      // 菜单位置
    );

    // 添加子菜单
    add_submenu_page(
        'myplugin-dashboard',   // 父菜单 Slug
        '插件设置',             // 页面标题
        '设置',                 // 菜单标题
        'manage_options',       // 权限
        'myplugin-settings',    // 子菜单 Slug
        'myplugin_settings_page' // 回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

// 定义“仪表盘”页面的回调函数
function myplugin_dashboard_page() {
    echo '<div class="wrap"><h1>O meu painel de instrumentos do plugin</h1></div>';
}

// 定义“设置”页面的回调函数
function myplugin_settings_page() {
    echo '<div class="wrap"><h1>Configurações do meu plugin</h1></div>';
}

API de Configurações de Integração para Construção de Formulários

A configuração do API do WordPress oferece uma maneira segura e padronizada de criar, verificar e salvar definições de formulários. Isso envolve o registro de configurações, a adição de áreas de configuração e campos.

A seguir, está um exemplo simples de como criar uma página de configuração que contém um campo de texto:

function myplugin_settings_init() {
    // 注册一个新的设置项 “myplugin_settings”
    register_setting( 'myplugin_settings_group', 'myplugin_settings' );

    // 添加一个新的设置区域
    add_settings_section(
        'myplugin_section_basic',
        '基础设置',
        null, // 区域描述的回调函数,这里不需要
        'myplugin-settings' // 页面 Slug
    );

    // 在区域内添加一个字段
    add_settings_field(
        'myplugin_field_api_key',
        'API 密钥',
        'myplugin_field_api_key_callback', // 渲染字段 HTML 的回调函数
        'myplugin-settings',
        'myplugin_section_basic'
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

// 字段的回调函数
function myplugin_field_api_key_callback() {
    $options = get_option( 'myplugin_settings' );
    $value = $options['api_key'] ?? '';
    echo '<input type="text" name="myplugin_settings[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

// 修改之前的设置页面回调函数,以输出表单
function myplugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Configurações do meu plugin</h1>
        <form action="/pt/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' ); // 输出必要的安全字段
            do_settings_sections( 'myplugin-settings' ); // 输出所有设置区域和字段
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

resumos

O desenvolvimento de plugins para o WordPress é um processo que começa com a compreensão da sua estrutura básica, avança gradualmente para o conhecimento dos APIs centrais e das questões de segurança, e termina com a criação de uma interface de usuário completa. O segredo está em seguir os padrões de codificação e as melhores práticas do WordPress, como o uso correto dos “hooks”, o tratamento rigoroso dos dados, e a utilização dos APIs de opções e de configuração disponíveis no sistema. Começando com a criação de um simples arquivo de comentários no cabeçalho do plugin, você adiciona funções (“actions”), filtros (“filters”) e códigos encurtados (“shortcodes”), e, em seguida, passa para a gestão do banco de dados e da interface de administração. Cada etapa é baseada no framework robusto e estável do WordPress. Ao aprender e praticar sistematicamente esses passos, você será capaz de desenvolver plugins funcionalmente ricos, seguros, confiáveis e fáceis de manter, contribuindo assim para o vasto ecossistema do WordPress em todo o mundo.

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 dominar a linguagem de programação PHP, pois o código central dos plugins é escrito em PHP. Além disso, é essencial ter um conhecimento básico de HTML, CSS e JavaScript para criar interfaces e interações no lado front-end. O mais importante é estar familiarizado com os conceitos fundamentais do WordPress, como ganchos (Actions e Filters), ciclos (The Loop), a estrutura de templates e a estrutura do banco de dados do WordPress.

Como depurar o meu plugin do WordPress?

Primeiramente, em wp-config.php Ative o modo de depuração do WordPress no arquivo. WP_DEBUG A constante foi definida como… trueIsso exibirá os erros e avisos do PHP na tela. Em segundo lugar, é possível utilizar… error_log() A função grava informações de depuração no log de erros do servidor. Além disso, a instalação de plugins de depuração profissionais, como o Query Monitor, permite visualizar em tempo real informações detalhadas sobre consultas ao banco de dados, execução de funções de interrupção (hooks), carregamento de scripts, etc., o que os torna ferramentas essenciais no processo de desenvolvimento.

Como meu plugin pode implementar suporte a múltiplas línguas (internacionalização)?

O WordPress utiliza a tecnologia GNU gettext para implementar a internacionalização (i18n). Primeiramente, no código dos plugins, todas as strings que precisam ser traduzidas devem ser marcadas de forma apropriada. () ou _e() Embrulhe as funções de tradução e, para isso, utilize… () A função especifica o “Text Domain” a ser definido no início do plugin. Em seguida, utiliza ferramentas como o Poedit para analisar o código-fonte do plugin e gerar o necessário conteúdo. .pot Arquivos de modelo, e com base neles, criar versões em diferentes idiomas. .po E o compilado .mo Arquivo, coloque-o no plugin. /languages/ No diretório. Por fim, use… load_plugin_textdomain() Tradução de “Function loading”.

Como enviar meu plugin para o diretório oficial de plugins do WordPress?

Antes de enviar um plugin para o diretório oficial, é necessário garantir que ele esteja em total conformidade com as especificações e guias oficiais de desenvolvimento de plugins. Você precisa ter uma conta no WordPress.org e, em seguida, preencher o formulário na página de envio de plugins. A equipe de revisão verificará a segurança do seu código, a licença (que deve ser compatível com a GPL), a qualidade do código, a documentação e a compatibilidade do plugin. Após a aprovação, você receberá um endereço de repositório SVN. Ao enviar o código através do SVN, o plugin será adicionado ao diretório oficial. Esse processo pode levar algumas semanas e é regido por padrões de revisão detalhados.